RaspberryPi-LOGO

RaspberryPi KMS HDMI úttak grafík bílstjóri

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

Colophon

2020-2023 Raspberry Pi Ltd (áður Raspberry Pi (Trading) Ltd.) Þessi skjöl eru með leyfi samkvæmt Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0) leyfi. byggingardagur: 2023-02-10 byggingarútgáfa: githash: c65fe9c-clean

Lagalegur fyrirvari

TÆKNI- OG Áreiðanleikaupplýsingar fyrir RASPBERRY PI VÖRUR (ÞAR á meðal gagnablöð) EINS OG SEM Breytt er af og til („Auðlindir“) ER LEYFIÐ AF RASPBERRY PI LTD. FYRIR ER FYRIR ÓBEINU ÁBYRGÐ UM SÖLJANNI OG HÆFNI Í SÉRSTÖKNUM TILGANGI. AÐ ÞVÍ HÁMARKI SEM LEYFIÐ SAMKVÆMT LÖGUM ER LEYFIÐ SKAL RPL Í ENGU TILfelli BÆRA ÁBYRGÐ Á NEIGU BEINUM, ÓBEINU, TILVALIÐ, SÉRSTAKUM, TIL fyrirmyndar EÐA AFLEIDANDI SKAÐA (ÞARM. , EÐA HAGNAÐI; EÐA VIÐSKIPTARÖF) HVERNIG SEM ORÐAÐ er OG Á HVERJAR KENNINGU UM ÁBYRGÐ, HVORÐ sem það er í samningi, fullri ábyrgð, EÐA skaðabótaábyrgð (ÞÁ MEÐ GÁRÆKI EÐA ANNARS) SEM SEM KOMA Á EINHVER HEITT ÚT AÐ NOTKUN, EVEN SEM ER KOMIÐ AF NOTKUNNI. AF SVONA SKAÐA. RPL áskilur sér rétt til að gera allar endurbætur, endurbætur, leiðréttingar eða aðrar breytingar á AUÐLINDunum eða hvers kyns vörum sem lýst er í þeim hvenær sem er og án frekari fyrirvara. Auðlindirnar eru ætlaðar hæfum notendum með viðeigandi hönnunarþekkingu. Notendur eru einir ábyrgir fyrir vali sínu og notkun á auðlindunum og hvers kyns notkun á þeim vörum sem lýst er í þeim. Notandi samþykkir að skaða og halda RPL skaðlausum gegn allri ábyrgð, kostnaði, tjóni eða öðru tjóni sem stafar af notkun þeirra á RESOURCES.RPL veitir notendum leyfi til að nota RESOURCES eingöngu í tengslum við Raspberry Pi vörurnar. Öll önnur notkun á auðlindunum er bönnuð. Ekkert leyfi er veitt öðrum RPL eða öðrum hugverkarétti þriðja aðila. HÁHÆTTUSTARF. Raspberry Pi vörur eru ekki hannaðar, framleiddar eða ætlaðar til notkunar í hættulegu umhverfi sem krefst bilunaröryggis, svo sem við rekstur kjarnorkumannvirkja, leiðsögu- eða fjarskiptakerfa loftfara, flugumferðarstjórnar, vopnakerfis eða öryggis mikilvægra forrita (þ. kerfi og önnur lækningatæki), þar sem bilun vörunnar gæti leitt beint til dauða, líkamstjóns eða alvarlegs líkamlegs eða umhverfistjóns („Háhættustarfsemi“). RPL afsalar sér sérstaklega allri skýrri eða óbeinri ábyrgð á hæfni fyrir áhættustarfsemi og tekur enga ábyrgð á notkun eða inniföldum Raspberry Pi vörum í áhættustarfsemi. Raspberry Pi vörur eru veittar með fyrirvara um staðlaða skilmála RPL. Úthlutun RPL á auðlindunum víkkar ekki út eða breytir á annan hátt staðlaða skilmála RPL, þ.mt en ekki takmarkað við fyrirvarana og ábyrgðina sem fram koma í þeim.

Útgáfusaga skjalsins

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

Gildissvið skjalsins

Þetta skjal á við um eftirfarandi Raspberry Pi vörur

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

Inngangur

Með kynningu á KMS (Kernel Mode Setting) grafíkreklanum er Raspberry Pi Ltd að hverfa frá eldri fastbúnaðarstýringu á myndbandsúttakskerfinu og í átt að opnara grafíkkerfi. Hins vegar hefur þetta komið með sínar eigin áskoranir. Þessu skjali er ætlað að aðstoða við öll vandamál sem gætu komið upp þegar farið er yfir í nýja kerfið. Þessi hvítbók gerir ráð fyrir að Raspberry Pi sé að keyra Raspberry Pi OS og sé að fullu uppfært með nýjustu vélbúnaðar og kjarna.

