Como obter o EDID para um único monitor?

17

Na pendência de uma resposta a xrandr detecta o amplificador como monitor , uma possível solução alternativa é para colocar dispositivos na lista negra com EDID específicos. Infelizmente, xrandr --verbose imprime tudo em um formato que é complicado de analisar e não oferece suporte à consulta de dispositivos únicos e A saída de get-edid não parece ser fácil de mapear para o monitor de xrandr IDs (por exemplo, DVI-1 ).

Existe alguma maneira de obter um EDID facilmente analisável para um monitor único ?

    
por l0b0 09.02.2014 / 13:01

4 respostas

18

Lead # 1: monitor-edid

Eu não estou no EDID e monitores, mas eu encontrei esta ferramenta, monitor-edid , que pode ser útil para você aqui também.

Perdoe-me se estiver fora da base, estou tentando também aprender mais sobre esse espaço, dada a variedade de perguntas que você faz sobre o assunto.

$ monitor-edid 
EISA ID: LEN4036
EDID version: 1.3
EDID extension blocks: 0
Screen size: 30.3 cm x 19.0 cm (14.08 inches, aspect ratio 16/10 = 1.59)
Gamma: 2.2
Digital signal

    # Monitor preferred modeline (60.0 Hz vsync, 55.8 kHz hsync, ratio 16/10, 120 dpi)
    ModeLine "1440x900" 114.06 1440 1488 1520 2044 900 903 909 930 -hsync -vsync

    # Monitor supported modeline (50.0 Hz vsync, 51.8 kHz hsync, ratio 16/10, 120 dpi)
    ModeLine "1440x900" 114.06 1440 1488 1520 2204 900 903 909 1035 -hsync -vsync

Lead # 2: ddcontrol

Havia outra ferramenta que me deparei chamada ddccontrol , que pode ser útil para obter as informações que você procura.

Lead # 3: / sys

Finalmente, ao percorrer /sys , notei que havia nós de folhas pendurados nas várias interfaces de vídeo.

$ sudo find . |grep -i edid
./devices/pci0000:00/0000:00:02.0/drm/card0/card0-HDMI-A-1/edid
./devices/pci0000:00/0000:00:02.0/drm/card0/card0-HDMI-A-2/edid
./devices/pci0000:00/0000:00:02.0/drm/card0/card0-HDMI-A-3/edid
./devices/pci0000:00/0000:00:02.0/drm/card0/card0-VGA-1/edid
./devices/pci0000:00/0000:00:02.0/drm/card0/card0-LVDS-1/edid
./devices/pci0000:00/0000:00:02.0/drm/card0/card0-DP-1/edid
./devices/pci0000:00/0000:00:02.0/drm/card0/card0-DP-2/edid
./devices/pci0000:00/0000:00:02.0/drm/card0/card0-DP-3/edid
./module/drm/parameters/edid_fixup
./module/drm_kms_helper/parameters/edid_firmware

No entanto, no meu laptop Lenovo esses "arquivos" estavam vazios, talvez sejam diferentes em seu sistema. Eu encontrei este tópico do fórum que mostrava o exemplo de saída do VGA EDID.

$ lspci | grep VGA
01:00.0 VGA compatible controller: nVidia Corporation NV17 [GeForce4 440 Go 64M] (rev a3)
$ xxd  /sys/devices/pci0000:00/0000:00:0b.0/0000:01:00.0/drm/card0/card0-VGA-1/edid
0000000: 00ff ffff ffff ff00 5a63 0213 0101 0101  ........Zc......
0000010: 2b0a 0103 1c25 1bb0 eb00 b8a0 5749 9b26  +....%......WI.&
0000020: 1048 4cff ff80 8199 8159 714f 6159 4559  .HL......YqOaYEY
0000030: 3159 a94f 0101 863d 00c0 5100 3040 40a0  1Y.O...=..Q.0@@.
0000040: 1300 680e 1100 001e 0000 00ff 0033 3139  ..h..........319
0000050: 3030 3433 3030 3737 330a 0000 00fd 0032  004300773......2
0000060: a01e 6114 000a 2020 2020 2020 0000 00fc  ..a...      ....
0000070: 0047 3930 6d62 0a20 2020 2020 2020 00ba  .G90mb.       ..

Fonte: Extrair número de série do monitor / Data de fabricação Usando o EDID? .

Referências

por 09.02.2014 / 17:45
11

A saída de xrandr --props contém sequências EDID hexadecimais para cada exibição conectada de maneira menos detalhada. Aqui está um script Python simples explorando isso para pegar um EDID para um monitor conectado específico.

Eu não encontrei nenhuma outra ferramenta de CLI distribuída por distro que trabalhe para extração de EDID em meu sistema baseado em NVidia, mas a maioria das ferramentas para analisar um EDID binário parece funcionar bem.

    
por 27.01.2016 / 02:41
6

Se você estiver usando um arco x86 ou powerpc, poderá usar read-edid . No debian, está disponível aqui .

O uso é simplesmente (você precisa ser root):

$ sudo get-edid > /tmp/edid

e, em seguida, analise a estrutura:

$ parse-edid < /tmp/edid
Checksum Correct

Section "Monitor"
    Identifier "HP v220"
    ModelName "HP v220"
    VendorName "HWP"
    # Monitor Manufactured week 13 of 2008
    # EDID version 1.3
    # Analog Display
    DisplaySize 470 300
    Gamma 2.20
    Option "DPMS" "true"
    Horizsync 30-81
    VertRefresh 56-76
    # Maximum pixel clock is 160MHz
    #Not giving standard mode: 1152x720, 60Hz
    #Not giving standard mode: 1280x960, 60Hz
    #Not giving standard mode: 1280x1024, 60Hz
    #Not giving standard mode: 1440x900, 60Hz
    #Not giving standard mode: 1600x1000, 60Hz
    #Not giving standard mode: 1680x1050, 60Hz
    Modeline    "Mode 0" -hsync +vsync 
EndSection

Geralmente isso é combinado em:

$ sudo get-edid | parse-edid

Veja também aqui sobre como passar esse arquivo edid personalizado para sua placa gráfica usando:

  • CustomEDID ou
  • drm_kms_helper.edid_firmare
por 14.11.2016 / 12:26
0

Uma versão recente de uma ferramenta chamada edid-decode pode analisar informações EDID e pode ler e gravar arquivos EDID binários e de texto. Ele funciona bem na saída de xrandr --verbose . Por exemplo, ele pode ser usado para salvar o EDID em um arquivo binário:

xrandr --verbose | edid-decode - /file/to/save

A versão do edid-decode que vem com o Fedora 27 (package: xorg-x11-utils) é muito antiga e não funciona perfeitamente. Eu usei a mais versão recente .

    
por 19.09.2018 / 22:29

Tags