Drejtuesi i grafikës së daljes HDMI të RaspberryPi KMS
Kolofoni
2020-2023 Raspberry Pi Ltd (ish Raspberry Pi (Trading) Ltd.) Ky dokumentacion është i licencuar sipas një licence Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0). data e ndërtimit: 2023-02-10 versioni i ndërtimit: githash: c65fe9c-clean
Njoftim për mohim ligjor
TË DHËNAT TEKNIKE DHE TË BESUESHMËRISË PËR PRODUKTET E RASPBERRY PI (Përfshirë Fletët e të Dhënave) SI TË MODIFIKUARA KOHA NE KOHË (“BURIMET”) JANË NGA RASPBERRY PI LTD (“RPL” TERANE TE PERGJITHSHME, SI TË GJITHSHME, PRINDËR. NË, GARANCITË E NËNKUPTUARA TË TREGTUESHMËRISË DHE PËRSHTATSHMËRISË PËR NJË QËLLIM TË VEÇANTË JANË REFUZIME. DERI NE SHPALLEN MAKSIME TE LEJUAR NGA LIGJI NE ASNJE RAST RPL DO TE JETE PERGJEGJESE PER ASNJE DREJTET, INDIREKT, INCIDENTAL, SPECIALE, SHEMPLAR, OSE PAJISJE DEM TE SH.B.A.E. , OSE FITIMET; OSE NDERPRERJA E BIZNESIT) SIDO TË SHKAKTUAR DHE PËR ÇDO TEORI PËRGJEGJËSORE, QËSHTË NË KONTRATË, PËRGJEGJËSI TË RRETË, OSE DËRSHTIM (PERFSHIRË PAQLEDHJEN APO PËRSHTIRËN NË NJË SHQIPËRI) TË SHKAKTUAR E DËMIMIT TË TIJ. RPL rezervon të drejtën për të bërë çdo përmirësim, përmirësim, korrigjim ose çdo modifikim tjetër në BURIMET ose çdo produkt të përshkruar në to në çdo kohë dhe pa njoftim të mëtejshëm. BURIMET janë të destinuara për përdorues të aftë me nivele të përshtatshme të njohurive të projektimit. Përdoruesit janë vetëm përgjegjës për zgjedhjen e tyre dhe përdorimin e BURIMEVE dhe çdo aplikim të produkteve të përshkruara në to. Përdoruesi pranon të dëmshpërblejë dhe të mbajë RPL të padëmshme ndaj të gjitha detyrimeve, kostove, dëmeve ose humbjeve të tjera që rrjedhin nga përdorimi i RESOURCES.RPL u jep përdoruesve lejen për të përdorur BURIMET vetëm në lidhje me produktet Raspberry Pi. Çdo përdorim tjetër i BURIMEVE është i ndaluar. Asnjë licencë nuk i jepet asnjë RPL tjetër ose të drejtës së pronës intelektuale të palës së tretë. AKTIVITETET ME RREZIK TE LARTE. Produktet e Raspberry Pi nuk janë të dizajnuara, prodhuara ose të destinuara për përdorim në mjedise të rrezikshme që kërkojnë performancë të sigurt për dështimin, si në funksionimin e objekteve bërthamore, sistemet e navigimit ose komunikimit të avionëve, kontrollin e trafikut ajror, sistemet e armëve ose aplikacionet kritike për sigurinë (përfshirë mbështetjen e jetës sisteme dhe pajisje të tjera mjekësore), në të cilat dështimi i produkteve mund të çojë drejtpërdrejt në vdekje, dëmtim personal ose dëmtim të rëndë fizik ose mjedisor ("Aktivitete me rrezik të lartë"). RPL në mënyrë specifike mohon çdo garanci të shprehur ose të nënkuptuar të përshtatshmërisë për Aktivitetet me Rrezik të Lartë dhe nuk pranon asnjë përgjegjësi për përdorimin ose përfshirjen e produkteve Raspberry Pi në Aktivitetet me Rrezik të Lartë. Produktet Raspberry Pi ofrohen sipas kushteve standarde të RPL. Sigurimi i BURIMEVE nga RPL nuk zgjeron ose modifikon ndryshe Kushtet Standarde të RPL duke përfshirë, por pa u kufizuar në mohimet dhe garancitë e shprehura në to.
Historia e versionit të dokumentit
Fushëveprimi i dokumentit
Ky dokument vlen për produktet e mëposhtme të Raspberry Pi
Hyrje
Me prezantimin e drejtuesit të grafikës KMS (Kernel Mode Setting), Raspberry Pi Ltd po largohet nga kontrolli i vjetër i firmuerit të sistemit të daljes së videos dhe drejt një sistemi grafik më me burim të hapur. Megjithatë, kjo ka ardhur me grupin e vet të sfidave. Ky dokument synon të ndihmojë me çdo problem që mund të lindë kur kaloni në sistemin e ri. Kjo letër e bardhë supozon se Raspberry Pi po ekzekuton Raspberry Pi OS dhe është plotësisht i përditësuar me firmuerin dhe kernelët më të fundit.
Terminologjia
DRM: Direct Rendering Manager, një nënsistem i kernelit Linux që përdoret për të komunikuar me njësitë e përpunimit grafik (GPU). Përdoret në partneritet me FKMS dhe KMS.
DVI: Një paraardhës i HDMI, por pa aftësi audio. Kabllot dhe përshtatësit HDMI në DVI janë të disponueshme për të lidhur një pajisje Raspberry Pi me një ekran të pajisur me DVI.
Edid: Të dhënat e identifikimit të zgjeruara të ekranit. Një format meta të dhënash për pajisjet e ekranit për të përshkruar aftësitë e tyre në një burim video. Struktura e të dhënave EDID përfshin emrin e prodhuesit dhe numrin serial, llojin e produktit, madhësinë fizike të ekranit dhe kohën e mbështetur nga ekrani, së bashku me disa të dhëna më pak të dobishme. Disa ekrane mund të kenë blloqe EDID me defekt, të cilat mund të shkaktojnë probleme nëse ato defekte nuk trajtohen nga sistemi i ekranit.
FKMS (vc4-fkms-v3d): Cilësimi i modalitetit të kernelit të rremë. Ndërsa firmware ende kontrollon harduerin e nivelit të ulët (për shembullampLe, portat e Ndërfaqes Multimediale me definicion të lartë (HDMI), ndërfaqja serike e ekranit (DSI), etj.), bibliotekat standarde të Linux përdoren në vetë kernel. FKMS përdoret si parazgjedhje në Buster, por tani është zhvlerësuar në favor të KMS në Bullsye.
HDMI: Ndërfaqja multimediale me definicion të lartë është një ndërfaqe e zotëruar audio/video për transmetimin e të dhënave video të pakompresuara dhe të dhënave audio dixhitale të kompresuara ose të pakompresuara.
HPD: Zbulimi i prizës së nxehtë. Një tel fizik që është pohuar nga një pajisje ekrani e lidhur për ta treguar është i pranishëm.
KMS: Cilësimi i modalitetit të kernelit; Shiko https://www.kernel.org/doc/html/latest/gpu/drm-kms.html për më shumë detaje. Në Raspberry Pi, vc4-kms-v3d është një drejtues që zbaton KMS dhe shpesh quhet "shofer KMS". Stack grafike e trashëguar: Një grup grafike i implementuar tërësisht në blob-in e firmuerit VideoCore të ekspozuar nga një drejtues i kornizës Linux. Stacki i trashëguar grafike është përdorur në shumicën e pajisjeve Raspberry Pi Ltd deri vonë; tani gradualisht po zëvendësohet nga (F)KMS/DRM.
Sistemi HDMI dhe drejtuesit e grafikës
Pajisjet Raspberry Pi përdorin standardin HDMI, i cili është shumë i zakonshëm në monitorët dhe televizorët LCD modernë, për dalje video. Raspberry Pi 3 (përfshirë Raspberry Pi 3B+) dhe pajisjet e mëparshme kanë një portë të vetme HDMI, e cila është e aftë për dalje 1920 × 1200 @60 Hz duke përdorur një lidhës HDMI me madhësi të plotë. Raspberry Pi 4 ka dy porte mikro HDMI dhe është i aftë për dalje 4K në të dy portet. Në varësi të konfigurimit, porta HDMI 0 në Raspberry Pi 4 është e aftë për deri në 4kp60, por kur përdorni dy pajisje dalëse 4K kufizoheni në p30 në të dyja pajisjet. Stafi i softuerit grafik, pavarësisht nga versioni, është përgjegjës për marrjen në pyetje të pajisjeve HDMI të bashkangjitura për vetitë e tyre dhe konfigurimin e duhur të sistemit HDMI. Raftet e trashëgimisë dhe FKMS përdorin firmware në procesorin grafik VideoCore për të kontrolluar praninë dhe vetitë HDMI. Në të kundërt, KMS përdor një zbatim tërësisht me burim të hapur, nga ana e ARM-së. Kjo do të thotë se bazat e kodit për dy sistemet janë krejtësisht të ndryshme, dhe në disa rrethana kjo mund të rezultojë në sjellje të ndryshme midis dy qasjeve. Pajisjet HDMI dhe DVI e identifikojnë veten në pajisjen burimore duke përdorur një pjesë të meta të dhënave të quajtur bllok EDID. Kjo lexohet nga pajisja burimore nga pajisja e ekranit nëpërmjet një lidhjeje I2C, dhe kjo është plotësisht transparente për përdoruesin fundor siç bëhet nga pirgja grafike. Blloku EDID përmban shumë informacione, por përdoret kryesisht për të specifikuar se cilat rezolucione mbështet ekrani, kështu që Raspberry Pi mund të konfigurohet për të nxjerrë një rezolucion të përshtatshëm.
Si trajtohet HDMI gjatë nisjes
Kur ndizet për herë të parë, Raspberry Pi kalon një numër stages, i njohur si boot stages:
- Të parëttage, ngarkuesi i bazuar në ROM nis GPU-në VideoCore.
- E dyta-stage bootloader (ky është bootcode.bin në kartën SD në pajisjet para Raspberry Pi 4 dhe në SPI EEPROM në Raspberry Pi 4):
- Në Raspberry Pi 4, e dytatagNgarkuesi i ngarkimit do të nisë sistemin HDMI, do të marrë në pyetje ekranin për mënyrat e mundshme dhe më pas do ta konfigurojë ekranin në mënyrë të përshtatshme. Në këtë pikë ekrani përdoret për të siguruar të dhëna themelore diagnostikuese.
- Ekrani diagnostikues i ngarkuesit (07 dhjetor 2022 e tutje) do të shfaq statusin e çdo ekrani të bashkangjitur (nëse është i pranishëm Detektimi i prizës së nxehtësisë (HPD) dhe nëse një bllok EDID është rikuperuar nga ekrani).
- Firmware VideoCore (start.elf) është ngarkuar dhe ekzekutuar. Kjo do të marrë kontrollin e sistemit HDMI, do të lexojë bllokun EDID nga çdo ekran i bashkangjitur dhe do të shfaqë ekranin e ylberit në ato ekrane.
- Çizmet e kernelit Linux
- Gjatë nisjes së kernelit, KMS do të marrë kontrollin e sistemit HDMI nga firmware. Edhe një herë blloku EDID lexohet nga çdo ekran i bashkangjitur dhe ky informacion përdoret për të konfiguruar tastierën Linux dhe desktopin.
Problemet dhe simptomat e mundshme
Simptoma më e zakonshme e dështimit që përjetohet kur kaloni në KMS është një nisje fillimisht e mirë, me ekranin e ngarkuesit dhe më pas shfaqjen e ekranit të ylberit, i ndjekur pas disa sekondash kur ekrani bëhet i zi dhe nuk ndizet më. Pika në të cilën ekrani bëhet i zi është në fakt pika gjatë procesit të nisjes së kernelit kur drejtuesi KMS merr përsipër drejtimin e ekranit nga firmware. Raspberry Pi aktualisht funksionon në të gjitha aspektet, përveç daljes HDMI, kështu që nëse SSH është i aktivizuar, atëherë duhet të jeni në gjendje të identifikoheni në pajisje nga ajo rrugë. LED-ja e gjelbër e aksesit të kartës SD zakonisht do të dridhjet herë pas here. Është gjithashtu e mundur që nuk do të shihni fare dalje HDMI; pa ekran bootloader dhe pa ekran rainbow. Kjo zakonisht mund t'i atribuohet një defekti të harduerit.
Diagnostifikimi i defektit
Asnjë dalje HDMI fare
Është e mundur që pajisja të mos jetë nisur fare, por kjo është jashtë kompetencave të kësaj letre të bardhë. Duke supozuar se sjellja e vëzhguar është një problem i ekranit, mungesa e daljes HDMI gjatë çdo pjese të procesit të nisjes është zakonisht për shkak të një defekti harduerik. Ka një numër opsionesh të mundshme:
- Kabllo HDMI me defekt
- Provoni një kabllo të re. Disa kabllo, veçanërisht ato shumë të lira, mund të mos përmbajnë të gjitha linjat e nevojshme të komunikimit (p.sh. hotplug) për Raspberry Pi për të zbuluar me sukses ekranin.
- Porta HDMI e dëmtuar në Raspberry Pi
- Nëse jeni duke përdorur një Raspberry Pi 4, provoni portën tjetër HDMI.
- Porta HDMI e dëmtuar në monitor
- Ndonjëherë porta HDMI në një monitor ose televizor mund të konsumohet. Provoni një port tjetër nëse pajisja ka një të tillë.
- Rrallëherë, një pajisje ekrani mund të sigurojë të dhëna EDID vetëm kur është i ndezur ose kur zgjidhet porta e duhur. Për të kontrolluar, sigurohuni që pajisja është e ndezur dhe se është zgjedhur porta e saktë e hyrjes.
- Shfaq pajisjen që nuk pohon linjën e zbulimit të prizës së nxehtësisë
Dalja fillestare, më pas ekrani bëhet i zi
Nëse ekrani shfaqet, por më pas fiket gjatë nisjes së kernelit Linux, ka një sërë shkaqesh të mundshme, dhe këto zakonisht lidhen me një problem në leximin e EDID nga pajisja e ekranit. Siç mund të shihet nga pjesa e mësipërme që ka të bëjë me sekuencën e nisjes, EDID lexohet në një numër pikash të ndryshme gjatë procesit të nisjes, dhe secila prej këtyre leximeve bëhet nga një pjesë e ndryshme softuerike. Leximi përfundimtar, kur KMS merr përsipër, kryhet nga kodi i kernelit Linux i pandryshuar në rrjedhën e sipërme, dhe kjo nuk trajton formatet EDID me defekt, si dhe softuerin e mëparshëm të firmuerit. Kjo është arsyeja pse ekrani mund të ndalojë së punuari si duhet sapo KMS të marrë përsipër. Ka shumë mënyra për të konfirmuar nëse KMS nuk po lexon EDID, dhe dy prej tyre janë si më poshtë.
Kontrolloni ekranin diagnostikues të ngarkuesit (vetëm Raspberry Pi 4)
SHËNIM
Diagnostifikimi i ngarkuesit kërkon një ngarkues të fundit. Ju mund të përmirësoni në versionin më të fundit duke përdorur këto udhëzime: https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#updating-the-bootloader Hiqni kartën SD dhe rindizni Raspberry Pi. Shtypni ESC në ekranin Install OS dhe ekrani diagnostikues duhet të shfaqet në pajisjen e ekranit. Duhet të ketë një rresht në ekran që fillon me ekran: — p.shampe:
- shfaq: DISP0: HDMI HPD=1 EDID=ok #2 DISP1: HPD=0 EDID=asnjë #0
Ky dalje nga një Raspberry Pi 4 tregon se sistemi zbuloi një ekran HDMI në portën HDMI 0, zbulimi i prizës së nxehtësisë pohohet dhe EDID u lexua në rregull. Asgjë nuk u gjet në portën HDMI 1.
Kontrolloni nëse sistemi KMS zbuloi një EDID
Për ta kontrolluar këtë, do t'ju duhet të identifikoheni në pajisjen Raspberry Pi përmes SSH nga një kompjuter tjetër. SSH mund të aktivizohet kur krijoni një imazh të kartës SD me Raspberry Pi Imager, duke përdorur opsionet e Cilësimeve të Avancuara. Aktivizimi i SSH në një kartë SD që tashmë është fotografuar është pak më e komplikuar: do t'ju duhet të përdorni një kompjuter tjetër për të shtuar një file me emrin ssh në ndarjen e nisjes. Zëvendësoni kartën SD në Raspberry Pi origjinal dhe aktivizoni atë. Kjo duhet të mundësojë SSH, me një adresë IP të caktuar nga DHCP. Pasi të jeni identifikuar, shkruani sa vijon në kërkesën e terminalit për të shfaqur përmbajtjen e çdo EDID të zbuluar (mund t'ju duhet të ndryshoni HDMI-A-1 në HDMI-A-2 në varësi të cilës port HDMI në Raspberry Pi është e lidhur pajisja e ekranit te): cat /sys/class/drm/card?-HDMI-A-1/edid Nëse nuk ka dosje me emrin card?-HDMI-A-1 ose të ngjashme, atëherë ka të ngjarë që asnjë EDID të mos mund të lexohet nga ekrani pajisje.
SHËNIM
Në rastin kur EDID lexohet me sukses, ekziston një virtual i dobishëm file në të njëjtën dosje, të quajtur modes, e cila kur shfaqet tregon të gjitha mënyrat e mundshme që EDID pretendon se pajisja mbështet.
Zbutjet
Dështimi i zbulimit të hotplug-it Nëse firmware dhe KMS nuk arrijnë të gjejnë një monitor të bashkangjitur, mund të jetë një dështim i zbulimit të prizës së nxehtësisë - p.sh., Raspberry Pi nuk e di se një pajisje është futur në prizë, kështu që nuk kontrollon për një EDID. Kjo mund të shkaktohet nga një kabllo e keqe ose një pajisje ekrani që nuk e vendos saktë prizën e nxehtësisë. Ju mund të detyroni të zbulojë një hotplug duke ndryshuar linjën e komandës së kernelit file (cmdline.txt) që ruhet në ndarjen e nisjes së një karte SD Raspberry Pi OS. Ju mund ta modifikoni këtë file në një sistem tjetër, duke përdorur cilindo redaktues që ju preferoni. Shtoni sa vijon në fund të cmdline.txt file: video=HDMI-A-1:1280×720@60D Nëse jeni duke përdorur portën e dytë HDMI, zëvendësoni HDMI-A-1 me HDMI-A-2. Mund të specifikoni gjithashtu një rezolucion dhe shpejtësi të ndryshme kuadri, por sigurohuni që të zgjidhni ato që mbështet pajisja e ekranit.
SHËNIM
Dokumentacioni për cilësimet e linjës së komandës së kernelit për videon mund të gjendet këtu: https://www.kernel.org/doc/Documentation/fb/modedb.txt
PARALAJMËRIM
Raftet më të vjetra grafike mbështetën përdorimin e një hyrjeje config.txt për të vendosur zbulimin e prizës së nxehtësisë, por në momentin e shkrimit kjo nuk funksionon me KMS. Mund të mbështetet në versionet e ardhshme të firmuerit. Hyrja config.txt është hdmi_force_hotplug dhe mund të specifikoni portën specifike HDMI për të cilën zbatohet hotplug duke përdorur ose hdmi_force_hotplug:0=1 ose hdmi_force_hotplug:1=1. Vini re se nomenklatura për KMS i referohet porteve HDMI si 1 dhe 2, ndërsa Raspberry Pi përdor 0 dhe 1.
Probleme me EDID
Një pakicë pajisjesh ekrani nuk janë në gjendje të kthejnë një EDID nëse janë të fikur ose kur zgjidhet hyrja e gabuar AV. Ky mund të jetë një problem kur Raspberry Pi dhe pajisjet e ekranit janë në të njëjtin rrip të energjisë dhe pajisja Raspberry Pi nis më shpejt se ekrani. Me pajisje si kjo, mund t'ju duhet të siguroni manualisht një EDID. Edhe më e pazakontë, disa pajisje ekrani kanë blloqe EDID që janë të formatuar keq dhe nuk mund të analizohen nga sistemi KMS EDID. Në këto rrethana, mund të jetë e mundur të lexoni një EDID nga një pajisje me rezolucion të ngjashëm dhe ta përdorni atë. Në secilin rast, udhëzimet e mëposhtme përcaktojnë se si të lexoni një EDID nga një pajisje ekrani dhe të konfiguroni KMS për ta përdorur atë, në vend që KMS të përpiqet të marrë në pyetje pajisjen drejtpërdrejt.
Kopjimi i një EDID në a file
Krijimi i një file Përmbajtja e meta të dhënave EDID nga e para zakonisht nuk është e realizueshme dhe përdorimi i një ekzistues është shumë më i lehtë. Në përgjithësi, është e mundur të merrni një EDID nga një pajisje ekrani dhe ta ruani atë në kartën SD të Raspberry Pi, në mënyrë që të mund të përdoret nga KMS në vend që të merrni një EDID nga pajisja e ekranit. Mundësia më e lehtë këtu është të siguroheni që pajisja e ekranit të funksionojë dhe të jetë në hyrjen e duhur AV, dhe që Raspberry Pi të ketë nisur saktë sistemin HDMI. Nga terminali, tani mund të kopjoni EDID në a file me komandën e mëposhtme: sudo cp /sys/class/drm/card?-HDMI-A-1/edid /lib/firmware/myedid.dat Nëse për ndonjë arsye EDID nuk është i pranishëm, mund ta nisni pajisjen në një jo -Modaliteti KMS që ka sukses në nisjen në desktop ose konsol, më pas kopjoni EDID-in që firmware (shpresojmë) do ta lexojë me sukses në një file.
- Boot në modalitetin grafikë të vjetër.
- Ndrysho config.txt në ndarjen e nisjes, duke u siguruar që të ekzekutosh redaktorin duke përdorur sudo dhe të ndryshosh rreshtin që thotë dtoverlay=vc4-kms-v3d në #dtoverlay=vc4-kms-v3d.
- Rindizni.
- Tani duhet të shfaqet desktopi ose tastiera e hyrjes.
- Duke përdorur terminalin, kopjoni EDID nga pajisja e bashkëngjitur e ekranit në a file me komandën e mëposhtme:
- tvservice -d myedid.dat sudo mv myedid.dat /lib/firmware/
Duke përdorur një fileEDID i bazuar në vend që të merrni në pyetje pajisjen e ekranit Ndrysho /boot/cmdline.txt, duke u siguruar që të ekzekutosh redaktorin duke përdorur sudo dhe të shtosh sa vijon në linjën e komandës së kernelit: drm.edid_firmware=myedid.dat Ju mund të aplikoni EDID në një port specifik HDMI si më poshtë: drm.edid_firmware=HDMI-A-1:myedid.dat Nëse është e nevojshme, rinisni në modalitetin KMS duke bërë sa më poshtë:
- Ndrysho config.txt në ndarjen e nisjes, duke u siguruar që të ekzekutosh redaktorin duke përdorur sudo dhe të ndryshosh rreshtin që thotë #dtoverlay=vc4-kms-v3d në dtoverlay=vc4-kms-v3d.
- Rindizni.
SHËNIM
Nëse përdorni një file-bazuar në EDID, por ende keni probleme me prizën e nxehtësisë, mund të detyroni zbulimin e prizës së nxehtësisë duke shtuar sa vijon në linjën e komandës së kernelit: video=HDMI-A-1:D.
Dokumentet / Burimet
![]() |
Drejtuesi i grafikës së daljes HDMI të RaspberryPi KMS [pdf] Manuali i Përdoruesit KMS, Drejtues i grafikës së daljes HDMI, Drejtues grafiku i daljes KMS HDMI, Drejtues grafiku i daljes HDMI, drejtues grafiku i daljes HDMI, drejtues |