RaspberryPi-LOGO

RaspberryPi KMS HDMI Direban Fitar da Zane

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

Colophon

2020-2023 Raspberry Pi Ltd (tsohon Raspberry Pi (Trading) Ltd.) Wannan takaddun yana da lasisi a ƙarƙashin lasisin Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0). kwanan watan gini: 2023-02-10 sigar gini: githash: c65fe9c-mai tsabta

Sanarwa na Rarraba Shari'a

BAYANIN FASAHA DA DOMIN AMINCI DON SAMUN SAUKI PI (HADA DA DATASHEETS) KAMAR YADDA AKE GYARA DAGA LOKACI ZUWA LOKACI ("KASUWA") ANA BAYAR DA RASPBERRY PI LTD ("RPL") "KAMAR YADDA" DA DUKAN BAYANAI, KO BANGASKIYA, BAYANAI. TO, GARANTIN SAUKI DA KYAUTA DON MUSAMMAN MANUFAR AN RA'AYI. ZUWA MATSALAR MATSALAR DOKA A BABU WANI FARKO DA RPL ZA A DOKA DOMIN DUK WANI SHARRI GASKIYA, GASKIYA, MAFARKI, NA MUSAMMAN, MISALI, KO SABODA LALACEWA (HADA, AMMA BAI IYA IYAKA BA; , KO RIBA; KO KASANCEWAR KASUWANCI) DUK DA YA SA KUMA AKAN KOWANE KA'IDAR LISSAFI, KO A CIKIN kwangila, MULKI, KO AZABA (HAMI DA sakaci ko SAURAN) FARUWA TA WATA HANYA DA AKE SAMUN HANYAR AMANA. IRIN WANNAN LALACEWAR. RPL tana da haƙƙin yin duk wani haɓakawa, haɓakawa, gyare-gyare ko kowane gyare-gyare ga RESOURCES ko kowane samfuran da aka bayyana a cikinsu a kowane lokaci kuma ba tare da ƙarin sanarwa ba. An yi nufin RESOURCES don ƙwararrun masu amfani da matakan da suka dace na ilimin ƙira. Masu amfani ke da alhakin zaɓin su da amfani da RESOURCES da kowane aikace-aikacen samfuran da aka bayyana a cikinsu. Mai amfani ya yarda da ramuwa da riƙe RPL mara lahani ga duk wani nauyi, farashi, lalacewa ko wasu asara da suka taso daga amfani da su na RESOURCES.RPL yana ba masu amfani izinin amfani da RESOURCES kawai tare da samfuran Rasberi Pi. An haramta duk sauran amfani da RESOURCES. Babu lasisi da aka bayar ga kowane RPL ko wani haƙƙin mallakar fasaha na ɓangare na uku. AYYUKAN HADARI MAI KYAU. Ba a tsara samfuran Raspberry Pi, ƙera su ko an yi niyya don amfani da su a cikin mahalli masu haɗari waɗanda ke buƙatar gazawar aiki lafiya, kamar a cikin ayyukan makaman nukiliya, kewayawa jirgin sama ko tsarin sadarwa, sarrafa zirga-zirgar iska, tsarin makamai ko aikace-aikacen aminci mai mahimmanci (ciki har da tallafin rayuwa). tsarin da sauran na'urorin likitanci), wanda rashin nasarar samfuran zai iya haifar da mutuwa kai tsaye, rauni na mutum ko mummunan lalacewar jiki ko muhalli ("Ayyukan Haɗari"). RPL musamman yana ƙin duk wani bayani ko garanti na dacewa don Babban Ayyukan Haɗari kuma yana karɓar wani alhaki don amfani ko haɗa samfuran Rasberi Pi a cikin Babban Ayyukan Haɗari. Ana ba da samfuran Rasberi Pi bisa ƙa'idodin ƙa'idodin RPL. Samar da RPL na RESOURCES baya faɗaɗa ko in ba haka ba ya canza Madaidaitan Sharuɗɗan RPL ciki har da amma ba'a iyakance ga ƙin yarda da garantin da aka bayyana a cikinsu ba.

Tarihin sigar daftarin aiki

