Jak odczytać EDID monitora na Raspberry Pi

Obraz tytułowy EDID

W tym poście powiemy ci dokładnie, co musisz zrobić, aby zrozumieć rozszerzone dane identyfikacyjne monitora (EDID) na Raspberry Pi.

Uwaga: poprzednio funkcja odczytu EDID była dostępna z samodzielną wersją PiDoctora. Ta wersja została wycofana, a funkcjonalność odczytu EDID nie jest zaimplementowana w nowej wersji PiDoctora. PiCockpit PiDoctor app jeszcze, dlatego w tym artykule podam Ci instrukcję jak odczytać EDID.

PiDoctor zawiera wyjście w trybach monitora

Zanim zagłębimy się w to, jak wyodrębnić EDID z Raspberry Pi, zauważ, że nowy PiCockpit's PiDoctor Aplikacja zawiera wiele danych wyjściowych, których można się spodziewać po odczytaniu EDID (obsługiwane tryby rozdzielczości, nazwa monitora, wsparcie audio, ...), oto dwa przykładowe zrzuty ekranu:

Aplikacja PiCockpit PiDoctor, zastępująca niektóre funkcje EDID, zawiera wyjścia dla trybów CEA i DMT

Odczytaj EDID pod Raspbian / Raspberry Pi OS

Uruchom następujące polecenie w wierszu poleceń:

tvservice -d /tmp/edid.dat

uruchom tę komendę aby zapisać EDID do pliku tymczasowego.

Spowoduje to utworzenie pliku edid.dat w katalogu /tmp.

Uwaga: w Raspberry Pi 4 i 400, dwa wyświetlacze mogą być podłączone za pomocą portów microHDMI. W tym przypadku należy określić, z którego wyświetlacza ma być odczytywane EDID:

tvservice --list

tvservice pokazuje załączone wyświetlacze.
tvservice pokazuje załączone wyświetlacze

Następnie podaj identyfikator urządzenia, które Cię interesuje, w następujący sposób:

tvservice --device 2 -d /tmp/edid.dat

Dekoduj EDID używając edidparser

Możesz uruchomić edidparser na tym pliku (jeśli nie ma go w twoim systemie, zainstaluj go najpierw):

edidparser /tmp/edid.dat

To da ci dużo danych wyjściowych, na przykład na moim monitorze, to daje:

Enabling fuzzy format match
Parsing /tmp/edid.dat
HDMI:EDID version 1.3, 1 extensions, screen size 48x27 cm
HDMI:EDID features - videodef 0x80 standby suspend active off; colour encoding:RGB444|YCbCr422; sRGB is not default colourspace; preferred format is native; does not support GTF
HDMI:EDID found monitor range descriptor tag 0xfd
HDMI:EDID monitor range offsets: V min=0, V max=0, H min=0, H max=0
HDMI:EDID monitor range: vertical is 50-76 Hz, horizontal is 30-83 kHz, max pixel clock is 170 MHz
HDMI:EDID monitor range does not support GTF
HDMI:EDID found monitor name descriptor tag 0xfc
HDMI:EDID monitor name is VE228
HDMI:EDID found monitor S/N descriptor tag 0xff
HDMI:EDID found preferred CEA detail timing format: 1920x1080p @ 60 Hz (16)
HDMI:EDID established timing I/II bytes are BF EF 00
HDMI:EDID found DMT format: code 4, 640x480p @ 60 Hz in established timing I/II
HDMI:EDID found DMT format: code 5, 640x480p @ 72 Hz in established timing I/II
HDMI:EDID found DMT format: code 6, 640x480p @ 75 Hz in established timing I/II
HDMI:EDID found DMT format: code 8, 800x600p @ 56 Hz in established timing I/II
HDMI:EDID found DMT format: code 9, 800x600p @ 60 Hz in established timing I/II
HDMI:EDID found DMT format: code 10, 800x600p @ 72 Hz in established timing I/II
HDMI:EDID found DMT format: code 11, 800x600p @ 75 Hz in established timing I/II
HDMI:EDID found DMT format: code 16, 1024x768p @ 60 Hz in established timing I/II
HDMI:EDID found DMT format: code 17, 1024x768p @ 70 Hz in established timing I/II
HDMI:EDID found DMT format: code 18, 1024x768p @ 75 Hz in established timing I/II
HDMI:EDID found DMT format: code 36, 1280x1024p @ 75 Hz in established timing I/II
HDMI:EDID standard timings block x 8: 0x714F 8180 8140 9500 A940 B300 D1C0 0101
HDMI:EDID found DMT format: code 21, 1152x864p @ 75 Hz (4:3) in standard timing 0
HDMI:EDID found DMT format: code 35, 1280x1024p @ 60 Hz (5:4) in standard timing 1
HDMI:EDID found DMT format: code 32, 1280x960p @ 60 Hz (4:3) in standard timing 2
HDMI:EDID found DMT format: code 47, 1440x900p @ 60 Hz (16:10) in standard timing 3
HDMI:EDID found DMT format: code 51, 1600x1200p @ 60 Hz (4:3) in standard timing 4
HDMI:EDID found DMT format: code 58, 1680x1050p @ 60 Hz (16:10) in standard timing 5
HDMI:EDID found DMT format: code 82, 1920x1080p @ 60 Hz (16:9) in standard timing 6
HDMI:EDID parsing v3 CEA extension 0
HDMI:EDID monitor support - underscan IT formats:yes, basic audio:yes, yuv444:yes, yuv422:yes, #native DTD:1
HDMI:EDID failed to find a matching detail format for 1920x1080p hfp:48 hs:32 hbp:80 vfp:3 vs:5 vbp:22 pixel clock:138 MHz
HDMI:EDID calculated refresh rate is 60 Hz
HDMI:EDID guessing the format to be 1920x1080p @60 Hz
HDMI:EDID found CEA detail timing format: 1920x1080p @ 60 Hz (16)
HDMI:EDID found DMT detail timing format: 1366x768p @ 60 Hz (81)
HDMI:EDID found CEA detail timing format: 1280x720p @ 60 Hz (4)
HDMI:EDID found CEA detail timing format: 720x480p @ 60 Hz (2)
HDMI:EDID found CEA detail timing format: 1920x1080i @ 60 Hz (5)
HDMI:EDID found CEA format: code 16, 1920x1080p @ 60Hz (native)
HDMI:EDID found CEA format: code 5, 1920x1080i @ 60Hz
HDMI:EDID found CEA format: code 4, 1280x720p @ 60Hz
HDMI:EDID found CEA format: code 3, 720x480p @ 60Hz
HDMI:EDID found CEA format: code 2, 720x480p @ 60Hz
HDMI:EDID found CEA format: code 1, 640x480p @ 60Hz
HDMI:EDID found CEA format: code 17, 720x576p @ 50Hz
HDMI:EDID found CEA format: code 18, 720x576p @ 50Hz
HDMI:EDID found CEA format: code 19, 1280x720p @ 50Hz
HDMI:EDID found CEA format: code 20, 1920x1080i @ 50Hz
HDMI:EDID found CEA format: code 31, 1920x1080p @ 50Hz
HDMI:EDID found audio format 2 channels PCM, sample rate: 32|44|48 kHz, sample size: 16|20|24 bits
HDMI:EDID found HDMI VSDB length 5
HDMI:EDID HDMI VSDB has physical address 1.0.0.0
HDMI:EDID HDMI VSDB has no extension fields
HDMI:EDID filtering formats with pixel clock unlimited MHz or h. blanking unlimited
HDMI:EDID best score mode initialised to CEA (1) 640x480p @ 60 Hz with pixel clock 25 MHz (score 0)
HDMI:EDID best score mode is now CEA (1) 640x480p @ 60 Hz with pixel clock 25 MHz (score 61864)
HDMI:EDID best score mode is now CEA (2) 720x480p @ 60 Hz with pixel clock 27 MHz (score 3066472)
HDMI:EDID CEA mode (3) 720x480p @ 60 Hz with pixel clock 27 MHz has a score of 66472
HDMI:EDID best score mode is now CEA (4) 1280x720p @ 60 Hz with pixel clock 74 MHz (score 3635592)
HDMI:EDID DMT mode (4) 640x480p @ 60 Hz with pixel clock 25 MHz has a score of 18432
HDMI:EDID CEA mode (5) 1920x1080i @ 60 Hz with pixel clock 74 MHz has a score of 2773832
HDMI:EDID DMT mode (5) 640x480p @ 72 Hz with pixel clock 31 MHz has a score of 5529
HDMI:EDID DMT mode (6) 640x480p @ 75 Hz with pixel clock 31 MHz has a score of 5760
HDMI:EDID DMT mode (8) 800x600p @ 56 Hz with pixel clock 36 MHz has a score of 26880
HDMI:EDID DMT mode (9) 800x600p @ 60 Hz with pixel clock 40 MHz has a score of 28800
HDMI:EDID DMT mode (10) 800x600p @ 72 Hz with pixel clock 50 MHz has a score of 8640
HDMI:EDID DMT mode (11) 800x600p @ 75 Hz with pixel clock 49 MHz has a score of 9000
HDMI:EDID best score mode is now CEA (16) 1920x1080p @ 60 Hz with pixel clock 148 MHz (score 5398248)
HDMI:EDID DMT mode (16) 1024x768p @ 60 Hz with pixel clock 65 MHz has a score of 47185
HDMI:EDID CEA mode (17) 720x576p @ 50 Hz with pixel clock 27 MHz has a score of 66472
HDMI:EDID DMT mode (17) 1024x768p @ 70 Hz with pixel clock 75 MHz has a score of 13762
HDMI:EDID CEA mode (18) 720x576p @ 50 Hz with pixel clock 27 MHz has a score of 66472
HDMI:EDID DMT mode (18) 1024x768p @ 75 Hz with pixel clock 78 MHz has a score of 14745
HDMI:EDID CEA mode (19) 1280x720p @ 50 Hz with pixel clock 74 MHz has a score of 117160
HDMI:EDID CEA mode (20) 1920x1080i @ 50 Hz with pixel clock 74 MHz has a score of 128680
HDMI:EDID DMT mode (21) 1152x864p @ 75 Hz with pixel clock 108 MHz has a score of 43662
HDMI:EDID CEA mode (31) 1920x1080p @ 50 Hz with pixel clock 148 MHz has a score of 232360
HDMI:EDID DMT mode (32) 1280x960p @ 60 Hz with pixel clock 108 MHz has a score of 98728
HDMI:EDID DMT mode (35) 1280x1024p @ 60 Hz with pixel clock 108 MHz has a score of 103643
HDMI:EDID DMT mode (36) 1280x1024p @ 75 Hz with pixel clock 135 MHz has a score of 24576
HDMI:EDID DMT mode (47) 1440x900p @ 60 Hz with pixel clock 106 MHz has a score of 102760
HDMI:EDID DMT mode (51) 1600x1200p @ 60 Hz with pixel clock 162 MHz has a score of 140200
HDMI:EDID DMT mode (58) 1680x1050p @ 60 Hz with pixel clock 146 MHz has a score of 130840
HDMI:EDID DMT mode (81) 1366x768p @ 60 Hz with pixel clock 85 MHz has a score of 4062945
HDMI:EDID DMT mode (82) 1920x1080p @ 60 Hz with pixel clock 148 MHz has a score of 149416
HDMI0:EDID preferred mode remained as CEA (16) 1920x1080p @ 60 Hz with pixel clock 148 MHz
HDMI:EDID has HDMI support and audio support
edidparser exited with code 0