Hugtök

DRM: Direct Rendering Manager, undirkerfi Linux kjarnans sem notað er til að hafa samskipti við grafíkvinnslueiningar (GPU). Notað í samstarfi við FKMS og KMS.
DVI: Forveri HDMI, en án hljóðmöguleika. Hægt er að fá HDMI til DVI snúrur og millistykki til að tengja Raspberry Pi tæki við DVI-útbúinn skjá.
EDID: Útvíkkuð auðkenningargögn á skjá. Lýsigagnasnið fyrir skjátæki til að lýsa getu þeirra við myndbandsuppsprettu. EDID gagnauppbyggingin inniheldur framleiðanda og raðnúmer, vörutegund, líkamlega skjástærð og tímasetningar sem skjárinn styður, ásamt nokkrum minna gagnlegum gögnum. Sumir skjáir geta verið með gallaðar EDID blokkir, sem geta valdið vandræðum ef þessir gallar eru ekki meðhöndlaðir af skjákerfinu.
FKMS (vc4-fkms-v3d): Fölsuð kjarnastilling. Þó að fastbúnaðurinn stýrir enn vélbúnaði á lágu stigi (tdample, High-Definition Multimedia Interface (HDMI) tengin, Display Serial Interface (DSI), osfrv.), venjuleg Linux bókasöfn eru notuð í kjarnanum sjálfum. FKMS er sjálfgefið notað í Buster, en er nú úrelt í þágu KMS í Bullseye.
HDMI: Háskerpu margmiðlunarviðmót er sérstakt hljóð-/myndviðmót til að senda óþjöppuð myndbandsgögn og þjöppuð eða óþjöppuð stafræn hljóðgögn.
HPD: Hotplug skynjari. Efnislegur vír sem er fullyrt af tengdu skjátæki til að sýna að hann sé til staðar.
KMS: Stilling kjarnahams; sjáðu https://www.kernel.org/doc/html/latest/gpu/drm-kms.html fyrir frekari upplýsingar. Á Raspberry Pi er vc4-kms-v3d ökumaður sem útfærir KMS og er oft nefndur „KMS ökumaðurinn“. Eldri grafíkstafla: Grafíkstafla sem er að öllu leyti útfærður í VideoCore fastbúnaðarblobbi sem er afhjúpaður af Linux framebuffer rekla. Eldri grafíkstafla hefur verið notaður í meirihluta Raspberry Pi Ltd tækja þar til nýlega; það er nú smám saman skipt út fyrir (F)KMS/DRM.

HDMI kerfið og grafík reklarnir

Raspberry Pi tæki nota HDMI staðalinn, sem er mjög algengur á nútíma LCD skjáum og sjónvörpum, fyrir myndbandsúttak. Raspberry Pi 3 (þar á meðal Raspberry Pi 3B+) og eldri tæki eru með einni HDMI tengi, sem er fær um 1920 × 1200 @60Hz úttak með því að nota HDMI tengi í fullri stærð. Raspberry Pi 4 er með tvö micro HDMI tengi og er fær um 4K úttak á báðum tengjum. Það fer eftir uppsetningu, HDMI 0 tengið á Raspberry Pi 4 er fær um allt að 4kp60, en þegar þú notar tvö 4K úttakstæki ertu takmarkaður við p30 á báðum tækjum. Grafíkhugbúnaðarstafla, óháð útgáfu, er ábyrgur fyrir því að yfirheyra tengd HDMI tæki fyrir eiginleika þeirra og setja upp HDMI kerfið á viðeigandi hátt. Legacy og FKMS staflar nota báðir fastbúnað í VideoCore grafík örgjörvanum til að athuga hvort HDMI sé til staðar og eiginleikar. Aftur á móti notar KMS algjörlega opinn uppspretta, ARM hliðarútfærslu. Þetta þýðir að kóðagrunnar fyrir kerfin tvö eru gjörólík og í sumum kringumstæðum getur þetta leitt til mismunandi hegðunar á milli aðferðanna tveggja. HDMI og DVI tæki auðkenna sig við upprunatækið með því að nota lýsigögn sem kallast EDID blokk. Þetta er lesið af upprunatækinu frá skjátækinu í gegnum I2C tengingu og þetta er algjörlega gagnsætt fyrir endanotandann þar sem það er gert af grafíkstaflanum. EDID kubburinn inniheldur mikið af upplýsingum, en hann er fyrst og fremst notaður til að tilgreina hvaða upplausnir skjárinn styður, þannig að hægt er að setja Raspberry Pi upp til að gefa út viðeigandi upplausn.