RasberiPi-KMS-HDMI-Fitar-Graphics-Driver-FIG-1

Iyakar daftarin aiki

Wannan takaddar ta shafi samfuran Rasberi Pi masu zuwa

RasberiPi-KMS-HDMI-Fitar-Graphics-Driver-FIG-2

Gabatarwa

Tare da gabatarwar KMS (Kernel Mode Setting) direban zane, Raspberry Pi Ltd yana motsawa daga sarrafa firmware na gada na tsarin fitarwa na bidiyo kuma zuwa ga ƙarin tsarin zane mai buɗewa. Koyaya, wannan ya zo da nasa ƙalubale. An yi nufin wannan takaddar don taimakawa tare da duk wani matsala da ka iya tasowa yayin ƙaura zuwa sabon tsarin. Wannan farar takarda ta ɗauka cewa Rasberi Pi yana gudanar da Rasberi Pi OS, kuma ya cika zamani tare da sabuwar firmware da kernels.

Kalmomi

DRM: Manajan Rendering kai tsaye, tsarin kernel na Linux da ake amfani dashi don sadarwa tare da raka'o'in sarrafa hoto (GPUs). Ana amfani da haɗin gwiwa tare da FKMS da KMS.
DVI: Wanda ya rigaya zuwa HDMI, amma ba tare da damar sauti ba. HDMI zuwa igiyoyi na DVI da adaftar suna samuwa don haɗa na'urar Rasberi Pi zuwa nuni mai kayan DVI.
EDID: Ƙwararren Bayanan Ƙirar Nuni. Tsarin metadata don na'urorin nuni don bayyana iyawarsu zuwa tushen bidiyo. Tsarin bayanan EDID ya haɗa da sunan masana'anta da lambar serial, nau'in samfur, girman nuni na zahiri, da lokutan da nunin ke goyan bayan, tare da wasu bayanan da ba su da amfani. Wasu nunin nunin na iya samun gurɓatattun tubalan EDID, waɗanda zasu iya haifar da matsala idan tsarin nuni bai kula da waɗannan lahani ba.
FKMS (vc4-fkms-v3d): Saitin Yanayin Kernel na karya. Yayin da firmware har yanzu ke sarrafa ƙananan kayan aikin (misaliample, Babban Ma'anar Multimedia Interface (HDMI) tashar jiragen ruwa, Nuni Serial Interface (DSI), da dai sauransu), daidaitattun ɗakunan karatu na Linux ana amfani da su a cikin kwaya kanta. Ana amfani da FKMS ta tsohuwa a cikin Buster, amma yanzu an soke shi don goyon bayan KMS a Bullseye.
HDMI: Interface Multimedia High-Definition Interface mai jiwuwa/bidiyo ce ta mallaka don watsa bayanan bidiyon da ba a matsawa ba, da matsawa ko bayanan sauti na dijital.
HPD: Gano Hotplug. Waya ta zahiri wacce aka haɗa ta na'urar nuni don nuna tana nan.
KMS: Saitin Yanayin Kernel; gani https://www.kernel.org/doc/html/latest/gpu/drm-kms.html don ƙarin bayani. Akan Raspberry Pi, vc4-kms-v3d direba ne mai aiwatar da KMS, kuma galibi ana kiransa "direban KMS". Tarin hoto na Legacy: Tarin zane gabaɗaya aiwatar da shi a cikin ɓangarorin firmware na VideoCore wanda direban framebuffer na Linux ya fallasa. An yi amfani da tarin zane-zane na gado a yawancin na'urorin Raspberry Pi Ltd har zuwa kwanan nan; Yanzu a hankali ana maye gurbinsa da (F)KMS/DRM.

Tsarin HDMI da direbobi masu hoto

Na'urorin Rasberi Pi suna amfani da ma'aunin HDMI, wanda ya zama ruwan dare akan masu saka idanu na zamani da talabijin na LCD, don fitowar bidiyo. Raspberry Pi 3 (gami da Rasberi Pi 3B+) da na'urorin da suka gabata suna da tashar tashar HDMI guda ɗaya, wacce ke da ikon fitowar 1920 × 1200 @ 60Hz ta amfani da mai haɗin HDMI mai cikakken girma. Rasberi Pi 4 yana da tashoshin micro HDMI guda biyu, kuma yana da ikon fitar da 4K akan tashoshin biyu. Dangane da saitin, tashar tashar HDMI 0 akan Rasberi Pi 4 tana da ikon zuwa 4kp60, amma lokacin amfani da na'urorin fitarwa na 4K guda biyu kuna iyakance zuwa p30 akan na'urorin biyu. Tulin software na zane, ba tare da la'akari da sigar ba, yana da alhakin yin tambayoyi da aka haɗe na'urorin HDMI don kaddarorin su, da kuma saita tsarin HDMI yadda ya kamata. Legacy da FKMS duk suna amfani da firmware a cikin na'ura mai sarrafa hoto na VideoCore don bincika kasancewar HDMI da kaddarorin. Sabanin haka, KMS yana amfani da buɗaɗɗen tushe gaba ɗaya, aiwatar da gefen ARM. Wannan yana nufin ginshiƙan lambar don tsarin biyu sun bambanta gaba ɗaya, kuma a wasu yanayi wannan na iya haifar da halaye daban-daban tsakanin hanyoyin biyu. HDMI da na'urorin DVI sun gano kansu zuwa na'urar tushen ta amfani da wani yanki na metadata da ake kira block EDID. Ana karanta wannan ta na'urar tushen daga na'urar nuni ta hanyar haɗin I2C, kuma wannan gaba ɗaya bayyananne ga mai amfani da ƙarshen kamar yadda tarin zane-zane ke yi. Tushen EDID ya ƙunshi bayanai da yawa, amma ana amfani da shi da farko don tantance waɗanne kudurori ne nuni ke goyan bayan, don haka Rasberi Pi za a iya saita shi don fitar da ƙudurin da ya dace.

Yadda ake mu'amala da HDMI yayin booting

Lokacin da aka fara kunnawa, Rasberi Pi yana wucewa ta adadin stages, wanda aka sani da boot stage:

  1. Na farko-stage, bootloader na tushen ROM yana farawa da VideoCore GPU.
  2. Na biyu-stage bootloader (wannan shine bootcode.bin akan katin SD akan na'urorin kafin Rasberi Pi 4, kuma a cikin SPI EEPROM akan Rasberi Pi 4):
    1. A kan Rasberi Pi 4, na biyu-stage bootloader zai fara tsarin HDMI, yayi tambaya ga nuni don yiwuwar yanayi, sannan saita nunin da ya dace. A wannan lokaci ana amfani da nuni don samar da ainihin bayanan bincike.
    2. Nunin bincike na bootloader (07 Dec 2022 gaba) zai nuna matsayin kowane nunin da aka haɗe (ko Hotplug Detect (HPD) yana nan, da kuma ko an dawo da toshe EDID daga nunin).
  3. Ana loda kayan firmware na VideoCore (start.elf) kuma yana aiki. Wannan zai ɗauki nauyin sarrafa tsarin HDMI, karanta shingen EDID daga kowane nunin da aka haɗe, kuma ya nuna allon bakan gizo akan waɗannan nunin.
  4. Linux kernel takalma
    1. A lokacin taya kernel, KMS zai karɓi iko da tsarin HDMI daga firmware. Ana sake karanta toshewar EDID daga kowane nunin da aka haɗe, kuma ana amfani da wannan bayanin don saita na'ura mai kwakwalwa da tebur na Linux.

Matsaloli masu yiwuwa da alamu

Mafi yawan alamun gazawar da aka samu lokacin ƙaura zuwa KMS shine farkon taya mai kyau, tare da allon bootloader sannan allon bakan gizo ya bayyana, yana biye da shi bayan ƴan daƙiƙa kaɗan ta wurin nunin yana baƙar fata kuma baya dawowa. Ma'anar da nunin ke yin baki shine ainihin ma'anar yayin aikin kernel booting lokacin da direban KMS ya ɗauki nauyin sarrafa nuni daga firmware. Rasberi Pi a halin yanzu yana gudana ta kowane fanni ban da fitarwar HDMI, don haka idan an kunna SSH to yakamata ku iya shiga na'urar ta wannan hanyar. Fitilar samun damar katin SD koren ɗin yawanci zai yi flicker lokaci-lokaci. Hakanan yana yiwuwa ba za ku ga babu fitarwa na HDMI kwata-kwata; babu nunin bootloader, kuma babu allon bakan gizo. Ana iya danganta wannan ga kuskuren hardware.

Gano laifin

Babu fitarwa na HDMI kwata-kwata
Mai yiyuwa ne na'urar ba ta tashi kwata-kwata, amma wannan yana wajen aikin wannan farar takarda. Tsammanin cewa halayen da aka lura shine matsalar nuni, rashin fitarwa na HDMI a yayin kowane bangare na tsarin booting yawanci saboda kuskuren hardware. Akwai zaɓuɓɓuka masu yiwuwa da yawa:

  • Kebul na HDMI mara kyau
  • Gwada sabon kebul. Wasu igiyoyi, musamman masu arha, ƙila ba su ƙunshi duk layukan sadarwa da ake buƙata ba (misali hotplug) don Rasberi Pi don samun nasarar gano nuni.
  • Tashar tashar HDMI mara kyau akan Rasberi Pi
  • Idan kana amfani da Rasberi Pi 4, gwada sauran tashar tashar HDMI.
  • Tashar tashar HDMI mai lahani akan na'urar duba
  • Wani lokaci tashar tashar HDMI akan abin dubawa ko TV na iya lalacewa. Gwada tashar tashar jiragen ruwa daban idan na'urar tana da ɗaya.
  • Da wuya, na'urar nuni na iya ba da bayanan EDID kawai lokacin da aka kunna, ko lokacin da aka zaɓi madaidaicin tashar jiragen ruwa. Don bincika, tabbatar da cewa na'urar tana kunne kuma an zaɓi madaidaicin tashar shigar da bayanai.
  • Nuna na'urar baya tabbatar da layin gano hotplug

Fitowar farko, sannan allon yayi baki
Idan nuni ya fito amma sai ya tafi yayin taya Linux kernel boot, akwai wasu dalilai masu yiwuwa, kuma waɗannan yawanci suna da alaƙa da matsalar karanta EDID daga na'urar nuni. Kamar yadda ake iya gani daga sashin da ke sama yana magana da jerin boot, ana karanta EDID a wurare daban-daban yayin aikin boot, kuma kowane ɗayan waɗannan karatun ana yin su ta hanyar software daban-daban. Karatun ƙarshe, lokacin da KMS ya karɓi iko, ana aiwatar da shi ta hanyar lambar kwaya ta Linux wacce ba ta canza ba, kuma wannan baya ɗaukar ɓataccen tsarin EDID da software na farko na firmware. Wannan shine dalilin da ya sa nunin zai iya dakatar da aiki daidai da zarar KMS ya ɗauka. Akwai hanyoyi da yawa don tabbatar da ko KMS ya kasa karanta EDID, kuma biyu daga cikin waɗannan sune kamar haka.
Duba allon gwajin bootloader (Raspberry Pi 4 kawai)

NOTE
Binciken bootloader yana buƙatar bootloader kwanan nan. Kuna iya haɓaka zuwa sabon sigar ta amfani da waɗannan umarnin: https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#updating-the-bootloader Cire katin SD kuma sake yi Rasberi Pi. Latsa ESC akan allon shigar OS, kuma allon binciken yakamata ya bayyana akan na'urar nuni. Ya kamata a sami layi akan nunin da ke farawa da nuni: — na misaliampda:

  • nuni: DISP0: HDMI HPD=1 EDID=ok #2 DISP1: HPD=0 EDID=babu #0

Wannan fitowar daga Rasberi Pi 4 yana nuna cewa tsarin ya gano nuni na HDMI akan tashar tashar HDMI 0, an tabbatar da gano hotplug, kuma an karanta EDID OK. Ba a sami wani abu a tashar tashar HDMI 1 ba.

Bincika ko tsarin KMS ya gano EDID
Don bincika wannan kuna buƙatar shiga cikin na'urar Rasberi Pi akan SSH daga wata kwamfuta daban. Ana iya kunna SSH lokacin ƙirƙirar hoton katin SD tare da Hoton Rasberi Pi, ta amfani da zaɓuɓɓukan Saituna na Babba. Ƙaddamar da SSH akan katin SD wanda aka riga aka zana hoton yana da ɗan rikitarwa: kuna buƙatar amfani da wata kwamfuta don ƙarawa. file ssh mai suna zuwa ɓangaren taya. Maye gurbin katin SD a cikin ainihin Rasberi Pi kuma kunna shi. Wannan ya kamata ya ba da damar SSH, tare da adireshin IP wanda DHCP ke keɓancewa. Da zarar an shiga, rubuta mai zuwa a tashar tashar don nuna abubuwan da ke cikin kowane EDID da aka gano (zaka iya buƙatar canza HDMI-A-1 zuwa HDMI-A-2 dangane da abin da tashar tashar HDMI akan Raspberry Pi ke haɗa na'urar nuni. to): cat /sys/class/drm/card?-HDMI-A-1/edid Idan babu manyan fayiloli mai suna katin?-HDMI-A-1 ko makamancin haka, to yana yiwuwa ba za a iya karanta EDID daga nunin ba. na'urar.

NOTE
A cikin yanayin da aka karanta EDID cikin nasara, akwai kama-da-wane mai amfani file a cikin babban fayil guda, ana kiransa yanayin, wanda idan an nuna shi yana nuna duk hanyoyin da za a iya amfani da su EDID na da'awar na'urar tana goyan bayan.

Rage raguwa

Hotplug gano gazawar Idan duka firmware da KMS sun kasa nemo na'ura mai saka idanu, zai iya zama gazawar gano hotplug - watau Raspberry Pi bai san an toshe na'urar ba, don haka baya bincika EDID. Ana iya haifar da wannan ta hanyar muguwar kebul, ko na'urar nuni wacce ba ta tabbatar da hotplug daidai ba. Kuna iya tilasta gano hotplug ta hanyar canza layin umarni na kernel file (cmdline.txt) wanda aka adana a cikin ɓangaren taya na katin SD na Rasberi Pi OS. Kuna iya gyara wannan file akan wani tsarin, ta amfani da duk editan da kuka fi so. Ƙara abubuwan zuwa ƙarshen cmdline.txt file: video=HDMI-A-1:1280×720@60D Idan kana amfani da na biyu HDMI tashar jiragen ruwa, maye gurbin HDMI-A-1 da HDMI-A-2. Hakanan zaka iya ƙayyade ƙuduri daban-daban da ƙimar firam, amma ka tabbata ka zaɓi waɗanda na'urar nuni ke goyan bayan.

NOTE
Ana iya samun takaddun kan saitunan layin umarni na kernel don bidiyo anan: https://www.kernel.org/doc/Documentation/fb/modedb.txt

GARGADI
Tsofaffin zane-zane sun goyi bayan amfani da shigarwar config.txt don saita gano hotplug, amma a lokacin rubuta wannan baya aiki tare da KMS. Yana iya zama da goyan baya a cikin fitattun firmware na gaba. Shigowar config.txt shine hdmi_force_hotplug, kuma zaku iya ƙayyade takamaiman tashar tashar HDMI wanda hotplug ɗin ya shafi yin amfani da ko dai hdmi_force_hotplug:0=1 ko hdmi_force_hotplug:1=1. Lura cewa sunan KMS yana nufin tashar jiragen ruwa na HDMI azaman 1 da 2, yayin da Rasberi Pi ke amfani da 0 da 1.

Matsalolin EDID
Ƙananan na'urorin nuni ba su da ikon dawo da EDID idan an kashe su, ko lokacin da aka zaɓi shigar da AV mara kyau. Wannan na iya zama matsala lokacin da Rasberi Pi da na'urorin nuni ke kan tulin wuta ɗaya, kuma na'urar Raspberry Pi ta yi sauri fiye da nuni. Tare da na'urori irin wannan, kuna iya buƙatar samar da EDID da hannu. Ko da ba a saba gani ba, wasu na'urorin nuni suna da tubalan EDID waɗanda aka tsara su da kyau kuma tsarin KMS EDID ba zai iya misalta su ba. A cikin waɗannan yanayi, yana iya yiwuwa a karanta EDID daga na'urar da ke da irin wannan ƙuduri kuma amfani da waccan. A kowane hali, umarni masu zuwa sun tsara yadda za a karanta EDID daga na'urar nuni da kuma saita KMS don amfani da shi, maimakon KMS yana ƙoƙarin yi wa na'urar tambayoyi kai tsaye.

Ana kwafin EDID zuwa a file
Ƙirƙirar a file dauke da metadata na EDID daga karce ba yawanci abu ne mai yuwuwa ba, kuma amfani da wanda yake akwai yafi sauki. Yana yiwuwa gabaɗaya a sami EDID daga na'urar nuni da adana shi akan katin SD na Rasberi Pi don haka KMS zai iya amfani da shi maimakon samun EDID daga na'urar nuni. Zaɓin mafi sauƙi anan shine don tabbatar da cewa na'urar nuni tana aiki kuma akan madaidaicin shigarwar AV, kuma Rasberi Pi ya fara haɓaka tsarin HDMI daidai. Daga tashar tashar, yanzu zaku iya kwafin EDID zuwa wani file tare da umarni mai zuwa: sudo cp /sys/class/drm/card?-HDMI-A-1/edid/lib/firmware/myedid.dat Idan saboda wasu dalilai EDID baya nan, zaku iya kora na'urar a cikin maras kyau. -Yanayin KMS wanda yayi nasara wajen yin booting zuwa tebur ko na'ura wasan bidiyo, sannan kwafi EDID wanda firmware zai (da fatan) yayi nasarar karantawa zuwa file.

  1. Boot zuwa yanayin zane mai gado.
    1. Shirya config.txt a cikin ɓangaren taya, tabbatar da kunna editan ku ta amfani da sudo, kuma canza layin da ke cewa dtoverlay=vc4-kms-v3d zuwa #dtoverlay=vc4-kms-v3d.
    2. Sake yi.
  2. Teburin kwamfuta ko na'ura mai kwakwalwa ya kamata ya bayyana yanzu.
    1. Yin amfani da tasha, kwafi EDID daga na'urar nuni da aka haɗe zuwa a file tare da umarni mai zuwa:
  • tvservice -d myedid.dat sudo mv myedid.dat /lib/firmware/

Amfani da a file-based EDID maimakon yin tambayoyi na na'urar nuni Shirya /boot/cmdline.txt, tabbatar da gudanar da editan ku ta amfani da sudo, kuma ƙara waɗannan zuwa layin umarni na kernel: drm.edid_firmware=myedid.dat Kuna iya amfani da EDID zuwa takamaiman tashar tashar jiragen ruwa ta HDMI kamar haka: drm.edid_firmware=HDMI-A-1:myedid.dat Idan ya cancanta, sake komawa cikin yanayin KMS ta hanyar yin haka:

  1. Shirya config.txt a cikin boot partition, tabbatar da kunna editan ku ta amfani da sudo, kuma canza layin da ke cewa #dtoverlay=vc4-kms-v3d zuwa dtoverlay=vc4-kms-v3d.
  2. Sake yi.

NOTE
Idan kayi amfani da a file-based EDID, amma har yanzu kuna da matsaloli tare da hotplug, zaku iya tilasta gano hotplug ta ƙara waɗannan zuwa layin umarni na kernel: bidiyo=HDMI-A-1:D.

Takardu / Albarkatu

RaspberryPi KMS HDMI Direban Fitar da Zane [pdf] Manual mai amfani
KMS, HDMI Direban Zane Mai Fitarwa, KMS HDMI Fitarwa, Direban Zane, KMS HDMI Direban Zane Mai Fitar, Direba

Magana

Bar sharhi

Ba za a buga adireshin imel ɗin ku ba. Ana yiwa filayen da ake buƙata alama *