Narzędzie do dekodowania online

Możesz również przesłać ten plik do narzędzia dekodującego online, na przykład edid.tv

Uwaga: w moim teście edid.tv skarżył się na niepoprawną sumę kontrolną dla jednego z moich EDIDów - nie wiem jak to obejść w tej chwili.

EDID.tv zapewnia bogaty przegląd informacji EDID
EDID.tv

Rozwiązywanie problemów z tvservice / EDID dump

Nic nie napisano

Kiedy biegnę

tvservice -device 2 -d tmp/edid.dat

Dostaję "Nic nie napisano!"

Spróbuj teraz sprawdzić następujące elementy:

  • czy Twój monitor jest podłączony do portu HDMI (nie, poważnie)
  • czy ID urządzenia jest prawidłowe? proszę użyć tvservice -list aby uzyskać listę identyfikatorów, nie kopiuj i wklej mojego przykładowego identyfikatora urządzenia 2
  • spróbuj tvservice bez -device 2
  • spróbuj zrestartować Raspberry Pi (w tym konkretnym przypadku użycia występują problemy, gdy monitory są podłączone na gorąco, AFAIK), i uruchom ponownie polecenia.
  • wypróbować inne parametry tvservice, aby sprawdzić, czy jest możliwe jakiekolwiek wyjście z tego konkretnego monitora (tutaj jest dokumentacja dla tvservice)
  • niektóre telewizory / monitory są uszkodzone i nie mogą dostarczyć EDID - spróbuj innego monitora, aby zobaczyć, czy to robi różnicę

Wniosek

Teraz, gdy rozszerzone dane identyfikacyjne monitora w końcu nabrały sensu, możesz rozpocząć kolejny projekt Raspberry Pi!

Szukasz pomysłów? Sprawdź nasza seria Paragon Projects.

Komentarzy: 2

  1. Yoann styczeń 26, 2022 o 5:32 pm

    Bonjour, j'obtiens cette erreur :
    Usługa tvservice nie jest wspierana przy zastosowaniu sterownika vc4-kms-v3d.
    Podobne funkcje są dostępne w standardowych narzędziach linuksowych
    takie jak modetest z libdrm-tests.

    Y a-t-il une alternative?

    Merci,

Pozostaw komentarz