RaspberryPi-LOGO

RaspberryPi KMS HDMI väljundgraafika draiver

RaspberryPi-KMS-HDMI-väljund-graafika-draiver-toode-IMG

Kolofon

2020–2023 Raspberry Pi Ltd (endine Raspberry Pi (Trading) Ltd.) See dokumentatsioon on litsentsitud Creative Commonsi Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0) litsentsi alusel. ehitamise kuupäev: 2023-02-10 ehitusversioon: githash: c65fe9c-clean

Juriidiline vastutusest loobumise teatis

RASPBERRY PI TOODETE (SH ANDMELEHED) TEHNILISI JA USALDUSVÕIME ANDMEID, MIS ON AEG-AJALT MUUDATUD ("RESSURSSID"), ESITAB RASPBERRY PI LTD ("RPL") "NAGU ON" NING MIS TAHES VÄLJESTUNUD, VÄLJASTATUD VÕI KAUDSETE ANDMED KAUDSED GARANTIID KAUBANDUSVÕIME JA KONKREETSEKS EESMÄRGIKS SOBIVUSE KOHTA VÄLJA TAGATAKSE. KOHALDATAVATE SEADUSTEGA LUBATUD MAKSIMAALSES MÄÄRAS EI VASTUTA RPL MITTE MITTE JUHUL MISGI OTSESE, KAUDSE, JUHUSLIKU, ERI-, EESMÄRGISTE VÕI JÄRGNIKKUHJUDE EEST (SEALHULGAS, KUID MITTE PIIRATUD TEENUSTE VÕI ANDMETE KASUTAMISEGA; VÕI KASUM; VÕI ÄRITEGEVUSE KATKESTUS), SIISKI PÕHJUSLIK JA MIS TAHES VASTUTUSE TEOORIA, KAS LEPINGU, RANGE VASTUTUS VÕI DEKETTLIKKUS (KAASA arvatud HOOLETUS VÕI MUUAL MUU), MIS TEKIB MIS TAHES MEIE KASUTAMISE KOHTA. SELLISTE KAHJUSTUSTE KOHTA. RPL jätab endale õiguse teha RESSURSSE või neis kirjeldatud tooteid mis tahes täiendusi, täiustusi, parandusi või muid muudatusi igal ajal ja ilma täiendava etteteatamata. RESSURSID on mõeldud asjatundlikele kasutajatele, kellel on sobival tasemel disainialased teadmised. Kasutajad vastutavad ainuisikuliselt oma valiku ja RESSURSIDE kasutamise ning neis kirjeldatud toodete kasutamise eest. Kasutaja nõustub hüvitama ja kaitsma RPL-i kõigi kohustuste, kulude, kahjude või muude kahjude osas, mis tulenevad nende RESSURSIDE kasutamisest. RPL annab kasutajatele loa kasutada RESSURSSE ainult koos Raspberry Pi toodetega. Igasugune muu RESSURSSI kasutamine on keelatud. Litsentsi ei anta ühelegi teisele VÕTA-le ega muule kolmanda osapoole intellektuaalomandi õigusele. KÕRGE RISKIGA TEGEVUSED. Raspberry Pi tooted ei ole kavandatud, toodetud ega ette nähtud kasutamiseks ohtlikes keskkondades, mis nõuavad tõrkeohutut toimimist, näiteks tuumarajatiste, õhusõiduki navigatsiooni- või sidesüsteemide, lennujuhtimise, relvasüsteemide või ohutuse seisukohalt kriitiliste rakenduste (sealhulgas elu toetamise) töös. süsteemid ja muud meditsiiniseadmed), mille puhul toodete rike võib põhjustada otseselt surma, kehavigastusi või raskeid füüsilisi või keskkonnakahjustusi (“kõrge riskiga tegevused”). RPL loobub konkreetselt mis tahes otsesest või kaudsest garantiist kõrge riskiga tegevusteks sobivuse kohta ega võta endale vastutust Raspberry Pi toodete kasutamise või kaasamise eest kõrge riskiga tegevustesse. Raspberry Pi tooteid pakutakse RPL-i tüüptingimuste alusel. RPL-i RESSURSIDE pakkumine ei laienda ega muuda muul viisil RPL-i tüüptingimusi, sealhulgas, kuid mitte ainult, neis väljendatud lahtiütlusi ja garantiisid.

Dokumendi versiooniajalugu

RaspberryPi-KMS-HDMI-väljund-graafika-draiver-JOON-1

Dokumendi ulatus

See dokument kehtib järgmiste Raspberry Pi toodete kohta

