Como ler o EDID do seu monitor em um Raspberry Pi

Nota: anteriormente, uma função para ler o EDID estava disponível com a versão autônoma do PiDoctor. Esta versão foi descontinuada e a funcionalidade para ler o EDID não está implementada no novo PiCockpit PiDoctor app ainda, portanto vou dar-lhe instruções manuais de como ler o EDID neste artigo.

PiDoctor inclui saída nos modos monitor

Antes de mergulharmos em como extrair o EDID no seu Raspberry Pi, note que o novo PiCockpit's PiDoctor app inclui muita saída que você esperaria lendo o EDID também (modos de resolução suportados, nome do monitor, suporte de áudio, ...), aqui estão dois exemplos de capturas de tela:

PiCockpit PiDoctor app, substituindo algumas funcionalidades EDID, inclui saída em modos CEA e modos DMT

Leia o EDID em Raspbian / Raspberry Pi OS

Execute o seguinte comando na linha de comando:

tvservice -d /tmp/edid.dat
execute este comando para escrever o EDID em um arquivo temporário.

Isto irá criar o edid.dat no diretório /tmp.

Nota: em um Raspberry Pi 4 e 400, dois displays podem ser anexados usando as portas microHDMI. Neste caso, você gostaria de especificar o visor para ler o EDID de:

tvservice --lista
O tvservice mostra os monitores em anexo.
tvservice mostra os monitores em anexo

Em seguida, passe na identificação do dispositivo, do visor em que você está interessado, assim:

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

Descodificar EDID usando o edidparser

Você pode rodar o edidparser neste arquivo (se ele não estiver no seu sistema, por favor instale-o primeiro):

edidparser /tmp/edid.dat

Isto vai lhe dar muita saída, por exemplo no meu monitor, ele dá:

