RaspberryPi KMS HDMI Kaluaran Grafika Supir
Kolofon
2020-2023 Raspberry Pi Ltd (baheulana Raspberry Pi (Trading) Ltd.) Dokuméntasi ieu dilisensikeun ku lisénsi Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0). ngawangun-tanggal: 2023-02-10 ngawangun-versi: githash: c65fe9c-bersih
Bewara Bantahan Hukum
DATA Téknis jeung reliabilitas pikeun produk raspberry pi (kaasup lembar data) sakumaha dirobah ti jaman ka jaman ("SUMBER") disayogikeun ku Raspberry Pi LTD ("RPL") "SA ADANYA" JEUNG HARANSI EXPRESS ATAU TERSIRAT, teu kaasup, TO, HARANSI TERSIRAT OF MERCHANTABILITY AND kabugaran pikeun Tujuan tinangtu DISCLAIMED. Nepi ka maksimum nu diijinkeun ku hukum lumaku dina euweuh kajadian RPL WAJIB nanggungjawaban kana sadaya langsung, teu langsung, insidental, husus, EXEMPLARY, atawa ruksakna consequential (kaasup, tapi teu diwatesan ku, pengadaan barang panggantian barang, D. , ATAWA KAUNTUNGAN; ATAWA GANGGUAN BISNIS) SARENG MANGSA NYAMBUNGKEUN SARENG TEORI TANGGUNGJAWAB, BAHA DINA KONTRAK, TANGGUNGJAWAB SKETAT, ATAWA TORT (Kaasup KELURAHAN ATAU NU LAIN) Timbul tina sagala cara kaluar tina pamakéan sumber daya, Karuksakan kitu. RPL ngagaduhan hak pikeun ngadamel perbaikan, perbaikan, koréksi atanapi modifikasi sanésna kana SUMBER DAYA atanapi produk naon waé anu dijelaskeun dina éta iraha waé sareng tanpa aya bewara salajengna. SUMBER DAYA dimaksudkeun pikeun pangguna terampil sareng tingkat pangaweruh desain anu cocog. Pamaké ngan ukur tanggung jawab pikeun milih sareng ngagunakeun SUMBER DAYA sareng aplikasi naon waé produk anu dijelaskeun dina éta. Pamaké satuju pikeun nanggung rugi sareng nahan RPL teu bahaya kana sadaya kawajiban, biaya, karusakan atanapi karugian sanés anu timbul tina panggunaan RESOURCES.RPL masihan idin ka pangguna pikeun ngagunakeun RESOURCES ngan ukur babarengan sareng produk Raspberry Pi. Sadaya pamakéan séjén tina SUMBER DAYA dilarang. Henteu aya lisénsi anu dipasihkeun ka RPL sanés atanapi hak cipta intelektual pihak katilu anu sanés. KAGIATAN RISIKO TINGGI. Produk buah prambus Pi teu dirancang, dijieun atawa dimaksudkeun pikeun pamakéan di lingkungan picilakaeun merlukeun kinerja aman gagal, kayaning dina operasi fasilitas nuklir, navigasi pesawat atawa sistem komunikasi, kontrol lalulintas hawa, sistem pakarang atawa aplikasi kritis kaamanan (kaasup rojongan hirup). sistem jeung alat médis séjén), nu gagalna produk bisa ngakibatkeun langsung maot, tatu pribadi atawa karuksakan fisik atawa lingkungan parna ("Kagiatan Résiko Tinggi"). RPL husus disclaims sagala jaminan express atanapi tersirat kabugaran pikeun Kagiatan Risk Luhur sarta narima euweuh liability pikeun pamakéan atawa inclusions produk buah prambus Pi dina Kagiatan Risk Luhur. Produk buah prambus Pi disayogikeun tunduk kana Sarat Standar RPL. Penyediaan RPL ngeunaan SUMBER DAYA henteu ngalegaan atanapi upami henteu ngarobih Sarat Standar RPL kalebet tapi henteu dugi ka bantahan sareng jaminan anu dinyatakeun dina éta.
Sajarah versi dokumén
Lingkup dokumén
Dokumén ieu manglaku ka produk Raspberry Pi di handap ieu
Bubuka
Kalayan ngenalkeun supir grafik KMS (Kernel Mode Setting), Raspberry Pi Ltd ngajauhan kontrol firmware warisan sistem kaluaran pidéo sareng nuju sistem grafik sumber anu langkung terbuka. Sanajan kitu, ieu geus datang jeung set sorangan tina tantangan. Dokumén ieu ditujukeun pikeun ngabantosan masalah naon waé anu timbul nalika ngalih ka sistem énggal. Ieu whitepaper nganggap yén buah prambus Pi ngajalankeun Raspberry Pi OS, tur pinuh up to date jeung firmware panganyarna na kernels.
terminologi
DRM: Direct Rendering Manager, subsistem tina kernel Linux anu dipaké pikeun komunikasi sareng unit processing grafik (GPU). Dipaké gawé bareng FKMS jeung KMS.
DVI: A miheulaan HDMI, tapi tanpa kamampuhan audio. Kabel HDMI ka DVI sareng adaptor sayogi pikeun nyambungkeun alat Raspberry Pi ka tampilan anu dilengkepan ku DVI.
EDID: Ngalegaan Témbongkeun Idéntifikasi Data. Format metadata pikeun alat tampilan pikeun ngajelaskeun kamampuanana kana sumber video. Struktur data EDID ngawengku ngaran pabrik jeung nomer serial, tipe produk, ukuran tampilan fisik, sarta timing dirojong ku tampilan, babarengan jeung sababaraha data kirang mangpaat. Sababaraha tampilan tiasa gaduh blok EDID anu cacad, anu tiasa nyababkeun masalah upami éta cacad henteu diurus ku sistem tampilan.
FKMS (vc4-fkms-v3d): Setélan Mode Kernel Palsu. Nalika firmware masih ngadalikeun hardware tingkat rendah (pikeun example, port High-Definition Multimedia Interface (HDMI), Display Serial Interface (DSI), jsb), perpustakaan Linux baku dipaké dina kernel sorangan. FKMS dianggo sacara standar di Buster, tapi ayeuna tos dileungitkeun pikeun milih KMS di Bullseye.
HDMI: High-Definition Multimedia Interface mangrupikeun antarmuka audio/video proprietary pikeun ngirimkeun data video anu teu dikomprés, sareng data audio digital anu dikomprés atanapi henteu dikomprés.
HPD: Hotplug ngadeteksi. Kawat fisik anu ditegeskeun ku alat tampilan anu disambungkeun pikeun nunjukkeun éta aya.
KMS: Setélan Mode Kernel; tingali https://www.kernel.org/doc/html/latest/gpu/drm-kms.html pikeun leuwih rinci. Dina Raspberry Pi, vc4-kms-v3d mangrupikeun supir anu ngalaksanakeun KMS, sareng sering disebut "supir KMS". Tumpukan grafik warisan: Tumpukan grafik sagemblengna dilaksanakeun dina blob firmware VideoCore kakeunaan ku supir framebuffer Linux. Tumpukan grafik warisan parantos dianggo dina seuseueurna alat Raspberry Pi Ltd dugi ka ayeuna; ayeuna laun-laun diganti ku (F)KMS/DRM.
Sistem HDMI sareng supir grafik
Alat Raspberry Pi nganggo standar HDMI, anu umum pisan dina monitor LCD modern sareng televisi, pikeun kaluaran pidéo. Raspberry Pi 3 (kaasup Raspberry Pi 3B+) jeung alat saméméhna boga port HDMI tunggal, nu sanggup kaluaran 1920 × 1200 @60Hz maké konektor HDMI ukuran pinuh. Raspberry Pi 4 gaduh dua port HDMI mikro, sareng sanggup kaluaran 4K dina kadua palabuhan. Gumantung kana setelan, port HDMI 0 dina Raspberry Pi 4 sanggup nepi ka 4kp60, tapi nalika nganggo dua alat kaluaran 4K anjeun dugi ka p30 dina kadua alat éta. Tumpukan parangkat lunak grafik, henteu paduli versina, tanggung jawab pikeun ngainterogasi alat HDMI anu napel pikeun pasipatanana, sareng nyetél sistem HDMI anu leres. Legacy sareng FKMS tumpukan duanana ngagunakeun firmware dina prosesor grafik VideoCore pikeun mariksa ayana HDMI jeung sipat. Sabalikna, KMS nganggo sumber terbuka, palaksanaan sisi ARM. Ieu ngandung harti yén basa kode pikeun dua sistem sagemblengna béda, sarta dina sababaraha kaayaan ieu bisa ngahasilkeun kabiasaan béda antara dua pendekatan. Alat HDMI sareng DVI ngaidentipikasi diri kana alat sumber nganggo sapotong metadata anu disebut blok EDID. Ieu dibaca ku alat sumber ti alat tampilan via sambungan I2C, sarta ieu sagemblengna transparan pikeun pamaké tungtung sakumaha anu dipigawé ku tumpukan grafik. Blok EDID ngandung seueur inpormasi, tapi biasana dianggo pikeun nangtukeun resolusi mana anu dirojong ku tampilan, ku kituna Raspberry Pi tiasa disetél pikeun ngahasilkeun résolusi anu pas.
Kumaha HDMI diurus nalika booting
Nalika mimiti diaktipkeun, Raspberry Pi ngalangkungan sababaraha detiktages, katelah boot stages:
- Kahiji-stage, bootloader basis ROM dimimitian nepi ka VideoCore GPU.
- Kadua-stage bootloader (ieu bootcode.bin dina kartu SD dina alat sateuacan Raspberry Pi 4, sareng dina SPI EEPROM dina Raspberry Pi 4):
- Dina Raspberry Pi 4, kadua-stage bootloader bakal ngamimitian up sistem HDMI, interogasi tampilan pikeun modeu mungkin, lajeng nyetél tampilan appropriately. Dina titik ieu tampilan dipaké pikeun nyadiakeun data diagnostik dasar.
- Tampilan diagnostik bootloader (07 Des 2022 teras) bakal nampilkeun status tina tampilan anu napel (naha Hotplug Detect (HPD) aya, sareng naha blok EDID pulih tina tampilan).
- Firmware VideoCore (start.elf) dimuat sareng dijalankeun. Ieu bakal ngawasaan sistem HDMI, baca blok EDID tina sagala tampilan napel, sarta nembongkeun layar katumbiri dina pintonan maranéhanana.
- Sapatu kernel Linux
- Dina mangsa boot kernel, KMS bakal ngawasaan sistem HDMI tina firmware nu. Sakali deui blok EDID dibaca tina sagala tampilan anu napel, sareng inpormasi ieu dianggo pikeun nyetél konsol sareng desktop Linux.
Masalah sareng gejala anu mungkin
Gejala kagagalan anu paling umum dialaman nalika pindah ka KMS nyaéta boot mimitina saé, kalayan layar bootloader teras layar katumbiri muncul, dituturkeun saatos sababaraha detik ku tampilan janten hideung sareng henteu hurung deui. Titik dimana tampilan janten hideung nyatana mangrupikeun titik nalika prosés booting kernel nalika supir KMS nyandak alih tampilan tina firmware. Raspberry Pi ayeuna dijalankeun dina sagala hal kajaba kaluaran HDMI, janten upami SSH diaktipkeun maka anjeun kedah tiasa lebet kana alat ku jalur éta. LED aksés kartu SD héjo biasana bakal kedip-kedip aya kalana. Ieu oge mungkin nu bakal ningali euweuh kaluaran HDMI pisan; euweuh tampilan bootloader, tur euweuh layar katumbiri. Ieu biasana bisa attributed ka sesar hardware.
Diagnosing kasalahan
Taya kaluaran HDMI pisan
Ieu mungkin yen alat teu booted pisan, tapi ieu téh di luar kiriman tina kertas bodas ieu. Anggap yén paripolah anu dititénan mangrupikeun masalah tampilan, kurangna kaluaran HDMI salami bagian tina prosés booting biasana kusabab lepat hardware. Aya sababaraha pilihan anu mungkin:
- Kabel HDMI cacad
- Coba kabel anyar. Sababaraha kabel, khususna anu murah pisan, tiasa waé henteu ngandung sadaya jalur komunikasi anu diperyogikeun (contona hotplug) pikeun Raspberry Pi suksés ngadeteksi tampilan.
- Port HDMI cacad dina buah prambus Pi
- Upami anjeun nganggo Raspberry Pi 4, cobian port HDMI anu sanés.
- Port HDMI cacad dina monitor
- Kadang-kadang port HDMI dina monitor atawa TV bisa aus. Coba port béda lamun alat nu boga hiji.
- Jarang, alat tampilan ngan ukur tiasa nyayogikeun data EDID nalika dihurungkeun, atanapi nalika port anu leres dipilih. Pikeun mariksa, pastikeun alat dihurungkeun sareng port input anu leres dipilih.
- Alat tampilan teu negeskeun jalur deteksi hotplug
Kaluaran awal, teras layar janten hideung
Upami tampilanna muncul tapi teras pareum nalika boot kernel Linux, aya sababaraha kamungkinan sabab, sareng ieu biasana aya hubunganana sareng masalah maca EDID tina alat tampilan. Sapertos tiasa ditingali tina bagian di luhur ngeunaan sekuen boot, EDID dibaca dina sababaraha titik anu béda nalika prosés boot, sareng unggal bacaan ieu dilakukeun ku parangkat lunak anu béda. Pembacaan ahir, nalika KMS nyandak alih, dilaksanakeun ku kode kernel Linux hulu anu teu dirobih, sareng ieu henteu nanganan format EDID anu cacad sareng parangkat lunak firmware anu baheula. Ieu sababna tampilan tiasa lirén damel leres saatos KMS nyandak alih. Aya sababaraha cara pikeun mastikeun naha KMS gagal maca EDID, sareng dua di antarana nyaéta kieu.
Pariksa layar diagnostik bootloader (Raspberry Pi 4 wungkul)
CATETAN
Diagnostik bootloader merlukeun bootloader panganyarna. Anjeun tiasa ngamutahirkeun kana vérsi panganyarna nganggo pitunjuk ieu: https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#updating-the-bootloader Cabut kartu SD sareng reboot Raspberry Pi. Pencét ESC dina layar Pasang OS, sareng layar diagnostik kedah muncul dina alat tampilan. Kedah aya garis dina tampilan anu dimimitian ku tampilan: - pikeun example:
- tampilan: DISP0: HDMI HPD=1 EDID=ok #2 DISP1: HPD=0 EDID=euweuh #0
Kaluaran ieu tina Raspberry Pi 4 nunjukkeun yén sistem ngadeteksi tampilan HDMI dina port HDMI 0, deteksi hotplug ditegeskeun, sareng EDID dibaca OK. Henteu aya anu kapendak dina port HDMI 1.
Pariksa naha sistem KMS ngadeteksi EDID
Pikeun mariksa ieu anjeun kedah log in kana alat Raspberry Pi ngalangkungan SSH tina komputer anu sanés. SSH tiasa diaktipkeun nalika nyiptakeun gambar kartu SD nganggo Raspberry Pi Imager, nganggo pilihan Setélan Lanjut. Aktipkeun SSH dina kartu SD anu parantos digambar rada rumit: anjeun kedah nganggo komputer sanés pikeun nambihan file ngaranna ssh kana partisi boot. Ganti kartu SD dina Raspberry Pi asli sareng kakuatanana. Ieu kedah ngaktifkeun SSH, kalayan alamat IP anu dialokasikeun ku DHCP. Saatos log in, ketik di handap ieu dina paréntah terminal pikeun ningalikeun eusi EDID anu dideteksi (anjeun kedah ngarobih HDMI-A-1 ka HDMI-A-2 gumantung kana port HDMI mana dina Raspberry Pi alat tampilan disambungkeun. ka): ucing /sys/class/drm/card?-HDMI-A-1/edid Upami teu aya polder anu namina kartu?-HDMI-A-1 atanapi anu sami, maka kamungkinan henteu aya EDID anu tiasa dibaca tina tampilan. alat.
CATETAN
Dina kasus dimana EDID dibaca suksés, aya virtual anu mangpaat file dina folder sarua, disebut modeu, nu lamun ditampilkeun nembongkeun sagala modus mungkin EDID ngaklaim alat ngarojong.
Mitigasi
Hotplug ngadeteksi kagagalan Upami firmware sareng KMS gagal mendakan monitor anu dipasang, éta tiasa janten kagagalan deteksi hotplug - nyaéta, Raspberry Pi henteu terang yén alat parantos dipasang, janten henteu mariksa EDID. Ieu bisa disababkeun ku kabel goréng, atawa alat tampilan nu teu negeskeun hotplug leres. Anjeun tiasa maksa hiji hotplug ngadeteksi ku cara ngarobah garis paréntah kernel file (cmdline.txt) anu disimpen dina partisi boot tina kartu SD Raspberry Pi OS. Anjeun tiasa ngédit ieu file dina sistem anu sanés, nganggo éditor naon waé anu anjeun pikahoyong. Tambahkeun handap ka tungtung cmdline.txt file: video = HDMI-A-1: 1280×720@60D Upami Anjeun keur make port HDMI kadua, ngaganti HDMI-A-1 jeung HDMI-A-2. Anjeun ogé tiasa netepkeun résolusi sareng laju pigura anu béda, tapi pastikeun anjeun milih anu dirojong ku alat tampilan.
CATETAN
Dokuméntasi ngeunaan setélan garis paréntah kernel pikeun pidéo tiasa dipendakan di dieu: https://www.kernel.org/doc/Documentation/fb/modedb.txt
PERHATOSAN
tumpukan grafik heubeul ngarojong pamakéan a config.txt Éntri pikeun set hotplug ngadeteksi, tapi dina waktu nulis ieu teu dianggo kalayan KMS. Éta tiasa dirojong dina sékrési firmware ka hareup. Éntri config.txt nyaeta hdmi_force_hotplug, tur anjeun bisa nangtukeun port HDMI husus yén hotplug nu manglaku ka boh boh hdmi_force_hotplug: 0 = 1 atanapi hdmi_force_hotplug: 1 = 1. Catet yén nomenklatur pikeun KMS nujul kana palabuhan HDMI salaku 1 sareng 2, sedengkeun Raspberry Pi nganggo 0 sareng 1.
Masalah EDID
Minoritas alat tampilan henteu mampuh ngabalikeun EDID upami aranjeunna dipareuman, atanapi nalika input AV salah dipilih. Ieu tiasa janten masalah nalika Raspberry Pi sareng alat tampilan aya dina jalur kakuatan anu sami, sareng alat Raspberry Pi langkung gancang tibatan tampilan. Kalayan alat sapertos kieu, anjeun panginten kedah nyayogikeun EDID sacara manual. Malah leuwih ilahar, sababaraha alat tampilan boga blok EDID nu parah formatna tur teu bisa parsed ku sistem KMS EDID. Dina kaayaan ieu, mungkin waé maca EDID tina alat anu résolusi anu sami sareng nganggo éta. Dina boh kasus, parentah di handap ieu diatur cara maca hiji EDID tina alat tampilan tur ngonpigurasikeun KMS ngagunakeun eta, tinimbang KMS nyoba interogasi alat langsung.
Nyalin EDID ka a file
Nyiptakeun a file ngandung metadata EDID ti scratch biasana teu meujeuhna, sarta ngagunakeun hiji nu geus aya loba gampang. Ieu umumna mungkin pikeun ménta EDID ti alat tampilan tur nyimpen eta dina kartu SD Raspberry Pi urang sangkan bisa dipaké ku KMS tinimbang meunang EDID tina alat tampilan. Pilihan panggampangna di dieu nyaéta pikeun mastikeun yén alat tampilan sareng ngajalankeun sareng asupan AV anu leres, sareng yén Raspberry Pi parantos ngamimitian sistem HDMI kalayan leres. Tina terminal, anjeun ayeuna tiasa nyalin EDID ka a file kalayan paréntah di handap ieu: sudo cp /sys/class/drm/card?-HDMI-A-1/edid /lib/firmware/myedid.dat Mun keur sababaraha alesan EDID teu hadir, Anjeun bisa boot alat dina non - Modeu KMS anu suksés dina booting kana desktop atanapi konsol, teras salin EDID anu firmware bakal (mudah-mudahan) suksés dibaca ka a file.
- Boot ka modeu grafik warisan.
- Édit config.txt dina partisi boot, pastikeun ngajalankeun redaktur anjeun nganggo sudo, sareng robih garis anu nyarios dtoverlay = vc4-kms-v3d ka #dtoverlay = vc4-kms-v3d.
- Reboot.
- Desktop atanapi konsol login ayeuna kedah muncul.
- Ngagunakeun terminal, nyalin EDID tina alat tampilan napel a file kalayan paréntah di handap ieu:
- tvservice -d myedid.dat sudo mv myedid.dat /lib/firmware/
Ngagunakeun a file-based EDID tinimbang interogasi alat tampilan Edit /boot/cmdline.txt, pastikeun pikeun ngajalankeun redaktur Anjeun maké sudo, tur nambahkeun handap kana garis paréntah kernel: drm.edid_firmware=myedid.dat Anjeun tiasa nerapkeun EDID ka a port HDMI husus saperti kieu: drm.edid_firmware=HDMI-A-1:myedid.dat Upami diperlukeun, boot deui kana modeu KMS ku ngalakukeun di handap:
- Édit config.txt dina partisi boot, pastikeun ngajalankeun editor anjeun nganggo sudo, sareng robih garis anu nyarios #dtoverlay = vc4-kms-v3d ka dtoverlay = vc4-kms-v3d.
- Reboot.
CATETAN
Lamun make a file-dumasar EDID, tapi masih gaduh masalah sareng hotplug, anjeun tiasa maksakeun deteksi hotplug ku nambahkeun handap kana garis paréntah kernel: video = HDMI-A-1: D.
Dokumén / Sumberdaya
![]() |
RaspberryPi KMS HDMI Kaluaran Grafika Supir [pdf] Manual pamaké KMS, Supir Grafik Kaluaran HDMI, Kaluaran HDMI KMS, Supir Grafik, Supir Grafik Kaluaran HDMI KMS, Supir |