Hvernig er brugðist við HDMI við ræsingu

Þegar fyrst er kveikt á honum fer Raspberry Pi í gegnum fjölda stages, þekktur sem stígvél stages:

  1. Fyrsta-stage, ROM-undirstaða bootloader ræsir VideoCore GPU.
  2. Önnur-stage bootloader (þetta er bootcode.bin á SD kortinu á tækjum á undan Raspberry Pi 4 og í SPI EEPROM á Raspberry Pi 4):
    1. Á Raspberry Pi 4, annar-stage ræsiforritið mun ræsa HDMI kerfið, spyrja skjáinn fyrir mögulegar stillingar og setja síðan skjáinn upp á viðeigandi hátt. Á þessum tímapunkti er skjárinn notaður til að veita grunngreiningargögn.
    2. Greiningarskjár ræsiforritara (07. des. 2022 og áfram) mun sýna stöðu allra tengdra skjáa (hvort Hotplug Detect (HPD) sé til staðar og hvort EDID blokk hafi verið endurheimt af skjánum).
  3. VideoCore fastbúnaðinn (start.elf) er hlaðinn og keyrður. Þetta mun taka yfir stjórn á HDMI kerfinu, lesa EDID blokkina af öllum tengdum skjáum og sýna regnbogaskjáinn á þessum skjám.
  4. Linux kjarnann ræsir
    1. Við ræsingu kjarna mun KMS taka við stjórn HDMI kerfisins frá fastbúnaðinum. Enn og aftur er EDID blokkin lesin af öllum meðfylgjandi skjáum og þessar upplýsingar eru notaðar til að setja upp Linux stjórnborðið og skjáborðið.

Hugsanleg vandamál og einkenni

Algengasta bilunareinkennið sem þú finnur fyrir þegar þú ferð yfir í KMS er upphaflega góð ræsing, þar sem ræsihleðsluskjárinn og síðan regnbogaskjárinn birtist, fylgt eftir eftir nokkrar sekúndur með því að skjárinn verður svartur og kviknar ekki aftur. Staðurinn þar sem skjárinn verður svartur er í raun sá punktur í ræsingarferli kjarnans þegar KMS ökumaðurinn tekur við að keyra skjáinn frá fastbúnaðinum. Raspberry Pi er núna í gangi í öllum atriðum nema HDMI úttakið, þannig að ef SSH er virkt þá ættirðu að geta skráð þig inn í tækið eftir þeirri leið. Græna aðgangsljósið fyrir SD-kortið mun venjulega flökta af og til. Það er líka mögulegt að þú sérð alls ekkert HDMI úttak; engin ræsihleðsluskjár og enginn regnbogaskjár. Þetta má venjulega rekja til vélbúnaðarbilunar.

Að greina bilunina

Ekkert HDMI úttak yfirleitt
Hugsanlegt er að tækið hafi ekki ræst neitt, en þetta er utan verksviðs þessarar hvítbókar. Að því gefnu að sú hegðun sem sést sé skjávandamál, þá er skortur á HDMI framleiðsla á einhverjum hluta ræsingarferlisins venjulega vegna vélbúnaðarbilunar. Það eru nokkrir möguleikar:

  • Gölluð HDMI snúru
  • Prófaðu nýja snúru. Sumar snúrur, sérstaklega mjög ódýrar, innihalda ef til vill ekki allar nauðsynlegar samskiptalínur (td hotplug) til að Raspberry Pi geti greint skjáinn.
  • Gallað HDMI tengi á Raspberry Pi
  • Ef þú ert að nota Raspberry Pi 4 skaltu prófa hina HDMI tengið.
  • Gallað HDMI tengi á skjánum
  • Stundum getur HDMI tengið á skjá eða sjónvarpi slitnað. Prófaðu aðra tengi ef tækið er með slíkt.
  • Sjaldan getur skjábúnaður aðeins veitt EDID gögn þegar kveikt er á því eða þegar rétt tengi er valið. Til að athuga skaltu ganga úr skugga um að kveikt sé á tækinu og að rétt inntakstengi sé valið.
  • Skjár tæki staðfestir ekki skynjunarlínuna

