RaspberryPi-LOGO

RaspberryPi KMS HDMI Output ໄດເວີກຣາບຟິກ

RaspberryPi-KMS-HDMI-Output-Graphics-Driver-PRODACT-IMG

ໂຄໂລໂຟນ

2020-2023 Raspberry Pi Ltd (ອະດີດແມ່ນ Raspberry Pi (Trading) Ltd.) ເອກະສານນີ້ແມ່ນໄດ້ຮັບອະນຸຍາດພາຍໃຕ້ໃບອະນຸຍາດ Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0). ວັນທີສ້າງ: 2023-02-10 ຮຸ່ນສ້າງ: githash: c65fe9c-ສະອາດ

ແຈ້ງການປະຕິເສດຄວາມຮັບຜິດຊອບທາງກົດໝາຍ

ຂໍ້ມູນດ້ານວິຊາການແລະຄວາມຫນ້າເຊື່ອຖືສໍາລັບຜະລິດຕະພັນ RASPBERRY PI (ລວມທັງ DATASHEETS) ຕາມການດັດແກ້ຈາກເວລາເຖິງເວລາ ("ຊັບພະຍາກອນ") ແມ່ນສະຫນອງໃຫ້ໂດຍ RASPBERRY PI LTD ("RPL") "ບໍ່ເກີນ" ແລະຍັງບໍ່ມີ OT ຈຳກັດ ແທ້ຈິງແລ້ວ, ການຮັບປະກັນທາງດ້ານການຄ້າ ແລະ ຄວາມສອດຄ່ອງສໍາລັບຈຸດປະສົງສະເພາະແມ່ນຖືກປະຕິເສດ. ໃນຂອບເຂດສູງສຸດທີ່ກົດໝາຍສາມາດນຳໃຊ້ໄດ້ ໃນກໍລະນີທີ່ບໍ່ມີ RPL ຈະຕ້ອງຮັບຜິດຊອບຕໍ່ຄວາມເສຍຫາຍທາງກົງ, ທາງອ້ອມ, ໂດຍບັງເອີນ, ພິເສດ, ເປັນຕົວຢ່າງ, ຫຼືຄວາມເສຍຫາຍທີ່ເກີດຂຶ້ນ (ລວມທັງ, ບໍ່ວ່າຈະເປັນ, ເປັນຕົ້ນ ການບໍລິການ; , ຫຼືຜົນກໍາໄລ; ISED ຂອງຄວາມເປັນໄປໄດ້ ຂອງຄວາມເສຍຫາຍດັ່ງກ່າວ. RPL ສະຫງວນສິດທີ່ຈະປັບປຸງ, ປັບປຸງ, ແກ້ໄຂ ຫຼືການດັດແກ້ອື່ນໆຕໍ່ກັບຊັບພະຍາກອນ ຫຼືຜະລິດຕະພັນທີ່ອະທິບາຍໄວ້ໃນພວກມັນໄດ້ທຸກເວລາ ແລະໂດຍບໍ່ມີການແຈ້ງການເພີ່ມເຕີມ. ແຫຼ່ງຂໍ້ມູນແມ່ນມີຈຸດປະສົງສໍາລັບຜູ້ໃຊ້ທີ່ມີຄວາມຊໍານິຊໍານານທີ່ມີລະດັບຄວາມຮູ້ດ້ານການອອກແບບທີ່ເຫມາະສົມ. ຜູ້​ໃຊ້​ມີ​ຄວາມ​ຮັບ​ຜິດ​ຊອບ​ພຽງ​ແຕ່​ສໍາ​ລັບ​ການ​ຄັດ​ເລືອກ​ແລະ​ການ​ນໍາ​ໃຊ້​ຂອງ​ເຂົາ​ເຈົ້າ​ຂອງ​ແຫຼ່ງ​ຂໍ້​ມູນ​ແລະ​ການ​ນໍາ​ໃຊ້​ຜະ​ລິດ​ຕະ​ພັນ​ທີ່​ອະ​ທິ​ບາຍ​ໃນ​ພວກ​ເຂົາ​. ຜູ້ໃຊ້ຕົກລົງທີ່ຈະຊົດເຊີຍ ແລະຖື RPL ບໍ່ໃຫ້ເປັນອັນຕະລາຍຕໍ່ໜີ້ສິນ, ຄ່າໃຊ້ຈ່າຍ, ຄວາມເສຍຫາຍ ຫຼືການສູນເສຍອື່ນໆທີ່ເກີດຈາກການໃຊ້ RESOURCES.RPL ອະນຸຍາດໃຫ້ຜູ້ໃຊ້ໃຊ້ RESOURCES ໂດຍສົມທົບກັບຜະລິດຕະພັນ Raspberry Pi ເທົ່ານັ້ນ. ຫ້າມໃຊ້ຊັບພະຍາກອນອື່ນທັງໝົດ. ບໍ່ມີໃບອະນຸຍາດໃຫ້ RPL ຫຼືສິດທິຊັບສິນທາງປັນຍາພາກສ່ວນທີສາມອື່ນໆ. ກິດຈະກໍາທີ່ມີຄວາມສ່ຽງສູງ. ຜະລິດຕະພັນ Raspberry Pi ບໍ່ໄດ້ອອກແບບ, ຜະລິດ ຫຼື ມີຈຸດປະສົງເພື່ອໃຊ້ໃນສະພາບແວດລ້ອມທີ່ເປັນອັນຕະລາຍທີ່ຮຽກຮ້ອງໃຫ້ມີການປະຕິບັດທີ່ປອດໄພເຊັ່ນ: ໃນການດໍາເນີນງານຂອງສະຖານທີ່ນິວເຄລຍ, ລະບົບນໍາທາງຂອງເຮືອບິນຫຼືການສື່ສານ, ການຄວບຄຸມການຈະລາຈອນທາງອາກາດ, ລະບົບອາວຸດຫຼືຄໍາຮ້ອງສະຫມັກຄວາມປອດໄພ (ລວມທັງການຊ່ວຍເຫຼືອຊີວິດ. ລະບົບແລະອຸປະກອນທາງການແພດອື່ນໆ), ເຊິ່ງຄວາມລົ້ມເຫຼວຂອງຜະລິດຕະພັນສາມາດນໍາໄປສູ່ການເສຍຊີວິດໂດຍກົງ, ການບາດເຈັບສ່ວນບຸກຄົນຫຼືຄວາມເສຍຫາຍທາງດ້ານຮ່າງກາຍຫຼືສິ່ງແວດລ້ອມທີ່ຮ້າຍແຮງ ("ກິດຈະກໍາທີ່ມີຄວາມສ່ຽງສູງ"). RPL ໂດຍສະເພາະປະຕິເສດການຮັບປະກັນທີ່ສະແດງອອກຫຼືໂດຍຄວາມຫມາຍຂອງການສອດຄ່ອງສໍາລັບກິດຈະກໍາທີ່ມີຄວາມສ່ຽງສູງແລະຍອມຮັບບໍ່ມີຄວາມຮັບຜິດຊອບຕໍ່ການນໍາໃຊ້ຫຼືການລວມເອົາຜະລິດຕະພັນ Raspberry Pi ໃນກິດຈະກໍາທີ່ມີຄວາມສ່ຽງສູງ. ຜະລິດຕະພັນ Raspberry Pi ໄດ້ຖືກສະໜອງໃຫ້ພາຍໃຕ້ເງື່ອນໄຂມາດຕະຖານຂອງ RPL. ການສະໜອງຊັບພະຍາກອນຂອງ RPL ບໍ່ໄດ້ຂະຫຍາຍ ຫຼື ແກ້ໄຂເງື່ອນໄຂມາດຕະຖານຂອງ RPL ລວມທັງແຕ່ບໍ່ຈຳກັດການປະຕິເສດຄວາມຮັບຜິດຊອບ ແລະ ການຮັບປະກັນທີ່ສະແດງອອກໃນພວກມັນ.

ປະຫວັດສະບັບເອກະສານ

RaspberryPi-KMS-HDMI-Output-Graphics-Driver-FIG-1

ຂອບເຂດຂອງເອກະສານ

ເອກະສານນີ້ນຳໃຊ້ກັບຜະລິດຕະພັນ Raspberry Pi ຕໍ່ໄປນີ້

RaspberryPi-KMS-HDMI-Output-Graphics-Driver-FIG-2

ແນະນຳ

ດ້ວຍການແນະນໍາໄດເວີກຣາບຟິກ KMS (Kernel Mode Setting), Raspberry Pi Ltd ກໍາລັງເຄື່ອນຍ້າຍອອກຈາກການຄວບຄຸມເຟີມແວແບບເກົ່າຂອງລະບົບຜົນຜະລິດວິດີໂອ ແລະໄປສູ່ລະບົບກຣາບຟິກທີ່ເປີດຫຼາຍກວ່າ. ຢ່າງໃດກໍ່ຕາມ, ນີ້ໄດ້ມາພ້ອມກັບສິ່ງທ້າທາຍຂອງຕົນເອງ. ເອກະສານນີ້ແມ່ນມີຈຸດປະສົງເພື່ອຊ່ວຍແກ້ໄຂບັນຫາຕ່າງໆທີ່ອາດຈະເກີດຂື້ນໃນເວລາທີ່ຍ້າຍໄປລະບົບໃຫມ່. ເຈ້ຍຂາວນີ້ສົມມຸດວ່າ Raspberry Pi ກໍາລັງແລ່ນ Raspberry Pi OS, ແລະມີຄວາມທັນສະ ໄໝ ກັບເຟີມແວແລະເມັດຫລ້າສຸດ.

ຄໍາສັບ

DRM: Direct Rendering Manager, ລະບົບຍ່ອຍຂອງ Linux kernel ທີ່ໃຊ້ເພື່ອຕິດຕໍ່ສື່ສານກັບຫນ່ວຍປະມວນຜົນກາຟິກ (GPUs). ໃຊ້ໃນການຮ່ວມມືກັບ FKMS ແລະ KMS.
DVI: ລຸ້ນກ່ອນຂອງ HDMI, ແຕ່ບໍ່ມີຄວາມສາມາດດ້ານສຽງ. ສາຍ HDMI ຫາ DVI ແລະອະແດັບເຕີແມ່ນມີຢູ່ເພື່ອເຊື່ອມຕໍ່ອຸປະກອນ Raspberry Pi ກັບຈໍສະແດງຜົນທີ່ມີ DVI.
EDID: ຂະຫຍາຍຂໍ້ມູນການລະບຸການສະແດງຜົນ. ຮູບແບບ metadata ສໍາລັບອຸປະກອນການສະແດງເພື່ອອະທິບາຍຄວາມສາມາດຂອງເຂົາເຈົ້າກັບແຫຼ່ງວິດີໂອ. ໂຄງສ້າງຂໍ້ມູນ EDID ປະກອບມີຊື່ຜູ້ຜະລິດແລະເລກລໍາດັບ, ປະເພດຜະລິດຕະພັນ, ຂະຫນາດການສະແດງຜົນທາງກາຍະພາບ, ແລະໄລຍະເວລາທີ່ສະຫນັບສະຫນູນໂດຍຈໍສະແດງຜົນ, ພ້ອມກັບບາງຂໍ້ມູນທີ່ເປັນປະໂຫຍດຫນ້ອຍ. ຈໍສະແດງຜົນບາງຢ່າງສາມາດມີຕັນ EDID ທີ່ບົກພ່ອງ, ເຊິ່ງສາມາດເຮັດໃຫ້ເກີດບັນຫາຖ້າຂໍ້ບົກພ່ອງເຫຼົ່ານັ້ນບໍ່ໄດ້ຖືກຈັດການໂດຍລະບົບການສະແດງຜົນ.
FKMS (vc4-fkms-v3d): ການຕັ້ງຄ່າໂຫມດ Kernel ປອມ. ໃນຂະນະທີ່ເຟີມແວຍັງຄວບຄຸມຮາດແວລະດັບຕ່ໍາ (ສໍາລັບຕົວຢ່າງample, ຮູ Ports Multimedia Interface (HDMI), ຈໍສະແດງຜົນ Serial Interface (DSI), ແລະອື່ນໆ), ຫ້ອງສະຫມຸດ Linux ມາດຕະຖານຖືກນໍາໃຊ້ໃນ kernel ຕົວມັນເອງ. FKMS ຖືກໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນໃນ Buster, ແຕ່ຕອນນີ້ຖືກປະຕິເສດໃນເງື່ອນໄຂຂອງ KMS ໃນ Bullseye.
HDMI: High-Definition Multimedia Interface ເປັນສ່ວນຕິດຕໍ່ສຽງ/ວິດີໂອທີ່ເປັນເຈົ້າຂອງສໍາລັບການສົ່ງຂໍ້ມູນວິດີໂອທີ່ບໍ່ໄດ້ບີບອັດ, ແລະຂໍ້ມູນສຽງດິຈິຕອລທີ່ບີບອັດ ຫຼືບໍ່ໄດ້ບີບອັດ.
HPD: ກວດພົບປລັກສຽບໄຟ. ສາຍໄຟທີ່ຖືກຢືນຢັນໂດຍອຸປະກອນສະແດງຜົນທີ່ເຊື່ອມຕໍ່ເພື່ອສະແດງໃຫ້ເຫັນວ່າມັນມີຢູ່.
KMS: ການຕັ້ງຄ່າ Kernel Mode; ເບິ່ງ https://www.kernel.org/doc/html/latest/gpu/drm-kms.html ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ. ໃນ Raspberry Pi, vc4-kms-v3d ເປັນໄດເວີທີ່ປະຕິບັດ KMS, ແລະມັກຈະເອີ້ນວ່າ "ໄດເວີ KMS". stack ກຣາບຟິກແບບເກົ່າ: ເປັນ stack ກຣາບຟິກທີ່ປະຕິບັດຢ່າງເຕັມສ່ວນໃນ VideoCore firmware blob ເປີດເຜີຍໂດຍໄດເວີ Linux framebuffer. stack ກຣາບຟິກແບບເກົ່າໄດ້ຖືກນໍາໃຊ້ໃນອຸປະກອນ Raspberry Pi Ltd ສ່ວນໃຫຍ່ຈົນກ່ວາບໍ່ດົນມານີ້; ດຽວນີ້ມັນຄ່ອຍໆຖືກປ່ຽນແທນດ້ວຍ (F)KMS/DRM.

ລະບົບ HDMI ແລະໄດເວີກຣາບຟິກ

ອຸປະກອນ Raspberry Pi ໃຊ້ມາດຕະຖານ HDMI, ເຊິ່ງພົບເລື້ອຍໃນຈໍ LCD ແລະໂທລະທັດທີ່ທັນສະໄຫມ, ສໍາລັບຜົນຜະລິດວິດີໂອ. Raspberry Pi 3 (ລວມທັງ Raspberry Pi 3B+) ແລະອຸປະກອນກ່ອນຫນ້ານັ້ນມີພອດ HDMI ດຽວ, ເຊິ່ງສາມາດຜົນຜະລິດໄດ້ 1920 × 1200 @ 60Hz ໂດຍໃຊ້ຕົວເຊື່ອມຕໍ່ HDMI ຂະໜາດເຕັມ. Raspberry Pi 4 ມີສອງພອດ micro HDMI, ແລະມີຄວາມສາມາດໃນການອອກ 4K ໃນທັງສອງພອດ. ອີງຕາມການຕັ້ງຄ່າ, ພອດ HDMI 0 ໃນ Raspberry Pi 4 ມີຄວາມສາມາດສູງເຖິງ 4kp60, ແຕ່ເມື່ອໃຊ້ອຸປະກອນຜົນຜະລິດ 4K ສອງອັນ, ທ່ານຖືກຈໍາກັດພຽງແຕ່ p30 ໃນທັງສອງອຸປະກອນ. stack ຊອບແວກຣາຟິກ, ບໍ່ວ່າຈະເປັນລຸ້ນໃດ, ມີຄວາມຮັບຜິດຊອບໃນການສອບຖາມອຸປະກອນ HDMI ທີ່ຕິດຄັດມາສໍາລັບຄຸນສົມບັດຂອງພວກມັນ, ແລະຕັ້ງຄ່າລະບົບ HDMI ຢ່າງເໝາະສົມ. Legacy ແລະ FKMS stacks ທັງສອງໃຊ້ເຟີມແວໃນໂປເຊດເຊີກາຟິກ VideoCore ເພື່ອກວດເບິ່ງການມີ HDMI ແລະຄຸນສົມບັດ. ໃນທາງກົງກັນຂ້າມ, KMS ໃຊ້ແຫຼ່ງເປີດທັງໝົດ, ການປະຕິບັດດ້ານ ARM. ນີ້ຫມາຍຄວາມວ່າພື້ນຖານລະຫັດສໍາລັບສອງລະບົບແມ່ນແຕກຕ່າງກັນຫມົດ, ແລະໃນບາງສະຖານະການນີ້ສາມາດສົ່ງຜົນໃຫ້ພຶດຕິກໍາທີ່ແຕກຕ່າງກັນລະຫວ່າງສອງວິທີການ. ອຸ​ປະ​ກອນ HDMI ແລະ DVI ບົ່ງ​ຕົວ​ຕົນ​ເອງ​ກັບ​ອຸ​ປະ​ກອນ​ທີ່​ມາ​ໂດຍ​ການ​ນໍາ​ໃຊ້​ສິ້ນ​ຂອງ metadata ທີ່​ເອີ້ນ​ວ່າ EDID block. ນີ້ແມ່ນການອ່ານໂດຍອຸປະກອນແຫຼ່ງຈາກອຸປະກອນສະແດງໂດຍຜ່ານການເຊື່ອມຕໍ່ I2C, ແລະນີ້ແມ່ນຄວາມໂປ່ງໃສທັງຫມົດຕໍ່ຜູ້ໃຊ້ສຸດທ້າຍຍ້ອນວ່າມັນຖືກເຮັດໂດຍກາຟິກ stack. ຕັນ EDID ປະກອບດ້ວຍຂໍ້ມູນຈໍານວນຫລາຍ, ແຕ່ມັນຖືກນໍາໃຊ້ຕົ້ນຕໍເພື່ອກໍານົດຄວາມລະອຽດຂອງຈໍສະແດງຜົນ, ດັ່ງນັ້ນ Raspberry Pi ສາມາດຖືກຕັ້ງຄ່າເພື່ອໃຫ້ມີຄວາມລະອຽດທີ່ເຫມາະສົມ.

HDMI ຖືກຈັດການກັບແນວໃດໃນລະຫວ່າງການເປີດເຄື່ອງ

ເມື່ອເປີດເຄື່ອງທໍາອິດ, Raspberry Pi ໄປຜ່ານຈໍານວນ stages, ຮູ້ຈັກເປັນ boot stages:

  1. ທໍາອິດ -stage, ROM-based bootloader ເລີ່ມຕົ້ນ VideoCore GPU.
  2. ສອງ-ສtage bootloader (ນີ້ແມ່ນ bootcode.bin ໃນ SD card ໃນອຸປະກອນກ່ອນ Raspberry Pi 4, ແລະໃນ SPI EEPROM ໃນ Raspberry Pi 4):
    1. ໃນ Raspberry Pi 4, ທີສອງtage bootloader ຈະເລີ່ມຕົ້ນລະບົບ HDMI, ສອບຖາມການສະແດງສໍາລັບຮູບແບບທີ່ເປັນໄປໄດ້, ຫຼັງຈາກນັ້ນຕັ້ງຄ່າການສະແດງທີ່ເຫມາະສົມ. ໃນຈຸດນີ້, ຈໍສະແດງຜົນໄດ້ຖືກນໍາໃຊ້ເພື່ອສະຫນອງຂໍ້ມູນການວິນິດໄສພື້ນຖານ.
    2. ຈໍສະແດງຜົນການວິນິດໄສ bootloader (07 ທັນວາ 2022 ເປັນຕົ້ນໄປ) ຈະສະແດງສະຖານະຂອງຈໍສະແດງຜົນທີ່ຕິດຄັດມາ (ບໍ່ວ່າຈະເປັນ Hotplug Detect (HPD) ຫຼືບໍ່, ແລະວ່າ EDID block ໄດ້ຖືກກູ້ຄືນຈາກຈໍສະແດງຜົນຫຼືບໍ່).
  3. ເຟີມແວ VideoCore (start.elf) ຖືກໂຫລດ ແລະເປີດໃຊ້. ນີ້ຈະຄວບຄຸມລະບົບ HDMI, ອ່ານ EDID block ຈາກຈໍສະແດງຜົນທີ່ຕິດຄັດມາ, ແລະສະແດງຫນ້າຈໍ rainbow ໃນຈໍສະແດງຜົນເຫຼົ່ານັ້ນ.
  4. Linux kernel boots
    1. ໃນລະຫວ່າງການ kernel boot, KMS ຈະຄວບຄຸມລະບົບ HDMI ຈາກເຟີມແວ. ອີກເທື່ອ ໜຶ່ງ ບລັອກ EDID ຖືກອ່ານຈາກຈໍສະແດງຜົນທີ່ຕິດຄັດມາ, ແລະຂໍ້ມູນນີ້ຖືກໃຊ້ເພື່ອຕັ້ງຄ່າ Linux console ແລະ desktop.

ບັນຫາທີ່ເປັນໄປໄດ້ແລະອາການ

ອາການລົ້ມເຫຼວທີ່ພົບເລື້ອຍທີ່ສຸດເມື່ອຍ້າຍໄປ KMS ແມ່ນການບູດທີ່ດີໃນເບື້ອງຕົ້ນ, ມີຫນ້າຈໍ bootloader ແລະຫຼັງຈາກນັ້ນຫນ້າຈໍ rainbow ປາກົດ, ປະຕິບັດຕາມຫຼັງຈາກສອງສາມວິນາທີໂດຍຈໍສະແດງຜົນຈະເປັນສີດໍາແລະບໍ່ກັບຄືນມາ. ໃນຄວາມເປັນຈິງ, ຈຸດທີ່ຈໍສະແດງຜົນເປັນສີດໍາແມ່ນຈຸດໃນລະຫວ່າງຂະບວນການ booting kernel ເມື່ອໄດເວີ KMS ໃຊ້ເວລາຫຼາຍກວ່າການແລ່ນຈໍສະແດງຜົນຈາກເຟີມແວ. Raspberry Pi ປະຈຸບັນເຮັດວຽກໃນທຸກດ້ານຍົກເວັ້ນ HDMI output, ດັ່ງນັ້ນຖ້າ SSH ຖືກເປີດໃຊ້, ທ່ານຄວນຈະສາມາດເຂົ້າສູ່ລະບົບອຸປະກອນໂດຍເສັ້ນທາງນັ້ນ. ປົກກະຕິແລ້ວ LED ສີຂຽວເຂົ້າເຖິງບັດ SD ຈະ flicker ເປັນບາງໂອກາດ. ມັນເປັນໄປໄດ້ວ່າທ່ານຈະເຫັນບໍ່ມີຜົນຜະລິດ HDMI ຢູ່ໃນທັງຫມົດ; ບໍ່ມີການສະແດງ bootloader, ແລະບໍ່ມີຫນ້າຈໍ rainbow. ໂດຍທົ່ວໄປແລ້ວນີ້ສາມາດເປັນຄວາມຜິດພາດຂອງຮາດແວ.

ການວິນິດໄສຄວາມຜິດ

ບໍ່ມີຜົນຜະລິດ HDMI ເລີຍ
ມັນເປັນໄປໄດ້ວ່າອຸປະກອນບໍ່ໄດ້ booted ທັງຫມົດ, ແຕ່ນີ້ແມ່ນຢູ່ນອກ remit ຂອງເຈ້ຍສີຂາວນີ້. ສົມມຸດວ່າພຶດຕິກໍາທີ່ສັງເກດເຫັນເປັນບັນຫາການສະແດງຜົນ, ການຂາດການອອກ HDMI ໃນລະຫວ່າງພາກສ່ວນໃດຫນຶ່ງຂອງຂະບວນການ booting ປົກກະຕິແລ້ວແມ່ນຍ້ອນຄວາມຜິດຂອງຮາດແວ. ມີຫຼາຍທາງເລືອກທີ່ເປັນໄປໄດ້:

  • ສາຍ HDMI ຜິດປົກກະຕິ
  • ລອງສາຍໃໝ່. ບາງສາຍ, ໂດຍສະເພາະລາຄາຖືກຫຼາຍ, ອາດຈະບໍ່ມີສາຍການສື່ສານທີ່ຕ້ອງການທັງຫມົດ (ເຊັ່ນ: hotplug) ສໍາລັບ Raspberry Pi ສົບຜົນສໍາເລັດໃນການກວດສອບຈໍສະແດງຜົນ.
  • ພອດ HDMI ຜິດປົກກະຕິໃນ Raspberry Pi
  • ຖ້າທ່ານກໍາລັງໃຊ້ Raspberry Pi 4, ລອງໃຊ້ພອດ HDMI ອື່ນໆ.
  • ພອດ HDMI ຜິດປົກກະຕິຢູ່ໃນຈໍພາບ
  • ບາງຄັ້ງພອດ HDMI ໃນຈໍພາບ ຫຼືໂທລະທັດສາມາດສວມໃສ່ໄດ້. ລອງຜອດອື່ນຖ້າອຸປະກອນມີອັນໜຶ່ງ.
  • ບໍ່ຄ່ອຍ, ອຸປະກອນສະແດງອາດຈະໃຫ້ຂໍ້ມູນ EDID ພຽງແຕ່ເມື່ອເປີດ, ຫຼືເມື່ອເລືອກພອດທີ່ຖືກຕ້ອງ. ເພື່ອກວດສອບ, ໃຫ້ແນ່ໃຈວ່າອຸປະກອນເປີດຢູ່ ແລະເລືອກຜອດປ້ອນເຂົ້າທີ່ຖືກຕ້ອງແລ້ວ.
  • ສະແດງອຸປະກອນບໍ່ຢືນຢັນສາຍກວດຫາປລັກສຽບໄຟ

ຜົນ​ຜະ​ລິດ​ເບື້ອງ​ຕົ້ນ​, ຫຼັງ​ຈາກ​ນັ້ນ​ຫນ້າ​ຈໍ​ເປັນ​ສີ​ດໍາ​
ຖ້າຈໍສະແດງຜົນຂຶ້ນແຕ່ຫຼັງຈາກນັ້ນປິດລົງໃນລະຫວ່າງການບູດ Linux kernel, ມີສາເຫດທີ່ເປັນໄປໄດ້ຈໍານວນຫນຶ່ງ, ແລະເຫຼົ່ານີ້ມັກຈະກ່ຽວຂ້ອງກັບບັນຫາການອ່ານ EDID ຈາກອຸປະກອນສະແດງຜົນ. ດັ່ງທີ່ເຫັນໄດ້ຈາກພາກຂ້າງເທິງກ່ຽວກັບລໍາດັບ boot, EDID ໄດ້ຖືກອ່ານຢູ່ໃນຈຸດຕ່າງໆທີ່ແຕກຕ່າງກັນໃນລະຫວ່າງການເລີ່ມຕົ້ນ, ແລະການອ່ານແຕ່ລະອັນນີ້ແມ່ນເຮັດໂດຍຊອບແວທີ່ແຕກຕ່າງກັນ. ການອ່ານສຸດທ້າຍ, ເມື່ອ KMS ຄອບຄອງ, ຖືກປະຕິບັດໂດຍລະຫັດ Linux kernel ເທິງນ້ໍາທີ່ບໍ່ມີການປ່ຽນແປງ, ແລະນີ້ບໍ່ໄດ້ຈັດການກັບຮູບແບບ EDID ທີ່ມີຂໍ້ບົກພ່ອງເຊັ່ນດຽວກັນກັບຊອບແວເຟີມແວກ່ອນຫນ້ານີ້. ນີ້ແມ່ນເຫດຜົນທີ່ວ່າຈໍສະແດງຜົນສາມາດຢຸດເຮັດວຽກຢ່າງຖືກຕ້ອງເມື່ອ KMS ເຂົ້າມາ. ມີຫຼາຍວິທີທີ່ຈະຢືນຢັນວ່າ KMS ບໍ່ໄດ້ອ່ານ EDID, ແລະສອງອັນນີ້ແມ່ນດັ່ງນີ້.
ກວດເບິ່ງຫນ້າຈໍວິນິດໄສ bootloader (Raspberry Pi 4 ເທົ່ານັ້ນ)

ໝາຍເຫດ
ການວິນິດໄສ Bootloader ຕ້ອງການ bootloader ຫຼ້າສຸດ. ທ່ານສາມາດອັບເກຣດເປັນເວີຊັນຫຼ້າສຸດໄດ້ໂດຍໃຊ້ຄຳແນະນຳເຫຼົ່ານີ້: https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#updating-the-bootloader ເອົາ SD card ແລະ reboot Raspberry Pi. ກົດ ESC ໃນຫນ້າຈໍຕິດຕັ້ງ OS, ແລະຫນ້າຈໍວິນິດໄສຄວນຈະປາກົດຢູ່ໃນອຸປະກອນສະແດງ. ຄວນມີແຖວເທິງຈໍສະແດງຜົນທີ່ເລີ່ມຕົ້ນດ້ວຍການສະແດງຜົນ: — ສໍາ​ລັບ example:

  • ຈໍສະແດງຜົນ: DISP0: HDMI HPD=1 EDID=ok #2 DISP1: HPD=0 EDID=none #0

ຜົນຜະລິດນີ້ຈາກ Raspberry Pi 4 ສະແດງໃຫ້ເຫັນວ່າລະບົບກວດພົບການສະແດງຜົນ HDMI ໃນພອດ HDMI 0, ການກວດສອບຈຸດສຽບສຽບຖືກຢືນຢັນ, ແລະ EDID ໄດ້ຖືກອ່ານແລ້ວ. ບໍ່ພົບອັນໃດຢູ່ໃນພອດ HDMI 1.

ກວດເບິ່ງວ່າລະບົບ KMS ກວດພົບ EDID ຫຼືບໍ່
ເພື່ອກວດສອບນີ້, ທ່ານຈະຕ້ອງເຂົ້າສູ່ລະບົບອຸປະກອນ Raspberry Pi ຜ່ານ SSH ຈາກຄອມພິວເຕີອື່ນ. ສາມາດເປີດໃຊ້ SSH ເມື່ອສ້າງຮູບພາບ SD card ດ້ວຍ Raspberry Pi Imager, ໂດຍໃຊ້ຕົວເລືອກການຕັ້ງຄ່າຂັ້ນສູງ. ການເປີດໃຊ້ SSH ໃນ SD card ທີ່ໄດ້ຮູບແລ້ວແມ່ນສັບສົນກວ່າເລັກນ້ອຍ: ທ່ານຈະຕ້ອງໃຊ້ຄອມພິວເຕີອື່ນເພື່ອເພີ່ມເຄື່ອງ file ຕັ້ງຊື່ ssh ກັບພາທິຊັນ boot. ປ່ຽນ SD card ໃນ Raspberry Pi ຕົ້ນສະບັບ ແລະເປີດມັນຂຶ້ນ. ອັນນີ້ຄວນເປີດໃຊ້ SSH, ດ້ວຍທີ່ຢູ່ IP ທີ່ຈັດສັນໂດຍ DHCP. ເມື່ອເຂົ້າສູ່ລະບົບແລ້ວ, ໃຫ້ພິມສິ່ງຕໍ່ໄປນີ້ຢູ່ທີ່ການເຕືອນຂອງເຄື່ອງໝາຍປາຍທາງເພື່ອສະແດງເນື້ອໃນຂອງ EDID ໃດໆກໍຕາມທີ່ກວດພົບ (ທ່ານອາດຈະຕ້ອງປ່ຽນ HDMI-A-1 ເປັນ HDMI-A-2 ຂຶ້ນກັບວ່າພອດ HDMI ໃດຢູ່ໃນ Raspberry Pi ອຸປະກອນສະແດງຜົນຖືກເຊື່ອມຕໍ່. to): cat /sys/class/drm/card?-HDMI-A-1/edid ຖ້າບໍ່ມີໂຟນເດີທີ່ມີຊື່ບັດ?-HDMI-A-1 ຫຼືຄ້າຍຄືກັນ, ມັນອາດຈະບໍ່ມີ EDID ສາມາດອ່ານໄດ້ຈາກຈໍສະແດງຜົນ. ອຸປະກອນ.

ໝາຍເຫດ
ໃນກໍລະນີທີ່ EDID ຖືກອ່ານຢ່າງສໍາເລັດຜົນ, ມີ virtual ທີ່ເປັນປະໂຫຍດ file ໃນໂຟເດີດຽວກັນ, ເອີ້ນວ່າໂຫມດ, ເຊິ່ງເມື່ອສະແດງສະແດງຮູບແບບທີ່ເປັນໄປໄດ້ທັງຫມົດທີ່ EDID ອ້າງວ່າອຸປະກອນສະຫນັບສະຫນູນ.

ການຫຼຸດຜ່ອນ

Hotplug ກວດພົບຄວາມລົ້ມເຫຼວ ຖ້າທັງເຟີມແວ ແລະ KMS ບໍ່ພົບຈໍພາບທີ່ຕິດຄັດມາ, ມັນອາດເປັນຄວາມລົ້ມເຫຼວຂອງການກວດຫາປລັກສຽບຮ້ອນ, ເຊັ່ນ: Raspberry Pi ບໍ່ຮູ້ວ່າອຸປະກອນໄດ້ຖືກສຽບຢູ່, ດັ່ງນັ້ນມັນບໍ່ໄດ້ກວດສອບ EDID. ອັນນີ້ອາດເກີດຈາກສາຍໄຟບໍ່ດີ, ຫຼືອຸປະກອນສະແດງຜົນທີ່ບໍ່ຢືນຢັນປລັກສຽບໄຟຢ່າງຖືກຕ້ອງ. ທ່ານ​ສາ​ມາດ​ບັງ​ຄັບ​ການ​ກວດ​ພົບ hotplug ໂດຍ​ການ​ປ່ຽນ​ແປງ​ເສັ້ນ​ຄໍາ​ສັ່ງ kernel​ file (cmdline.txt) ທີ່ເກັບໄວ້ໃນ boot partition ຂອງ Raspberry Pi OS SD card. ທ່ານ​ສາ​ມາດ​ແກ້​ໄຂ​ນີ້​ file ໃນລະບົບອື່ນ, ໃຊ້ຕົວແກ້ໄຂອັນໃດກໍໄດ້ທີ່ທ່ານຕ້ອງການ. ເພີ່ມສິ່ງຕໍ່ໄປນີ້ໃສ່ທ້າຍຂອງ cmdline.txt file: video=HDMI-A-1:1280×720@60D ຖ້າທ່ານໃຊ້ພອດ HDMI ທີສອງ, ໃຫ້ປ່ຽນ HDMI-A-1 ດ້ວຍ HDMI-A-2. ນອກນັ້ນທ່ານຍັງສາມາດກໍານົດຄວາມລະອຽດແລະອັດຕາເຟມທີ່ແຕກຕ່າງກັນ, ແຕ່ໃຫ້ແນ່ໃຈວ່າທ່ານເລືອກອັນທີ່ອຸປະກອນສະແດງຜົນສະຫນັບສະຫນູນ.

ໝາຍເຫດ
ເອກະສານກ່ຽວກັບການຕັ້ງຄ່າເສັ້ນຄໍາສັ່ງ kernel ສໍາລັບວິດີໂອສາມາດພົບໄດ້ທີ່ນີ້: https://www.kernel.org/doc/Documentation/fb/modedb.txt

ຄຳເຕືອນ
stacks ກຣາບຟິກເກົ່າສະຫນັບສະຫນູນການນໍາໃຊ້ config.txt entry ເພື່ອກໍານົດ hotplug detect, ແຕ່ໃນເວລາທີ່ຂຽນນີ້ບໍ່ໄດ້ເຮັດວຽກກັບ KMS. ມັນອາດຈະໄດ້ຮັບການສະຫນັບສະຫນູນໃນການປ່ອຍເຟີມແວໃນອະນາຄົດ. ການປ້ອນຂໍ້ມູນ config.txt ແມ່ນ hdmi_force_hotplug, ແລະທ່ານສາມາດລະບຸພອດ HDMI ສະເພາະທີ່ປລັກສຽບໄຟໃຊ້ກັບການໃຊ້ hdmi_force_hotplug:0=1 ຫຼື hdmi_force_hotplug:1=1. ໃຫ້ສັງເກດວ່າຊື່ຂອງ KMS ຫມາຍເຖິງພອດ HDMI ເປັນ 1 ແລະ 2, ໃນຂະນະທີ່ Raspberry Pi ໃຊ້ 0 ແລະ 1.

ບັນຫາ EDID
ອຸປະກອນສະແດງຜົນສ່ວນໜ້ອຍບໍ່ສາມາດສົ່ງຄືນ EDID ໄດ້ ຖ້າພວກມັນຖືກປິດ, ຫຼືເມື່ອເລືອກອິນພຸດ AV ຜິດ. ນີ້ສາມາດເປັນບັນຫາເມື່ອ Raspberry Pi ແລະອຸປະກອນສະແດງຜົນຢູ່ໃນແຖບພະລັງງານດຽວກັນ, ແລະອຸປະກອນ Raspberry Pi ບູດໄວກວ່າຈໍສະແດງຜົນ. ດ້ວຍອຸປະກອນແບບນີ້, ທ່ານອາດຕ້ອງສະໜອງ EDID ດ້ວຍຕົນເອງ. ຜິດປົກກະຕິຍິ່ງໄປກວ່ານັ້ນ, ບາງອຸປະກອນສະແດງຜົນມີບລັອກ EDID ທີ່ມີຮູບແບບທີ່ບໍ່ດີ ແລະບໍ່ສາມາດແຍກວິເຄາະໄດ້ໂດຍລະບົບ KMS EDID. ໃນສະຖານະການເຫຼົ່ານີ້, ມັນອາດຈະເປັນໄປໄດ້ທີ່ຈະອ່ານ EDID ຈາກອຸປະກອນທີ່ມີຄວາມລະອຽດຄ້າຍຄືກັນແລະໃຊ້ມັນ. ໃນກໍລະນີໃດກໍ່ຕາມ, ຄໍາແນະນໍາຕໍ່ໄປນີ້ກໍານົດວິທີການອ່ານ EDID ຈາກອຸປະກອນສະແດງຜົນແລະກໍານົດ KMS ເພື່ອໃຊ້ມັນ, ແທນທີ່ຈະ KMS ພະຍາຍາມສອບຖາມອຸປະກອນໂດຍກົງ.

ສຳເນົາ EDID ໄປໃສ່ ກ file
ການສ້າງກ file ການບັນຈຸ EDID metadata ຕັ້ງແຕ່ເລີ່ມຕົ້ນແມ່ນບໍ່ເປັນໄປໄດ້, ແລະການນໍາໃຊ້ທີ່ມີຢູ່ແລ້ວແມ່ນງ່າຍຂຶ້ນຫຼາຍ. ໂດຍທົ່ວໄປແລ້ວມັນເປັນໄປໄດ້ທີ່ຈະໄດ້ຮັບ EDID ຈາກອຸປະກອນສະແດງຜົນແລະເກັບຮັກສາມັນໄວ້ໃນ SD card ຂອງ Raspberry Pi ດັ່ງນັ້ນຈຶ່ງສາມາດຖືກນໍາໃຊ້ໂດຍ KMS ແທນທີ່ຈະໄດ້ຮັບ EDID ຈາກອຸປະກອນສະແດງຜົນ. ທາງເລືອກທີ່ງ່າຍທີ່ສຸດຢູ່ທີ່ນີ້ແມ່ນເພື່ອໃຫ້ແນ່ໃຈວ່າອຸປະກອນສະແດງຜົນແມ່ນຂຶ້ນແລະແລ່ນແລະຢູ່ໃນວັດສະດຸປ້ອນ AV ທີ່ຖືກຕ້ອງ, ແລະ Raspberry Pi ໄດ້ເລີ່ມຕົ້ນລະບົບ HDMI ຢ່າງຖືກຕ້ອງ. ຈາກ terminal, ຕອນນີ້ທ່ານສາມາດຄັດລອກ EDID ໄປເປັນ a file ດ້ວຍຄໍາສັ່ງຕໍ່ໄປນີ້: sudo cp /sys/class/drm/card?-HDMI-A-1/edid /lib/firmware/myedid.dat ຖ້າສໍາລັບເຫດຜົນບາງຢ່າງທີ່ EDID ບໍ່ປາກົດ, ທ່ານສາມາດ boot ອຸປະກອນໃນອຸປະກອນທີ່ບໍ່ແມ່ນ. ໂຫມດ KMS ທີ່ປະສົບຜົນສໍາເລັດໃນການບູດກັບ desktop ຫຼື console, ຫຼັງຈາກນັ້ນຄັດລອກ EDID ທີ່ເຟີມແວຈະ (ຫວັງວ່າ) ສໍາເລັດອ່ານເປັນ. file.

  1. ບູດຫາໂໝດກຣາບຟິກແບບເກົ່າ.
    1. ແກ້ໄຂ config.txt ໃນ boot partition, ໃຫ້ແນ່ໃຈວ່າຈະດໍາເນີນການບັນນາທິການຂອງທ່ານໂດຍໃຊ້ sudo, ແລະປ່ຽນເສັ້ນທີ່ບອກວ່າ dtoverlay=vc4-kms-v3d ເປັນ #dtoverlay=vc4-kms-v3d.
    2. ປິດເປີດໃໝ່.
  2. ດຽວນີ້ desktop ຫຼື login console ຄວນປາກົດ.
    1. ການ​ນໍາ​ໃຊ້​ສະ​ຖານ​ທີ່, ສໍາ​ເນົາ EDID ຈາກ​ອຸ​ປະ​ກອນ​ສະ​ແດງ​ທີ່​ຕິດ​ຄັດ​ມາ​ເປັນ a file ດ້ວຍຄໍາສັ່ງຕໍ່ໄປນີ້:
  • tvservice -d myedid.dat sudo mv myedid.dat /lib/firmware/

ການນໍາໃຊ້ ກ file-based EDID ແທນການສອບຖາມອຸປະກອນສະແດງຜົນ ແກ້ໄຂ /boot/cmdline.txt, ໃຫ້ແນ່ໃຈວ່າຈະດໍາເນີນການບັນນາທິການຂອງທ່ານໂດຍໃຊ້ sudo, ແລະເພີ່ມສິ່ງຕໍ່ໄປນີ້ໃສ່ເສັ້ນຄໍາສັ່ງ kernel: drm.edid_firmware=myedid.dat ທ່ານສາມາດສະຫມັກ EDID ກັບ a ພອດ HDMI ສະເພາະດັ່ງຕໍ່ໄປນີ້: drm.edid_firmware=HDMI-A-1:myedid.dat ຖ້າຈໍາເປັນ, ບູດກັບຄືນສູ່ໂໝດ KMS ໂດຍການເຮັດສິ່ງຕໍ່ໄປນີ້:

  1. ແກ້ໄຂ config.txt ໃນ boot partition, ໃຫ້ແນ່ໃຈວ່າຈະດໍາເນີນການບັນນາທິການຂອງທ່ານໂດຍໃຊ້ sudo, ແລະປ່ຽນເສັ້ນທີ່ຂຽນວ່າ #dtoverlay=vc4-kms-v3d ເປັນ dtoverlay=vc4-kms-v3d.
  2. ປິດເປີດໃໝ່.

ໝາຍເຫດ
ຖ້າທ່ານໃຊ້ a file-based EDID, ແຕ່ຍັງມີບັນຫາກັບ hotplug, ທ່ານສາມາດບັງຄັບໃຫ້ກວດພົບ hotplug ໂດຍການເພີ່ມຕໍ່ໄປນີ້ໃສ່ເສັ້ນຄໍາສັ່ງ kernel: video=HDMI-A-1:D.

ເອກະສານ / ຊັບພະຍາກອນ

RaspberryPi KMS HDMI Output ໄດເວີກຣາບຟິກ [pdf] ຄູ່ມືຜູ້ໃຊ້
KMS, HDMI Output Graphics Driver, KMS HDMI Output, ໄດເວີກຣາບຟິກ, KMS HDMI Output Graphics Driver, ໄດເວີ

ເອກະສານອ້າງອີງ

ອອກຄໍາເຫັນ

ທີ່ຢູ່ອີເມວຂອງເຈົ້າຈະບໍ່ຖືກເຜີຍແຜ່. ຊ່ອງຂໍ້ມູນທີ່ຕ້ອງການຖືກໝາຍໄວ້ *