RaspberryPi-KMS-HDMI-väljund-graafika-draiver-JOON-2

Sissejuhatus

KMS-i (Kernel Mode Setting) graafikadraiveri kasutuselevõtuga eemaldub Raspberry Pi Ltd videoväljundsüsteemi pärand püsivara juhtimisest ja liigub avatud lähtekoodiga graafikasüsteemi poole. Sellega on aga kaasnenud omad väljakutsed. Selle dokumendi eesmärk on aidata lahendada probleeme, mis võivad tekkida uuele süsteemile üleminekul. Selles juhendis eeldatakse, et Raspberry Pi kasutab Raspberry Pi OS-i ning on uusima püsivara ja tuumadega täielikult kursis.

Terminoloogia

DRM: Direct Rendering Manager, Linuxi kerneli alamsüsteem, mida kasutatakse graafikaprotsessoritega (GPU-dega) suhtlemiseks. Kasutatakse koostöös FKMS-i ja KMS-iga.
DVI: HDMI eelkäija, kuid ilma helivõimalusteta. Raspberry Pi seadme ühendamiseks DVI-ga varustatud ekraaniga on saadaval HDMI-DVI-kaablid ja adapterid.
EDID: Laiendatud kuvari identifitseerimisandmed. Kuvaseadmete metaandmete vorming, mis kirjeldab nende võimalusi videoallikale. EDID andmestruktuur sisaldab tootja nime ja seerianumbrit, toote tüüpi, füüsilist ekraani suurust ja ekraani toetatud ajastusi ning mõningaid vähem kasulikke andmeid. Mõnel kuvaril võivad olla defektsed EDID-plokid, mis võivad põhjustada probleeme, kui kuvasüsteem neid defekte ei käsitle.
FKMS (vc4-fkms-v3d): Fake Kernel Mode Setting. Kuigi püsivara juhib endiselt madala taseme riistvara (ntample, kõrglahutusega multimeediumiliidese (HDMI) pordid, kuvajadaliides (DSI) jne), tuumas endas kasutatakse standardseid Linuxi teeke. FKMS-i kasutatakse Busteris vaikimisi, kuid nüüd on see Bullseye KMS-i kasuks aegunud.
HDMI: Kõrglahutusega multimeediumiliides on patenteeritud audio/video liides tihendamata videoandmete ja tihendatud või tihendamata digitaalse heliandmete edastamiseks.
HPD: Kuumpistiku tuvastamine. Füüsiline juhe, mida ühendatud kuvaseade kinnitab selle olemasolu näitamiseks.
KMS: Kerneli režiimi seadistus; vaata https://www.kernel.org/doc/html/latest/gpu/drm-kms.html lisateabe saamiseks. Raspberry Pi puhul on vc4-kms-v3d draiver, mis rakendab KMS-i ja mida sageli nimetatakse "KMS-i draiveriks". Pärandgraafikavirn: graafikapinn, mis on täielikult rakendatud VideoCore'i püsivara blobis, mille paljastab Linuxi kaadripuhvri draiver. Pärandgraafikapakki on kuni viimase ajani kasutatud enamikus Raspberry Pi Ltd seadmetes; see on nüüd järk-järgult asendatud (F)KMS/DRM-iga.

HDMI-süsteem ja graafikadraiverid

Raspberry Pi seadmed kasutavad videoväljundiks HDMI-standardit, mis on tänapäevastel LCD-ekraanidel ja telerites väga levinud. Raspberry Pi 3 (sh Raspberry Pi 3B+) ja varasematel seadmetel on üks HDMI-port, mis on täissuuruses HDMI-pistiku abil võimeline 1920 × 1200 @60Hz väljundiks. Raspberry Pi 4-l on kaks mikro-HDMI-porti ja see on võimeline 4K-väljundiks mõlemas pordis. Olenevalt seadistusest on Raspberry Pi 0 HDMI 4 port võimeline kuni 4 kp60, kuid kahe 4K väljundseadme kasutamisel piirdub mõlema seadme p30. Olenemata versioonist vastutab graafikatarkvara pinu ühendatud HDMI-seadmete omaduste järelepärimise ja HDMI-süsteemi asjakohase seadistamise eest. Nii pärand- kui ka FKMS-virnad kasutavad VideoCore'i graafikaprotsessoris püsivara, et kontrollida HDMI olemasolu ja atribuute. Seevastu KMS kasutab täielikult avatud lähtekoodiga ARM-poolset rakendust. See tähendab, et kahe süsteemi koodibaasid on täiesti erinevad ja mõnel juhul võib see kahe lähenemisviisi vahel põhjustada erinevat käitumist. HDMI- ja DVI-seadmed tuvastavad end lähteseadme jaoks metaandmete osa, mida nimetatakse EDID-plokiks, abil. Lähteseade loeb seda kuvaseadmest I2C-ühenduse kaudu ja see on lõppkasutajale täiesti läbipaistev, kuna seda teeb graafikapinn. EDID plokk sisaldab palju teavet, kuid seda kasutatakse peamiselt selleks, et määrata, milliseid eraldusvõimeid ekraan toetab, nii et Raspberry Pi saab seadistada sobivat eraldusvõimet väljastama.