Upphafsúttak, síðan verður skjárinn svartur
Ef skjárinn kemur upp en slokknar síðan við ræsingu Linux kjarna, þá eru ýmsar mögulegar orsakir og þær eru venjulega tengdar vandamálum við að lesa EDID frá skjátækinu. Eins og sjá má af kaflanum hér að ofan sem fjallar um ræsingarröðina, er EDID lesið á mörgum mismunandi stöðum meðan á ræsingarferlinu stendur og hver af þessum lestri fer fram með mismunandi hugbúnaði. Lokalestur, þegar KMS tekur við, fer fram með óbreyttum andstreymis Linux kjarnakóða, og þetta höndlar ekki gölluð EDID snið sem og fyrri fastbúnaðarhugbúnaðinn. Þetta er ástæðan fyrir því að skjárinn getur hætt að virka rétt þegar KMS tekur við. Það eru margar leiðir til að staðfesta hvort KMS sé ekki að lesa EDID, og ​​tvær þeirra eru sem hér segir.
Athugaðu greiningarskjá ræsistjórans (aðeins Raspberry Pi 4)

ATH
Greining ræsiforrita krefst nýlegs ræsiforritara. Þú getur uppfært í nýjustu útgáfuna með því að nota þessar leiðbeiningar: https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#updating-the-bootloader Fjarlægðu SD-kortið og endurræstu Raspberry Pi. Ýttu á ESC á Install OS skjánum og greiningarskjárinn ætti að birtast á skjátækinu. Það ætti að vera lína á skjánum sem byrjar á skjá: — til dæmisample:

  • sýna: DISP0: HDMI HPD=1 EDID=allt í lagi #2 DISP1: HPD=0 EDID=engin #0

Þessi framleiðsla frá Raspberry Pi 4 sýnir að kerfið fann HDMI skjá á HDMI tengi 0, það er fullyrt um hotplug skynjun og EDID var lesið í lagi. Ekkert fannst á HDMI tengi 1.

Athugaðu hvort KMS kerfið hafi fundið EDID
Til að athuga þetta þarftu að skrá þig inn á Raspberry Pi tækið yfir SSH frá annarri tölvu. SSH er hægt að virkja þegar þú býrð til SD-kortamynd með Raspberry Pi Imager, með því að nota Advanced Settings valkostina. Að virkja SSH á SD-korti sem þegar hefur verið myndað er aðeins flóknara: þú þarft að nota aðra tölvu til að bæta við file heitir ssh í ræsihlutinn. Skiptu um SD-kortið í upprunalega Raspberry Pi og kveiktu á því. Þetta ætti að virkja SSH, með IP tölu sem er úthlutað af DHCP. Þegar þú hefur skráð þig inn skaltu slá inn eftirfarandi í boðunarstöðinni til að birta innihald hvers kyns EDID sem finnst (þú gætir þurft að breyta HDMI-A-1 í HDMI-A-2 eftir því hvaða HDMI tengi á Raspberry Pi skjátækinu er tengt to): cat /sys/class/drm/card?-HDMI-A-1/edid Ef það eru engar möppur sem heita card?-HDMI-A-1 eða álíka, þá er líklegt að ekki sé hægt að lesa EDID af skjánum tæki.

ATH
Í því tilviki þar sem EDID er lesið með góðum árangri, er gagnlegur sýndarmynd file í sömu möppu, sem kallast stillingar, sem þegar þær eru birtar sýnir allar mögulegar stillingar sem EDID fullyrðir að tækið styðji.

Mótvægisaðgerðir

Hotplug skynjun bilun Ef bæði fastbúnaður og KMS tekst ekki að finna tengdan skjá, gæti það verið hotplug uppgötvun bilun - þ.e. Raspberry Pi veit ekki að tæki hefur verið tengt við, svo það leitar ekki að EDID. Þetta gæti stafað af lélegri snúru eða skjátæki sem setur ekki nettenginguna rétt fram. Þú getur þvingað skynjun á hotplug með því að breyta skipanalínunni í kjarnanum file (cmdline.txt) sem er geymt í ræsihluta Raspberry Pi OS SD korts. Þú getur breytt þessu file á öðru kerfi, notaðu hvaða ritil sem þú vilt. Bættu eftirfarandi við lok cmdline.txt file: video=HDMI-A-1:1280×720@60D Ef þú ert að nota annað HDMI tengið skaltu skipta um HDMI-A-1 fyrir HDMI-A-2. Þú getur líka tilgreint aðra upplausn og rammatíðni, en vertu viss um að velja þær sem skjátækið styður.

ATH
Skjöl um kjarna skipanalínustillingar fyrir myndband má finna hér: https://www.kernel.org/doc/Documentation/fb/modedb.txt

