Jak odczytać EDID monitora 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:

Włączenie funkcji rozmytego dopasowania formatu...
Parsowanie /tmp/edid.dat...
HDMI: EDID wersja 1.3, 1 rozszerzenie, rozmiar ekranu 48×27 cm
HDMI:Cechy EDID - videodef 0x80 standby suspend active off; kodowanie kolorów:RGB444|YCbCr422; sRGB nie jest domyślną przestrzenią kolorów; preferowany format to natywny; nie obsługuje GTF
HDMI:EDID znaleziono zakres deskryptora monitora tag 0xfd
HDMI:Przesunięcia zakresu monitora EDID: V min=0, V max=0, H min=0, H max=0
HDMI: Zakres monitora EDID: pionowy 50-76 Hz, poziomy 30-83 kHz, maks. taktowanie pikseli 170 MHz
HDMI:Zakres monitora EDID nie obsługuje GTF
HDMI:Znaleziono EDID nazwa monitora deskryptor tag 0xfc
HDMI:EDID nazwa monitora to VE228
HDMI:EDID znaleziono monitor S/N deskryptor tag 0xff
HDMI:EDID znaleziono preferowany format taktowania szczegółów CEA: 1920x1080p @ 60 Hz (16)
HDMI:EDID ustalone taktowanie I/II bajty są BF EF 00
HDMI:EDID znaleziono Format DMT: kod 4, 640x480p @ 60 Hz w ustalonym taktowaniu I/II
HDMI:EDID znaleziono format DMT: kod 5, 640x480p @ 72 Hz w ustalonym taktowaniu I/II
HDMI:EDID znaleziono format DMT: kod 6, 640x480p @ 75 Hz w ustalonym taktowaniu I/II
HDMI: znaleziono EDID Format DMT: kod 8, 800x600p @ 56 Hz w ustalonym taktowaniu I/II
HDMI: znaleziono EDID Format DMT: kod 9, 800x600p @ 60 Hz w ustalonym taktowaniu I/II
HDMI:EDID znaleziono format DMT: kod 10, 800x600p @ 72 Hz w ustalonym taktowaniu I/II
HDMI:EDID znaleziono format DMT: kod 11, 800x600p @ 75 Hz w ustalonym taktowaniu I/II
HDMI: znaleziono EDID Format DMT: kod 16, 1024x768p @ 60 Hz w ustalonym taktowaniu I/II
HDMI:EDID znaleziono format DMT: kod 17, 1024x768p @ 70 Hz w ustalonym taktowaniu I/II
HDMI:EDID znaleziono format DMT: kod 18, 1024x768p @ 75 Hz w ustalonym taktowaniu I/II
HDMI:EDID znaleziono format DMT: kod 36, 1280x1024p @ 75 Hz w ustalonym taktowaniu I/II
HDMI:EDID standardowe taktowanie blok x 8: 0x714F 8180 8140 9500 A940 B300 D1C0 0101
HDMI:EDID znaleziono Format DMT: kod 21, 1152x864p @ 75 Hz (4:3) w standardowym taktowaniu 0
HDMI:EDID znaleziono Format DMT: kod 35, 1280x1024p @ 60 Hz (5:4) w standardowym taktowaniu 1
HDMI:EDID znaleziono Format DMT: kod 32, 1280x960p @ 60 Hz (4:3) w standardowym taktowaniu 2
HDMI:EDID znaleziono Format DMT: kod 47, 1440x900p @ 60 Hz (16:10) w standardowym taktowaniu 3
HDMI:EDID znaleziono Format DMT: kod 51, 1600x1200p @ 60 Hz (4:3) w standardowym taktowaniu 4
HDMI:EDID znaleziono Format DMT: kod 58, 1680x1050p @ 60 Hz (16:10) w standardowym taktowaniu 5
HDMI:EDID znaleziono Format DMT: kod 82, 1920x1080p @ 60 Hz (16:9) w standardowym taktowaniu 6
HDMI:parsowanie EDID v3 Rozszerzenie CEA 0
HDMI:obsługa EDID monitora - underscan formaty IT:tak, basic audio:tak, yuv444:tak, yuv422:tak, #native DTD:1
HDMI:EDID nie znalazł pasującego formatu szczegółów dla 1920x1080p hfp:48 hs:32 hbp:80 vfp:3 vs:5 vbp:22 pixel clock:138 MHz
HDMI:EDID obliczona częstotliwość odświeżania wynosi 60 Hz
HDMI:EDID zgaduje, że format to 1920x1080p @60 Hz
HDMI:EDID znaleziono format taktowania szczegółów CEA: 1920x1080p @ 60 Hz (16)
HDMI:EDID znaleziono format taktowania szczegółów DMT: 1366x768p @ 60 Hz (81)
HDMI:EDID znaleziono format taktowania szczegółów CEA: 1280x720p @ 60 Hz (4)
HDMI:EDID znaleziono format taktowania szczegółów CEA: 720x480p @ 60 Hz (2)
HDMI:EDID znaleziono format taktowania szczegółów CEA: 1920x1080i @ 60 Hz (5)
HDMI: znaleziono EDID Format CEA: kod 16, 1920x1080p @ 60Hz (natywny)
HDMI: EDID znaleziono format CEA: kod 5, 1920x1080i @ 60Hz
HDMI: EDID znaleziono format CEA: kod 4, 1280x720p @ 60Hz
HDMI: EDID znaleziono format CEA: kod 3, 720x480p @ 60Hz
HDMI: EDID znaleziono format CEA: kod 2, 720x480p @ 60Hz
HDMI:EDID znaleziono format CEA: kod 1, 640x480p @ 60Hz
HDMI:EDID znaleziono format CEA: kod 17, 720x576p @ 50Hz
HDMI:EDID znaleziono format CEA: kod 18, 720x576p @ 50Hz
HDMI: EDID znaleziono format CEA: kod 19, 1280x720p @ 50Hz
HDMI: EDID znaleziono format CEA: kod 20, 1920x1080i @ 50Hz
HDMI: EDID znaleziono format CEA: kod 31, 1920x1080p @ 50Hz
HDMI:EDID znaleziony format audio 2 kanały PCM, częstotliwość próbkowania: 32|44|48 kHz, rozmiar próbki: 16|20|24 bity
HDMI:EDID znaleziono HDMI VSDB długość 5
HDMI:EDID HDMI VSDB ma adres fizyczny 1.0.0.0
HDMI:EDID HDMI VSDB nie ma pól rozszerzeń
HDMI:formaty filtrowania EDID z zegarem pikseli nieograniczona ilość MHz lub h. blanking nieograniczona ilość
HDMI:EDID tryb najlepszego wyniku zainicjowany na CEA (1) 640x480p @ 60 Hz z taktowaniem pikseli 25 MHz (wynik 0)
HDMI:EDID tryb najlepszego wyniku to teraz CEA (1) 640x480p @ 60 Hz z zegarem pikseli 25 MHz (wynik 61864)
HDMI:EDID tryb najlepszego wyniku to teraz CEA (2) 720x480p @ 60 Hz z zegarem pikseli 27 MHz (wynik 3066472)
HDMI:tryb EDID CEA (3) 720x480p @ 60 Hz z taktowaniem pikseli 27 MHz ma wynik 66472
HDMI:EDID tryb najlepszego wyniku to teraz CEA (4) 1280x720p @ 60 Hz z zegarem pikseli 74 MHz (wynik 3635592)
HDMI:Tryb EDID DMT (4) 640x480p @ 60 Hz z taktowaniem pikseli 25 MHz ma wynik 18432
HDMI:EDID CEA tryb (5) 1920x1080i @ 60 Hz z taktowaniem pikseli 74 MHz ma wynik 2773832
HDMI:EDID DMT tryb (5) 640x480p @ 72 Hz z zegarem pikseli 31 MHz ma wynik 5529
HDMI:tryb EDID DMT (6) 640x480p @ 75 Hz z taktowaniem pikseli 31 MHz ma wynik 5760
HDMI:tryb EDID DMT (8) 800x600p @ 56 Hz z zegarem pikseli 36 MHz ma wynik 26880
HDMI:tryb EDID DMT (9) 800x600p @ 60 Hz z taktowaniem pikseli 40 MHz ma wynik 28800
HDMI:tryb EDID DMT (10) 800x600p @ 72 Hz z taktowaniem pikseli 50 MHz ma wynik 8640
HDMI:EDID DMT mode (11) 800x600p @ 75 Hz z zegarem pikseli 49 MHz ma wynik 9000
HDMI:EDID tryb najlepszego wyniku to teraz CEA (16) 1920x1080p @ 60 Hz z zegarem pikseli 148 MHz (wynik 5398248)
HDMI:tryb EDID DMT (16) 1024x768p @ 60 Hz z zegarem pikseli 65 MHz ma wynik 47185
HDMI:tryb EDID CEA (17) 720x576p @ 50 Hz z taktowaniem pikseli 27 MHz ma wynik 66472
HDMI:Tryb EDID DMT (17) 1024x768p @ 70 Hz z zegarem pikseli 75 MHz uzyskał wynik 13762
HDMI:EDID CEA tryb (18) 720x576p @ 50 Hz z taktowaniem pikseli 27 MHz ma wynik 66472
HDMI:EDID DMT mode (18) 1024x768p @ 75 Hz with pixel clock 78 MHz ma wynik 14745
HDMI:EDID CEA tryb (19) 1280x720p @ 50 Hz z taktowaniem pikseli 74 MHz ma wynik 117160
HDMI:tryb EDID CEA (20) 1920x1080i @ 50 Hz z taktowaniem pikseli 74 MHz ma wynik 128680
HDMI:tryb EDID DMT (21) 1152x864p @ 75 Hz z zegarem pikseli 108 MHz ma wynik 43662
HDMI:tryb EDID CEA (31) 1920x1080p @ 50 Hz z zegarem pikseli 148 MHz ma wynik 232360
HDMI:tryb EDID DMT (32) 1280x960p @ 60 Hz z zegarem pikseli 108 MHz uzyskał wynik 98728
HDMI:Tryb EDID DMT (35) 1280x1024p @ 60 Hz z zegarem pikseli 108 MHz ma wynik 103643
HDMI:EDID DMT tryb (36) 1280x1024p @ 75 Hz z zegarem pikseli 135 MHz ma wynik 24576
HDMI:tryb EDID DMT (47) 1440x900p @ 60 Hz z zegarem pikseli 106 MHz ma wynik 102760
HDMI:tryb EDID DMT (51) 1600x1200p @ 60 Hz z taktowaniem pikseli 162 MHz ma wynik 140200
HDMI:tryb EDID DMT (58) 1680x1050p @ 60 Hz z zegarem pikseli 146 MHz ma wynik 130840
HDMI:EDID DMT mode (81) 1366x768p @ 60 Hz z pixel clock 85 MHz ma wynik 4062945
HDMI:tryb EDID DMT (82) 1920x1080p @ 60 Hz z taktowaniem pikseli 148 MHz ma wynik 149416
HDMI0: preferowany tryb EDID pozostał jako CEA (16) 1920x1080p @ 60 Hz z zegarem pikseli 148 MHz
HDMI:EDID posiada obsługę HDMI i obsługę audio
edidparser zakończył pracę z kodem 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 i sprawdź 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ę

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