Kuidas HDMI-d alglaadimise ajal käsitletakse

Esmakordsel sisselülitamisel läbib Raspberry Pi mitmeid stages, tuntud kui boot stages:

  1. Esimesed-stage, ROM-põhine alglaadur käivitab VideoCore GPU.
  2. Teised-stage alglaadur (see on bootcode.bin SD-kaardil Raspberry Pi 4-le eelnevates seadmetes ja SPI EEPROM-is Raspberry Pi 4 puhul):
    1. Raspberry Pi 4-l on teine-stagAlglaadur käivitab HDMI-süsteemi, uurib ekraanilt võimalikke režiime ja seadistab seejärel ekraani sobivalt. Sel hetkel kasutatakse ekraani põhiliste diagnostikaandmete kuvamiseks.
    2. Alglaaduri diagnostikakuva (alates 07. detsembrist 2022) kuvab kõigi ühendatud kuvarite olekut (kas Hotplug Detect (HPD) on olemas ja kas kuvarilt taastati EDID-plokk).
  3. VideoCore'i püsivara (start.elf) laaditakse ja käivitatakse. See võtab HDMI-süsteemi juhtimise üle, loeb EDID-ploki kõigilt ühendatud ekraanidelt ja kuvab nendel kuvaritel vikerkaareekraani.
  4. Linuxi kernel käivitub
    1. Kerneli alglaadimise ajal võtab KMS püsivara HDMI-süsteemi juhtimise üle. Taaskord loetakse EDID-plokki kõikidelt lisatud kuvaritelt ja seda teavet kasutatakse Linuxi konsooli ja töölaua seadistamiseks.

Võimalikud probleemid ja sümptomid

Kõige tavalisem tõrkesümptom, mida KMS-ile üleminekul kogetakse, on algselt hea alglaadimine, kus kuvatakse alglaaduri ekraan ja seejärel vikerkaareekraan, millele järgneb mõne sekundi pärast ekraan mustaks ja ei lülitu uuesti sisse. Punkt, mil ekraan muutub mustaks, on tegelikult punkt tuuma alglaadimisprotsessi ajal, mil KMS-draiver võtab püsivara ekraani käitamise üle. Raspberry Pi töötab praegu kõigis aspektides, välja arvatud HDMI-väljund, nii et kui SSH on lubatud, peaksite saama selle marsruudi kaudu seadmesse sisse logida. Roheline SD-kaardi juurdepääsu LED-tuli vilgub tavaliselt aeg-ajalt. Samuti on võimalik, et te ei näe HDMI-väljundit üldse; pole alglaaduri ekraani ega vikerkaareekraani. Tavaliselt võib selle põhjuseks olla riistvararikk.

Vea diagnoosimine

HDMI väljund puudub üldse
Võimalik, et seade pole üldse käivitunud, kuid see ei kuulu käesoleva valge raamatu reguleerimisalasse. Eeldades, et täheldatud käitumine on kuvaprobleem, on HDMI-väljundi puudumine alglaadimisprotsessi mis tahes osas tavaliselt tingitud riistvararikkest. Võimalikke valikuid on mitu:

  • Defektne HDMI-kaabel
  • Proovige uut kaablit. Mõned kaablid, eriti väga odavad, ei pruugi sisaldada kõiki vajalikke sideliine (nt hotplug), et Raspberry Pi saaks ekraani edukalt tuvastada.
  • Raspberry Pi defektne HDMI-port
  • Kui kasutate Raspberry Pi 4, proovige teist HDMI-porti.
  • Defektne HDMI-port monitoril
  • Mõnikord võib monitori või teleri HDMI-port kuluda. Proovige teist porti, kui seadmel see on.
  • Harva võib kuvaseade edastada EDID-andmeid ainult siis, kui see on sisse lülitatud või kui on valitud õige port. Kontrollimiseks veenduge, et seade on sisse lülitatud ja valitud on õige sisendport.
  • Kuvaseade, mis ei kinnita kuumapistiku tuvastamise joont