Activando a combinação do formato fuzzy...
Parsing /tmp/edid.dat...
HDMI:EDID versão 1.3, 1 extensões, tamanho do ecrã 48×27 cm
Características HDMI:EDID - videodef 0x80 standby suspender ativo desligado; codificação de cores:RGB444|YCbCr422; sRGB não é o espaço de cores padrão; o formato preferido é nativo; não suporta GTF
HDMI:EDID encontrou a tag descritor de alcance do monitor 0xfd
HDMI:EDID intervalo do monitor offsets: V min=0, V max=0, H min=0, H max=0
HDMI:EDID intervalo do monitor: vertical é 50-76 Hz, horizontal é 30-83 kHz, o relógio de píxeis máximo é 170 MHz
A gama de monitores HDMI:EDID não suporta GTF
HDMI:EDID encontrou a tag descritor de nome de monitor 0xfc
HDMI:EDID nome do monitor é VE228
HDMI:EDID encontrado monitor S/N descriptor tag 0xff
HDMI:EDID encontrou o formato preferido de temporização de detalhes CEA: 1920x1080p @ 60 Hz (16)
Os bytes I/II HDMI:EDID estabelecidos são BF EF 00
HDMI:EDID encontrado formato DMT: código 4, 640x480p @ 60 Hz no tempo estabelecido I/II
HDMI:EDID encontrado formato DMT: código 5, 640x480p @ 72 Hz no tempo estabelecido I/II
HDMI:EDID encontrado formato DMT: código 6, 640x480p @ 75 Hz no tempo estabelecido I/II
HDMI:EDID encontrado no formato DMT: código 8, 800x600p @ 56 Hz no tempo estabelecido I/II
HDMI:EDID encontrado formato DMT: código 9, 800x600p @ 60 Hz no tempo estabelecido I/II
HDMI:EDID encontrado formato DMT: código 10, 800x600p @ 72 Hz no tempo estabelecido I/II
HDMI:EDID encontrado formato DMT: código 11, 800x600p @ 75 Hz no tempo estabelecido I/II
HDMI:EDID encontrado formato DMT: código 16, 1024x768p @ 60 Hz no tempo estabelecido I/II
HDMI:EDID encontrado formato DMT: código 17, 1024x768p @ 70 Hz no tempo estabelecido I/II
HDMI:EDID encontrado formato DMT: código 18, 1024x768p @ 75 Hz no tempo estabelecido I/II
HDMI:EDID encontrado formato DMT: código 36, 1280x1024p @ 75 Hz no tempo estabelecido I/II
HDMI:EDID bloco de temporização padrão x 8: 0x714F 8180 8140 9500 A940 B300 D1C0 0101
HDMI:EDID encontrado formato DMT: código 21, 1152x864p @ 75 Hz (4:3) no tempo padrão 0
HDMI:EDID encontrado formato DMT: código 35, 1280x1024p @ 60 Hz (5:4) na temporização padrão 1
HDMI:EDID encontrado formato DMT: código 32, 1280x960p @ 60 Hz (4:3) no tempo padrão 2
HDMI:EDID encontrado formato DMT: código 47, 1440x900p @ 60 Hz (16:10) no tempo padrão 3
HDMI:EDID encontrado formato DMT: código 51, 1600x1200p @ 60 Hz (4:3) no tempo padrão 4
HDMI:EDID encontrado formato DMT: código 58, 1680x1050p @ 60 Hz (16:10) no tempo padrão 5
HDMI:EDID encontrado formato DMT: código 82, 1920x1080p @ 60 Hz (16:9) no tempo padrão 6
HDMI:EDID parsing v3 CEA extensão 0
suporte a monitor HDMI:EDID - formatos de IT underscan:sim, áudio básico:sim, yuv444:sim, yuv422:sim, #native DTD:1
HDMI:EDID não conseguiu encontrar um formato de detalhe correspondente para 1920x1080p hfp:48 hs:32 hbp:80 vfp:3 vs:5 vbp:22 pixel clock:138 MHz
HDMI:EDID taxa de atualização calculada é 60 Hz
HDMI:EDID adivinhando o formato a ser 1920x1080p @60 Hz
HDMI:EDID encontrou o formato de temporização de detalhes CEA: 1920x1080p @ 60 Hz (16)
HDMI:EDID encontrou o formato DMT de tempo detalhado: 1366x768p a 60 Hz (81)
HDMI:EDID encontrou o formato de temporização de detalhes CEA: 1280x720p @ 60 Hz (4)
HDMI:EDID encontrou o formato de temporização de detalhes CEA: 720x480p @ 60 Hz (2)
HDMI:EDID encontrou o formato de temporização de detalhes CEA: 1920x1080i @ 60 Hz (5)
HDMI:EDID encontrado formato CEA: código 16, 1920x1080p @ 60Hz (nativo)
HDMI:EDID encontrado formato CEA: código 5, 1920x1080i @ 60Hz
HDMI:EDID encontrado formato CEA: código 4, 1280x720p @ 60Hz
HDMI:EDID encontrado formato CEA: código 3, 720x480p @ 60Hz
HDMI:EDID encontrado formato CEA: código 2, 720x480p @ 60Hz
HDMI:EDID encontrado formato CEA: código 1, 640x480p @ 60Hz
HDMI:EDID encontrado formato CEA: código 17, 720x576p @ 50Hz
HDMI:EDID encontrado formato CEA: código 18, 720x576p @ 50Hz
HDMI:EDID encontrado formato CEA: código 19, 1280x720p @ 50Hz
HDMI:EDID encontrado formato CEA: código 20, 1920x1080i @ 50Hz
HDMI:EDID encontrado formato CEA: código 31, 1920x1080p @ 50Hz
HDMI:EDID encontrado formato de áudio 2 canais PCM, taxa de amostragem: 32|44|48 kHz, tamanho da amostra: 16|20|24 bits
HDMI:EDID encontrado HDMI VSDB comprimento 5
HDMI:EDID HDMI VSDB tem endereço físico 1.0.0.0
HDMI:EDID HDMI VSDB não tem campos de extensão
Formatos de filtragem HDMI:EDID com relógio de pixel ilimitado MHz ou h. blanking ilimitado
HDMI:EDID modo de melhor pontuação inicializado para CEA (1) 640x480p @ 60 Hz com relógio de píxeis 25 MHz (pontuação 0)
HDMI:EDID modo melhor pontuação é agora CEA (1) 640x480p @ 60 Hz com relógio de píxeis 25 MHz (pontuação 61864)
HDMI:EDID modo melhor pontuação é agora CEA (2) 720x480p @ 60 Hz com relógio de pixels 27 MHz (pontuação 3066472)
HDMI:EDID modo CEA (3) 720x480p @ 60 Hz com relógio de pixels 27 MHz tem uma pontuação de 66472
HDMI:EDID modo melhor pontuação é agora CEA (4) 1280x720p @ 60 Hz com relógio de píxeis 74 MHz (pontuação 3635592)
HDMI:EDID modo DMT (4) 640x480p @ 60 Hz com relógio de píxeis 25 MHz tem uma pontuação de 18432
HDMI:EDID modo CEA (5) 1920x1080i @ 60 Hz com relógio de píxeis 74 MHz tem uma pontuação de 2773832
HDMI:EDID modo DMT (5) 640x480p @ 72 Hz com relógio de píxeis 31 MHz tem uma pontuação de 5529
HDMI:EDID modo DMT (6) 640x480p @ 75 Hz com relógio de píxeis 31 MHz tem uma pontuação de 5760
HDMI:EDID modo DMT (8) 800x600p @ 56 Hz com relógio de pixels 36 MHz tem uma pontuação de 26880
HDMI:EDID modo DMT (9) 800x600p @ 60 Hz com relógio de 40 MHz tem uma pontuação de 28800
HDMI:EDID modo DMT (10) 800x600p @ 72 Hz com relógio de píxeis 50 MHz tem uma pontuação de 8640
HDMI:EDID modo DMT (11) 800x600p @ 75 Hz com relógio de píxeis 49 MHz tem uma pontuação de 9000
HDMI:EDID modo melhor pontuação é agora CEA (16) 1920x1080p @ 60 Hz com relógio de píxeis 148 MHz (pontuação 5398248)
HDMI:EDID modo DMT (16) 1024x768p @ 60 Hz com relógio de píxeis 65 MHz tem uma pontuação de 47185
HDMI:EDID modo CEA (17) 720x576p @ 50 Hz com relógio de pixels 27 MHz tem uma pontuação de 66472
HDMI:EDID modo DMT (17) 1024x768p @ 70 Hz com relógio de píxeis 75 MHz tem uma pontuação de 13762
HDMI:EDID modo CEA (18) 720x576p @ 50 Hz com relógio de pixels 27 MHz tem uma pontuação de 66472
HDMI:EDID modo DMT (18) 1024x768p @ 75 Hz com relógio de píxeis 78 MHz tem uma pontuação de 14745
HDMI:EDID modo CEA (19) 1280x720p @ 50 Hz com relógio de píxeis 74 MHz tem uma pontuação de 117160
HDMI:EDID modo CEA (20) 1920x1080i @ 50 Hz com relógio de píxeis 74 MHz tem uma pontuação de 128680
HDMI:EDID modo DMT (21) 1152x864p @ 75 Hz com relógio de píxeis 108 MHz tem uma pontuação de 43662
HDMI:EDID modo CEA (31) 1920x1080p @ 50 Hz com relógio de píxeis 148 MHz tem uma pontuação de 232360
HDMI:EDID modo DMT (32) 1280x960p @ 60 Hz com relógio de píxeis 108 MHz tem uma pontuação de 98728
HDMI:EDID modo DMT (35) 1280x1024p @ 60 Hz com relógio de píxeis 108 MHz tem uma pontuação de 103643
HDMI:EDID modo DMT (36) 1280x1024p @ 75 Hz com relógio de píxeis 135 MHz tem uma pontuação de 24576
HDMI:EDID modo DMT (47) 1440x900p @ 60 Hz com relógio de píxeis 106 MHz tem uma pontuação de 102760
HDMI:EDID modo DMT (51) 1600x1200p @ 60 Hz com relógio de pixels 162 MHz tem uma pontuação de 140200
HDMI:EDID modo DMT (58) 1680x1050p @ 60 Hz com relógio de píxeis 146 MHz tem uma pontuação de 130840
HDMI:EDID modo DMT (81) 1366x768p @ 60 Hz com relógio de píxeis 85 MHz tem uma pontuação de 4062945
HDMI:EDID modo DMT (82) 1920x1080p @ 60 Hz com relógio de píxeis 148 MHz tem uma pontuação de 149416
HDMI0:EDID modo preferencial permaneceu como CEA (16) 1920x1080p @ 60 Hz com relógio de píxeis 148 MHz
HDMI:EDID tem suporte a HDMI e suporte a áudio
edidparser saiu com o código 0

