RaspberryPi KMS HDMI irteerako grafikoen kontrolatzailea
Kolofoia
2020-2023 Raspberry Pi Ltd (lehen Raspberry Pi (Trading) Ltd.) Dokumentazio hau Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0) lizentziapean dago. eraikitze-data: 2023-02-10 eraikitze-bertsioa: githash: c65fe9c-clean
Lege-oharra
RASPBERRY PI PRODUKTUEN DATU TEKNIKOAK ETA FIDAGARRITASUNAK (DATU FITXAK BARNE) ALDIAK ALDATZEN DITUZTEN ("BALIABIDEAK") RASPBERRY PI LTD ("RPL") EDOZEIN BERME ADIERAZKI EDO INPLIZITUTAKO EDOZEIN BERME ESPARIALAK EDO INPLIZITUAK EMATEN DITU, BAINA EZ MUGATUTA. ERABILTZEKO ETA HELBURU BEREZI BATERAKO EGOKITASUNAREN BERME INPLIZITUEI EZKOAK DIRA. APLIKATZEKO LEGEAK BAIMENDUTAKO GEHIEN MUTEAN, RPL EZ DA EZ DUTE ZUZENEKO, ZEHARKAKO, BEHARREZKO, BEREZKO, EREENTZEKO EDO ONDORIOKO KALATEEN ERANTZUKIZUNA IZANGO (BARATE, ORDEZKO ONDASUNEN EROSKETA, DATUEN ORDEZKO ONDASUNEN EROSKETA; EDO IRABAKIAK; EDO NEGOZIO-ETENA) DEN ERAGARRI ETA EDOZEIN TEORIARI BURUZKOA, KONTRATUAN, ERANTZUKIZUN ZORTZEAN EDO ARABERA (DESKLIZITZA EDO BESTELAK BARNE), BALIABIDEEN ERABILERAK ERABILTZEKO EDOZEIN ERABILTZEN DAGOEN, AHOLTASUNEZ ERE. HORRELAKO KALTEAK. RPL-k beretzat gordetzen du edozein hobekuntza, hobekuntza, zuzenketa edo beste edozein aldaketa egiteko BALIABIDEetan edo horietan deskribatutako produktuetan edozein unetan eta beste abisurik gabe. BALIABIDEAK diseinuaren ezagutza maila egokia duten erabiltzaile trebeei zuzenduta daude. Erabiltzaileak dira BALIABIDEAK eta horietan deskribatutako produktuen edozein aplikazio hautatzearen eta erabiltzearen erantzule bakarra. Erabiltzaileak onartzen du RPL indemnizatu eta kalterik gabe edukitzea BALIABIDEAK erabiltzearen ondorioz sortutako erantzukizun, kostu, kalte edo bestelako galera guztien aurrean. RPL-k erabiltzaileei BALIABIDEAK Raspberry Pi produktuekin batera soilik erabiltzeko baimena ematen die. Debekatuta dago BALIABIDEen beste erabilera oro. Ez zaio lizentziarik ematen beste RPL edo hirugarrenen jabetza intelektualeko eskubideei. ARRISKU HANDIKO JARDUERAK. Raspberry Pi produktuak ez dira diseinatu, fabrikatu edo erabili behar dituzten ingurune arriskutsuetan errendimendu segurua behar duten ingurune arriskutsuetan erabiltzeko, hala nola instalazio nuklearren, hegazkinen nabigazio- edo komunikazio-sistemen, aire-trafikoaren kontrola, arma-sistemen edo segurtasun-aplikazio kritikoetan (bizi-laguntza barne). sistemak eta beste gailu mediko batzuk), zeinetan produktuen hutsegiteek zuzenean heriotza, lesio pertsonalak edo kalte fisiko edo ingurumeneko kalte handiak eragin ditzakete (“Arrisku handiko jarduerak”). RPL-k bereziki uko egiten du Arrisku Handiko jardueretarako egokitasun-berme espresuki edo inplizituan eta ez du inolako erantzukizunik hartzen Raspberry Pi produktuak arrisku handiko jardueretan erabiltzeagatik edo sartzeagatik. Raspberry Pi produktuak RPLren Baldintza Estandarren arabera eskaintzen dira. RPL-ren BALIABIDEAK hornitzeak ez ditu RPLren Baldintza Estandarrak zabaltzen edo aldatzen, haietan adierazitako ukapenak eta bermeak barne, baina ez mugatzen.
Dokumentuaren bertsio-historia
Dokumentuaren esparrua
Dokumentu hau Raspberry Pi produktu hauei dagokie
Sarrera
KMS (Kernel Mode Setting) kontrolatzaile grafikoa sartzearekin batera, Raspberry Pi Ltd bideo-irteerako sistemaren firmware-kontroletik urruntzen ari da kode irekiko sistema grafiko batera. Hala ere, honek bere erronka sorta batekin etorri da. Dokumentu honek sistema berrira pasatzean sor daitezkeen arazoei aurre egiteko balio du. Liburu zuri honek suposatzen du Raspberry Pi Raspberry Pi OS exekutatzen ari dela, eta azken firmware eta nukleoekin guztiz eguneratuta dagoela.
Terminologia
DRM: Direct Rendering Manager, grafikoak prozesatzeko unitateekin (GPU) komunikatzeko erabiltzen den Linux nukleoaren azpisistema. FKMS eta KMS-ekin lankidetzan erabiltzen da.
DVI: HDMIren aurrekoa, baina audio gaitasunik gabe. HDMIrako DVI kableak eta egokigailuak eskuragarri daude Raspberry Pi gailu bat DVI hornitutako pantaila batera konektatzeko.
EDID: Pantaila hedatutako identifikazio-datuak. Bistaratzeko gailuentzako metadatu formatua bideo-iturburu bati beren gaitasunak deskribatzeko. EDID datu-egiturak fabrikatzailearen izena eta serie-zenbakia, produktu mota, pantaila fisikoaren tamaina eta pantailak onartzen dituen denborak barne hartzen ditu, hain erabilgarriak ez diren datu batzuekin batera. Pantaila batzuek EDID bloke akastunak izan ditzakete, eta horrek arazoak sor ditzake akats horiek pantaila-sistemak kudeatzen ez baditu.
FKMS (vc4-fkms-v3d): Kernel faltsuaren moduaren ezarpena. Firmwareak maila baxuko hardwarea kontrolatzen duen bitartean (adibidezample, High-Definition Multimedia Interface (HDMI) portuak, Display Serial Interface (DSI), etab.), Linux liburutegi estandarrak nukleoan bertan erabiltzen dira. FKMS lehenespenez erabiltzen da Buster-en, baina orain zaharkituta dago Bullseye-n KMS-ren alde.
HDMI: Definizio handiko Multimedia Interfazea audio/bideo interfaze jabeduna da konprimitu gabeko bideo-datuak eta konprimitutako edo konprimitu gabeko audio-datu digitalak transmititzeko.
HPD: Hotplug detektatu. Konektatutako pantaila-gailu batek dagoela adierazten duen hari fisikoa.
KMS: Kernel moduaren ezarpena; ikusi https://www.kernel.org/doc/html/latest/gpu/drm-kms.html xehetasun gehiagorako. Raspberry Pi-n, vc4-kms-v3d KMS inplementatzen duen kontrolatzailea da, eta askotan "KMS kontrolatzailea" deitzen zaio. Legacy graphics stack: Linux framebuffer kontrolatzaile batek erakusten duen VideoCore firmware blobean guztiz inplementatutako grafiko pila bat. Oinarrizko grafikoen pila Raspberry Pi Ltd gailu gehienetan erabili izan da duela gutxi arte; orain pixkanaka (F)KMS/DRM-rekin ordezkatzen ari da.
HDMI sistema eta kontrolatzaile grafikoak
Raspberry Pi gailuek HDMI estandarra erabiltzen dute, LCD monitore eta telebista modernoetan oso ohikoa dena, bideoaren irteerarako. Raspberry Pi 3-k (Raspberry Pi 3B+ barne) eta aurreko gailuek HDMI ataka bakarra dute, 1920 × 1200 @60Hz-ko irteerarako gai dena, tamaina osoko HDMI konektore bat erabiliz. Raspberry Pi 4-k bi mikro HDMI ataka ditu, eta bi ataketan 4K irteerarako gai da. Konfigurazioaren arabera, Raspberry Pi 0-ko HDMI 4 ataka 4kp60-rako gai da, baina 4K irteerako bi gailu erabiltzean bi gailuetan p30ra mugatzen zara. Software grafikoen pila, bertsioa edozein dela ere, erantsitako HDMI gailuei beren propietateei buruzko galdeketaz eta HDMI sistema behar bezala konfiguratzeaz arduratzen da. Legacy eta FKMS pilak biek firmwarea erabiltzen dute VideoCore grafikoen prozesadorean HDMI presentzia eta propietateak egiaztatzeko. Aitzitik, KMS-k guztiz irekiko kode bat erabiltzen du, ARM aldeko inplementazioa. Horrek esan nahi du bi sistemen kode-oinarriak guztiz desberdinak direla, eta, zenbait kasutan, horrek bi ikuspegien arteko portaera desberdinak eragin ditzake. HDMI eta DVI gailuak iturburuko gailuarekin identifikatzen dira EDID bloke izeneko metadatu baten bidez. I2C konexio baten bidez iturburuko gailuak irakurtzen du pantaila-gailutik, eta hori guztiz gardena da azken erabiltzailearentzat, grafikoen pilak egiten baitu. EDID blokeak informazio asko dauka, baina pantailak zein bereizmen onartzen dituen zehazteko erabiltzen da, beraz, Raspberry Pi bereizmen egokia ateratzeko konfigura daiteke.
Nola tratatzen den HDMI abiaraztean
Lehenengo piztean, Raspberry Pi-k s-kopuru bat igarotzen dutages, boot s izenez ezagutzen denatages:
- Lehenengo-stage, ROMan oinarritutako abio-kargatzaileak VideoCore GPU abiarazten du.
- Bigarren-stage bootloader (hau da bootcode.bin SD txartelean Raspberry Pi 4-ren aurreko gailuetan eta SPI EEPROM-en Raspberry Pi 4-n):
- Raspberry Pi 4-n, bigarrenatagAbio-kargagailuak HDMI sistema abiaraziko du, pantailari modu posibleei buruz galdetuko dio eta, ondoren, pantaila behar bezala konfiguratuko du. Une honetan pantaila oinarrizko diagnostiko datuak emateko erabiltzen da.
- Abio-kargagailuaren diagnostiko pantailak (07ko abenduaren 2022tik aurrera) erantsitako pantailen egoera bistaratuko du (Hotplug Detect (HPD) dagoen ala ez, eta pantailatik EDID bloke bat berreskuratu den).
- VideoCore firmwarea (start.elf) kargatu eta exekutatzen da. Honek HDMI sistemaren kontrola hartuko du, erantsitako edozein pantailetatik EDID blokea irakurriko du eta pantaila horietan ortzadarra erakutsiko du.
- Linux nukleoa abiarazten da
- Kernelaren abiaraztean, KMS-k HDMI sistemaren kontrola hartuko du firmwaretik. Berriro ere EDID blokea erantsitako edozein pantailetatik irakurtzen da eta informazio hori Linux kontsola eta mahaigaina konfiguratzeko erabiltzen da.
Arazo eta sintoma posibleak
KMSra mugitzean izandako hutsegite sintomarik ohikoena hasiera batean abiarazte ona da, abio-kargagailuaren pantaila eta, ondoren, ortzadarraren pantaila agertuko da, eta segundo batzuen buruan pantaila beltzen joango da eta ez pizten. Pantaila beltz bihurtzen den puntua da, hain zuzen ere, nukleoa abiarazteko prozesuan KMS kontrolatzaileak firmwaretik pantaila exekutatzen hartzen duenean. Momentu honetan Raspberry Pi exekutatzen ari da HDMI irteeran izan ezik, beraz, SSH gaituta badago, bide horretatik gailuan saioa hasi beharko zenuke. SD txartelaren sarbide-LED berdeak noizean behin distira egingo du normalean. Baliteke ere HDMI irteerarik ez ikustea; ez abiarazlearen pantailarik, eta ez ostadarraren pantailarik. Hau normalean hardware akats bati egotzi daiteke.
Matxura diagnostikatzea
Ez dago batere HDMI irteerarik
Baliteke gailua batere abiarazi ez izatea, baina hori liburu zuri honen eskumenetik kanpo dago. Behatutako portaera bistaratze-arazo bat dela suposatuz, abio-prozesuaren edozein zatitan HDMI irteerarik ez izatea hardware-akats baten ondorioz izan ohi da. Aukera posible batzuk daude:
- HDMI kable akastuna
- Saiatu kable berri bat. Kable batzuek, batez ere oso merkeak, baliteke beharrezkoak diren komunikazio-lerro guztiak ez edukitzea (adibidez, hotplug) Raspberry Pi-k pantaila ongi detektatzeko.
- HDMI ataka akastuna Raspberry Pi-n
- Raspberry Pi 4 erabiltzen ari bazara, probatu beste HDMI ataka.
- HDMI ataka akastuna monitorean
- Batzuetan monitore edo telebistako HDMI ataka higa daiteke. Saiatu beste ataka batekin gailuak badu.
- Oso gutxitan, pantaila-gailu batek EDID datuak bakarrik eman ditzake pizten denean edo ataka zuzena hautatzen denean. Egiaztatzeko, ziurtatu gailua piztuta dagoela eta sarrerako ataka zuzena hautatuta dagoela.
- Bistaratu gailua ez du hotplug detektatzeko lerroa baieztatzen
Hasierako irteera, ondoren pantaila beltzen da
Pantaila agertzen bada baina gero itzaltzen bada Linux kernelaren abiaraztean, arrazoi posible batzuk daude, eta hauek normalean pantaila gailutik EDID irakurtzeko arazo batekin erlazionatuta daude. Abio-sekuentziari buruz goiko atalean ikus daitekeenez, EDID-a hainbat puntutan irakurtzen da abio-prozesuan zehar, eta irakurketa horietako bakoitza software-pieza ezberdin batek egiten du. Azken irakurketa, KMS-k gain hartzen duenean, aldaketarik gabeko Linux kernel-kodearen bidez egiten da, eta honek ez ditu kudeatzen EDID formatu akastunak eta baita lehenagoko firmware softwarea ere. Horregatik, pantailak behar bezala funtzionatzeari utzi diezaioke KMS-k bere gain hartzen duenean. KMS-k EDID-a irakurtzen huts egiten duen ala ez baieztatzeko hainbat modu daude, eta hauetako bi hauek dira.
Egiaztatu abiarazlearen diagnostiko pantaila (Raspberry Pi 4 soilik)
OHARRA
Abio-kargagailuaren diagnostikoek abiarazle berri bat behar dute. Azken bertsiora egunera dezakezu argibide hauek erabiliz: https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#updating-the-bootloader Kendu SD txartela eta berrabiarazi Raspberry Pi. Sakatu ESC Instalatu OS pantailan, eta diagnostiko pantaila agertu beharko litzateke pantaila-gailuan. Pantailan pantailarekin hasten den lerro bat egon behar da: — adibidezample:
- bistaratzea: DISP0: HDMI HPD=1 EDID=ok #2 DISP1: HPD=0 EDID=none #0
Raspberry Pi 4 baten irteera honek erakusten du sistemak HDMI pantaila bat detektatu zuela HDMI 0 atakan, hotplug detekzioa baieztatzen dela eta EDID ondo irakurri zela. Ez da ezer aurkitu HDMI atakan 1.
Egiaztatu KMS sistemak EDID bat detektatu duen
Hau egiaztatzeko, Raspberry Pi gailuan SSH bidez saioa hasi beharko duzu beste ordenagailu batetik. SSH gaitu daiteke SD txartelaren irudia Raspberry Pi Imager-ekin sortzerakoan, Ezarpen aurreratuen aukerak erabiliz. Jada irudikatuta dagoen SD txartelean SSH gaitzea pixka bat zailagoa da: beste ordenagailu bat erabili beharko duzu bat gehitzeko. file ssh izeneko abioko partizioari. Ordeztu SD txartela jatorrizko Raspberry Pi-n eta piztu ezazu. Honek SSH gaitu beharko luke, DHCP-k esleitutako IP helbide batekin. Saioa hasi ondoren, idatzi honako hau terminaleko gonbitean detektaturiko edozein EDIDren edukia bistaratzeko (baliteke HDMI-A-1 HDMI-A-2ra aldatu behar izatea pantaila-gailua konektatuta dagoen Raspberry Pi-ko HDMI atakaren arabera. to): cat /sys/class/drm/card?-HDMI-A-1/edid Card?-HDMI-A-1 edo antzekoa izeneko karpetarik ez badago, litekeena da pantailatik EDIDrik ez irakurtzea. gailua.
OHARRA
EDID arrakastaz irakurtzen den kasuan, birtual erabilgarria dago file karpeta berean, modu izenekoak, bistaratzen direnean EDID-ek gailuak onartzen dituen modu posible guztiak erakusten dituena.
Aringarriak
Hotplug detektatzeko hutsegitea Firmwareak eta KMS-ek ez badute erantsitako monitorerik aurkitzen, hotplug detektatzeko hutsegite bat izan daiteke, hau da, Raspberry Pi-k ez daki gailu bat konektatu denik, beraz, ez du EDIDrik egiaztatzen. Hau kable txar batek edo hotplug behar bezala ezartzen ez duen pantaila-gailu batek eragin dezake. Hotplug detektatzeko behartu dezakezu nukleoaren komando-lerroa aldatuz file (cmdline.txt) Raspberry Pi OS SD txartelaren abioko partizioan gordetzen dena. Hau edita dezakezu file beste sistema batean, nahi duzun editorea erabiliz. Gehitu honako hau cmdline.txt-aren amaieran file: bideoa=HDMI-A-1:1280×720@60D Bigarren HDMI ataka erabiltzen ari bazara, ordezkatu HDMI-A-1 HDMI-A-2-rekin. Beste bereizmen eta fotograma-tasa bat ere zehaztu dezakezu, baina ziurtatu pantaila gailuak onartzen dituenak aukeratzen dituzula.
OHARRA
Bideorako nukleoaren komando-lerroko ezarpenei buruzko dokumentazioa hemen aurki daiteke: https://www.kernel.org/doc/Documentation/fb/modedb.txt
KONTUZ
Grafiko pila zaharrenek config.txt sarrera bat erabiltzea onartzen zuten hotplug detektatzeko, baina idazteko unean honek ez du KMS-rekin funtzionatzen. Baliteke etorkizuneko firmware-argitalpenetan onartzea. Config.txt sarrera hdmi_force_hotplug da, eta hotplug-ak aplikatzen dion HDMI ataka zehatza zehaztu dezakezu hdmi_force_hotplug:0=1 edo hdmi_force_hotplug:1=1 erabiliz. Kontuan izan KMS-ren nomenklaturak HDMI atakak 1 eta 2 gisa aipatzen dituela, Raspberry Pi-k 0 eta 1 erabiltzen dituen bitartean.
EDID arazoak
Bistaratzeko gailu gutxi batzuk ezin dira EDID bat itzultzeko itzalita badago edo AV sarrera okerra hautatzen denean. Arazo bat izan daiteke Raspberry Pi eta pantaila-gailuak botere-zerrenda berean daudenean eta Raspberry Pi gailua pantaila baino azkarrago abiarazten denean. Horrelako gailuekin, baliteke EDID bat eskuz eman behar izatea. Are ohiz kanpokoa denez, pantaila-gailu batzuek gaizki formateatutako EDID blokeak dituzte eta KMS EDID sistemak analizatu ezin dituenak. Egoera horietan, baliteke EDID bat irakurtzea antzeko bereizmena duen gailu batetik eta hori erabiltzea. Edozein kasutan, hurrengo argibideek EDID bat pantaila-gailu batetik nola irakurri eta KMS konfiguratu behar den zehazten dute, KMS-k gailua zuzenean galdetzen saiatu beharrean.
EDID bat kopiatzea a file
bat sortzea file EDID metadatuak hutsetik edukitzea normalean ez da bideragarria, eta lehendik dagoen bat erabiltzea askoz errazagoa da. Oro har, posible da EDID bat bistaratzeko gailu batetik eskuratzea eta Raspberry Pi-ren SD txartelean gordetzea, KMS-k erabil dezan, pantaila gailutik EDID bat eskuratu beharrean. Hemen aukerarik errazena pantaila gailua martxan dagoela eta AV sarrera egokian dagoela ziurtatzea da, eta Raspberry Pi-k HDMI sistema behar bezala abiarazi duela. Terminaletik, orain EDID a kopiatu dezakezu file komando honekin: sudo cp /sys/class/drm/card?-HDMI-A-1/edid /lib/firmware/myedid.dat Arrazoiren batengatik EDID ez badago, gailua abiarazi dezakezu -KMS modua mahaigainean edo kontsolan abiaraztean lortzen duena, gero kopiatu firmwareak (espero) behar bezala irakurriko duen EDID batera. file.
- Abiarazi ondare grafikoen modura.
- Editatu config.txt abioko partizioan, ziurtatu zure editorea sudo erabiliz exekutatzen duzula, eta aldatu dtoverlay=vc4-kms-v3d dioen lerroa #dtoverlay=vc4-kms-v3d-ra.
- Berrabiarazi.
- Mahaigaineko edo saioa hasteko kontsola agertu beharko litzateke orain.
- Terminala erabiliz, kopiatu EDID erantsitako pantaila-gailutik a file komando honekin:
- tvservice -d myedid.dat sudo mv myedid.dat /lib/firmware/
a erabiliz file-oinarritutako EDID bistaratzeko gailua galdekatu beharrean Editatu /boot/cmdline.txt, ziurtatu zure editorea sudo erabiliz exekutatzen duzula, eta gehitu honako hau nukleoko komando-lerroan: drm.edid_firmware=myedid.dat EDID-a aplika dezakezu. HDMI ataka zehatza honela: drm.edid_firmware=HDMI-A-1:myedid.dat Beharrezkoa bada, berriro abiarazi KMS moduan, honako hau eginez:
- Editatu config.txt abioko partizioan, ziurtatu zure editorea sudo erabiliz exekutatzen duzula eta aldatu #dtoverlay=vc4-kms-v3d dioen lerroa dtoverlay=vc4-kms-v3d-ra.
- Berrabiarazi.
OHARRA
a erabiltzen baduzu file-oinarritutako EDID, baina oraindik hotplug-ekin arazoak badituzu, hotplug-en hautematea behartu dezakezu nukleoaren komando-lerroari honako hau gehituz: video=HDMI-A-1:D.
Dokumentuak / Baliabideak
![]() |
RaspberryPi KMS HDMI irteerako grafikoen kontrolatzailea [pdfErabiltzailearen eskuliburua KMS, HDMI irteerako grafikoen kontrolatzailea, KMS HDMI irteera, grafikoen kontrolatzailea, KMS HDMI irteerako grafikoen kontrolatzailea, kontrolatzailea |