Esialgne väljund, seejärel läheb ekraan mustaks
Kui ekraan ilmub, kuid kustub Linuxi kerneli alglaadimise ajal, on mitmeid võimalikke põhjuseid ja need on tavaliselt seotud kuvaseadmest EDID lugemise probleemiga. Nagu on näha ülaltoodud alglaadimisjärjestust käsitlevast jaotisest, loetakse EDID-d alglaadimisprotsessi ajal mitmes erinevas punktis ja igaüks neist lugemistest toimub erineva tarkvara abil. Lõpliku lugemise, kui KMS võtab üle, teostab muutmata ülesvoolu Linuxi kerneli kood ja see ei käsitle defektseid EDID-vorminguid ega varasemat püsivaratarkvara. Seetõttu võib ekraan lakata korralikult töötamast, kui KMS võtab üle. On mitmeid viise, kuidas kontrollida, kas KMS ei suuda EDID-d lugeda, ja kaks neist on järgmised.
Kontrollige alglaaduri diagnostikakuva (ainult Raspberry Pi 4)

MÄRKUS
Alglaaduri diagnostika nõuab hiljutist alglaadurit. Saate uuendada uusimale versioonile, järgides neid juhiseid. https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#updating-the-bootloader Eemaldage SD-kaart ja taaskäivitage Raspberry Pi. Vajutage OS-i installi ekraanil ESC ja kuvaseadmele peaks ilmuma diagnostikakuva. Ekraanil peaks olema rida, mis algab sõnaga display: — ntample:

  • kuva: DISP0: HDMI HPD=1 EDID=ok #2 DISP1: HPD=0 EDID=puudub #0

See Raspberry Pi 4 väljund näitab, et süsteem tuvastas HDMI-pordis 0 HDMI-kuva, aktiveeritakse kuumpistiku tuvastamine ja EDID loeti OK. HDMI-pordist 1 ei leitud midagi.

Kontrollige, kas KMS-süsteem tuvastas EDID-i
Selle kontrollimiseks peate teisest arvutist SSH kaudu Raspberry Pi seadmesse sisse logima. SSH-d saab lubada SD-kaardi pildi loomisel Raspberry Pi Imageriga, kasutades suvandeid Advanced Settings. SSH lubamine SD-kaardil, mis on juba pildistatud, on veidi keerulisem: peate lisamiseks kasutama teist arvutit. file nimega ssh alglaadimise partitsioonile. Asendage SD-kaart originaalis Raspberry Pi ja lülitage see sisse. See peaks võimaldama SSH-d, mille IP-aadress eraldab DHCP. Pärast sisselogimist tippige terminali viibale järgmine, et kuvada tuvastatud EDID sisu (võib-olla peate HDMI-A-1 muutma HDMI-A-2-ks, olenevalt sellest, millise Raspberry Pi HDMI-pordiga kuvaseade on ühendatud to): cat /sys/class/drm/card?-HDMI-A-1/edid Kui kaardi nimega kaustu pole?-HDMI-A-1 vms, siis tõenäoliselt ei saa ekraanilt EDID-d lugeda seade.

MÄRKUS
Kui EDID loetakse edukalt, on olemas kasulik virtuaalne file samas kaustas, mida nimetatakse režiimideks, mis kuvamisel näitab kõiki võimalikke režiime, mida EDID väidab, et seade toetab.

Leevendused

Kuumpistiku tuvastamise tõrge Kui nii püsivara kui ka KMS ei leia ühendatud monitori, võib see olla kuumpistiku tuvastamise tõrge – st Raspberry Pi ei tea, et seade on ühendatud, mistõttu ta ei kontrolli EDID-d. Selle põhjuseks võib olla halb kaabel või kuvaseade, mis ei tööta korralikult. Hotplugi tuvastamise saate sundida kerneli käsurida muutes file (cmdline.txt), mis on salvestatud Raspberry Pi OS SD-kaardi alglaadimissektsiooni. Saate seda redigeerida file teises süsteemis, kasutades soovitud redaktorit. Lisage faili cmdline.txt lõppu järgmine tekst file: video=HDMI-A-1:1280×720@60D Kui kasutate teist HDMI-porti, asendage HDMI-A-1 HDMI-A-2-ga. Saate määrata ka erineva eraldusvõime ja kaadrisageduse, kuid veenduge, et valite need, mida kuvaseade toetab.

MÄRKUS
Tuuma käsurea seadete dokumentatsiooni video jaoks leiate siit: https://www.kernel.org/doc/Documentation/fb/modedb.txt