Ferramenta de descodificação online

Você também pode carregar este arquivo para uma ferramenta de decodificação online, por exemplo edid.tv

Nota: no meu teste, edid.tv reclamou de um checksum incorreto para um dos meus EDIDs - eu não tenho conhecimento de uma solução para o problema atualmente.

EDID.tv fornece uma rica visão geral da informação EDID
EDID.tv

Solução de problemas de tvservice / EDID dump

Nada escrito

Quando eu corro

tvservice -device 2 -d tmp/edid.dat

Eu recebo "Nada escrito!"

Tente e verifique o seguinte:

  • é o seu monitor ligado à sua porta HDMI (não, a sério)
  • a identificação do dispositivo está correcta? por favor use tvservice - lista para obter uma lista das IDs, não basta copiar e colar a minha ID do dispositivo de exemplo 2
  • tente tvservice sem -device 2
  • tente reiniciar o Raspberry Pi (há problemas neste caso particular de uso quando os monitores são hotplugged, AFAIK), e execute os comandos novamente.
  • tente os outros parâmetros do tvservice, para depurar se é possível alguma saída daquele monitor em particular (aqui está uma documentação para tvservice)
  • algumas TVs / monitores estão defeituosos e não podem fornecer um EDID - tente outro monitor para ver se faz alguma diferença

2 comentários

  1. Yoann em Janeiro 26, 2022 às 5:32 pm

    Bonjour, j'obtiens cette erreur :
    O tvservice não é suportado ao utilizar o driver vc4-kms-v3d.
    Características similares estão disponíveis com ferramentas linux padrão
    como o modetest dos testes de libdrm.

    Y a-t-t-il une alternative?

    Merci,

Deixe um comentário