VIÐVÖRUN
Eldri grafíkstaflar studdu notkun á config.txt færslu til að stilla hotplug detect, en þegar þetta er skrifað virkar þetta ekki með KMS. Það gæti verið stutt í fastbúnaðarútgáfum í framtíðinni. Config.txt færslan er hdmi_force_hotplug, og þú getur tilgreint tiltekið HDMI tengi sem hotplug á við með því að nota annað hvort hdmi_force_hotplug:0=1 eða hdmi_force_hotplug:1=1. Athugaðu að nafnafræðin fyrir KMS vísar til HDMI tengisins sem 1 og 2, en Raspberry Pi notar 0 og 1.

EDID vandamál
Minnihluti skjátækja er ófær um að skila EDID ef slökkt er á þeim eða þegar rangt AV inntak er valið. Þetta getur verið vandamál þegar Raspberry Pi og skjátækin eru á sama rafmagnsröndinni og Raspberry Pi tækið ræsir hraðar en skjárinn. Með svona tækjum gætirðu þurft að gefa upp EDID handvirkt. Jafnvel meira óvenjulegt, sum skjátæki eru með EDID blokkir sem eru illa sniðnar og ekki er hægt að flokka þær af KMS EDID kerfinu. Við þessar aðstæður gæti verið hægt að lesa EDID úr tæki með svipaða upplausn og nota það. Í báðum tilvikum útskýra eftirfarandi leiðbeiningar hvernig eigi að lesa EDID úr skjátæki og stilla KMS til að nota það, í stað þess að KMS reyni að yfirheyra tækið beint.

Að afrita EDID í a file
Að búa til a file að innihalda EDID lýsigögn frá grunni er venjulega ekki framkvæmanlegt og það er miklu auðveldara að nota það sem fyrir er. Almennt er hægt að fá EDID frá skjátæki og geyma það á SD-korti Raspberry Pi svo hægt sé að nota það af KMS í stað þess að fá EDID frá skjátækinu. Auðveldasti kosturinn hér er að tryggja að skjátækið sé í gangi og á réttu AV-inntaki og að Raspberry Pi hafi ræst HDMI kerfið rétt. Frá flugstöðinni geturðu nú afritað EDID til a file með eftirfarandi skipun: sudo cp /sys/class/drm/card?-HDMI-A-1/edid /lib/firmware/myedid.dat Ef af einhverjum ástæðum er EDID ekki til staðar geturðu ræst tækið í ekki -KMS ham sem tekst að ræsa á skjáborðið eða stjórnborðið, afritaðu síðan EDID sem fastbúnaðurinn mun (vonandi) lesa yfir á a file.

  1. Ræstu í eldri grafíkham.
    1. Breyttu config.txt í ræsihlutanum, vertu viss um að keyra ritilinn þinn með sudo og breyttu línunni sem segir dtoverlay=vc4-kms-v3d í #dtoverlay=vc4-kms-v3d.
    2. Endurræstu.
  2. Skrifborðið eða innskráningarborðið ætti nú að birtast.
    1. Notaðu flugstöðina til að afrita EDID frá meðfylgjandi skjátæki yfir á a file með eftirfarandi skipun:
  • tvservice -d myedid.dat sudo mv myedid.dat /lib/firmware/

Með því að nota a file-undirstaða EDID í stað þess að yfirheyra skjátækið Breyta /boot/cmdline.txt, ganga úr skugga um að keyra ritilinn þinn með sudo og bæta eftirfarandi við kjarnaskipanalínuna: drm.edid_firmware=myedid.dat Þú getur notað EDID á a tiltekið HDMI tengi sem hér segir: drm.edid_firmware=HDMI-A-1:myedid.dat Ef nauðsyn krefur, ræstu aftur í KMS ham með því að gera eftirfarandi:

  1. Breyttu config.txt í ræsingarsneiðinni, vertu viss um að keyra ritilinn þinn með sudo og breyttu línunni sem segir #dtoverlay=vc4-kms-v3d í dtoverlay=vc4-kms-v3d.
  2. Endurræstu.

ATH
Ef þú notar a file-undirstaða EDID, en þú átt samt í vandræðum með hotplug, þú getur þvingað skynjun á hotplug með því að bæta eftirfarandi við kjarna skipanalínuna: video=HDMI-A-1:D.

Skjöl / auðlindir

RaspberryPi KMS HDMI úttak grafík bílstjóri [pdfNotendahandbók
KMS, HDMI úttak grafík bílstjóri, KMS HDMI útgangur, grafík bílstjóri, KMS HDMI útgang grafík bílstjóri, bílstjóri

Heimildir

Skildu eftir athugasemd

Netfangið þitt verður ekki birt. Nauðsynlegir reitir eru merktir *