HOIATUS
Vanemad graafikavirnad toetasid hotplug-tuvastuse määramiseks kirje config.txt kasutamist, kuid kirjutamise ajal see KMS-iga ei toimi. Seda võidakse toetada tulevastes püsivara versioonides. Config.txt kirje on hdmi_force_hotplug ja saate määrata konkreetse HDMI-pordi, mida hotplug rakendab, kasutades kas hdmi_force_hotplug:0=1 või hdmi_force_hotplug:1=1. Pange tähele, et KMS-i nomenklatuur viitab HDMI-portidele kui 1 ja 2, samas kui Raspberry Pi kasutab 0 ja 1.

EDID probleemid
Vähem osa kuvaseadmeid ei suuda EDID-d tagastada, kui need on välja lülitatud või kui on valitud vale AV-sisend. See võib olla probleem, kui Raspberry Pi ja kuvaseadmed on samal vooluvõrgul ja Raspberry Pi seade käivitub ekraanist kiiremini. Selliste seadmete puhul peate võib-olla sisestama EDID käsitsi. Veelgi ebatavalisem on see, et mõnel kuvaseadmel on EDID-plokid, mis on halvasti vormindatud ja mida KMS EDID-süsteem ei saa sõeluda. Sellistel juhtudel võib olla võimalik lugeda EDID-d sarnase eraldusvõimega seadmest ja seda kasutada. Mõlemal juhul kirjeldatakse järgmistes juhistes, kuidas lugeda kuvaseadmest EDID-d ja konfigureerida KMS seda kasutama, selle asemel, et KMS-i seadet otse üle kuulata.

EDID kopeerimine a file
Loomine a file EDID metaandmete nullist lisamine ei ole tavaliselt teostatav ja olemasoleva kasutamine on palju lihtsam. Üldiselt on võimalik hankida kuvaseadmest EDID ja salvestada see Raspberry Pi SD-kaardile, et KMS saaks seda kuvaseadmest EDID hankimise asemel kasutada. Lihtsaim võimalus on siin veenduda, et kuvaseade on töökorras ja õiges AV-sisendis ning et Raspberry Pi on HDMI-süsteemi õigesti käivitanud. Nüüd saate terminalist EDID-i kopeerida a-sse file järgmise käsuga: sudo cp /sys/class/drm/card?-HDMI-A-1/edid /lib/firmware/myedid.dat Kui EDID-d mingil põhjusel pole, saate seadme käivitada mitte -KMS-režiim, mille käivitamine õnnestub töölauale või konsooli, seejärel kopeerige EDID, mille püsivara (loodetavasti) edukalt loeb. file.

  1. Käivitage pärandgraafikarežiimi.
    1. Redigeerige faili config.txt alglaadimissektsioonis, käivitades redigeerija sudo abil ja muutke rida dtoverlay=vc4-kms-v3d väärtuseks #dtoverlay=vc4-kms-v3d.
    2. Taaskäivitage.
  2. Nüüd peaks ilmuma töölaud või sisselogimiskonsool.
    1. Kopeerige terminali abil EDID ühendatud kuvaseadmest a file järgmise käsuga:
  • tvservice -d myedid.dat sudo mv myedid.dat /lib/firmware/

Kasutades a file-põhine EDID kuvaseadme küsitlemise asemel Redigeerige faili /boot/cmdline.txt, käivitage redaktor kindlasti sudo abil ja lisage kerneli käsureale järgmine tekst: drm.edid_firmware=myedid.dat Saate EDID-d rakendada konkreetne HDMI-port järgmiselt: drm.edid_firmware=HDMI-A-1:myedid.dat Vajadusel taaskäivitage KMS-režiimi, tehes järgmist.

  1. Redigeerige faili config.txt alglaadimissektsioonis, käivitades redaktori sudo abil ja muutke rida, mis ütleb #dtoverlay=vc4-kms-v3d, väärtuseks dtoverlay=vc4-kms-v3d.
  2. Taaskäivitage.

MÄRKUS
Kui kasutate a file-põhine EDID, kuid teil on endiselt hotplugiga probleeme, saate hotplugi tuvastamise sundida, lisades kerneli käsureale järgmise: video=HDMI-A-1:D.

Dokumendid / Ressursid

RaspberryPi KMS HDMI väljundgraafika draiver [pdfKasutusjuhend
KMS, HDMI väljundi graafikadraiver, KMS HDMI väljund, graafikadraiver, KMS HDMI väljundi graafikadraiver, draiver

Viited

Jäta kommentaar

Teie e-posti aadressi ei avaldata. Kohustuslikud väljad on märgitud *