Exibir informações do monitor via linha de comando

26

Existe uma maneira de consultar as informações do monitor na linha de comando? Por exemplo, obtenha o modelo de monitor, semelhante, por exemplo, ao que lspciacontece com informações sobre placas gráficas ou se está atualmente ligado ou desligado, coisas assim.

Se possível, que tipos de informações básicas, como as descritas acima, podem ser facilmente coletadas? Por exemplo, é possível determinar se o monitor está na posição retrato ou paisagem? Ou se tem alto-falantes embutidos ou não?

Linha de comando é a preferência, mas se houver um método GUI, também gostaria de ouvir sobre ele.

icyrock.com
fonte
Qual GPU você tem?
Thom
02: 00.0 VGA controlador compatível: Advanced Micro Devices [AMD] nee ATI Madison [Mobility Radeon HD 5650/5750 / 6550M]
icyrock.com
talvez você tenha mais sorte com: sudo apt-get install xresprobee executarsudo ddcprobe
Thom

Respostas:

14
$ grep "NVIDIA(GPU-0)" /var/log/Xorg.0.log |head -17| cut -d\: -f2
 Display (Samsung SA300/SA350 (DFP-0)) does not support NVIDIA
     3D Vision stereo.
 The EDID for Samsung SA300/SA350 (DFP-0) contradicts itself
     mode "1920x1080" is specified in the EDID; however, the
     EDID's valid VertRefresh range (56.000-75.000 Hz) would
     exclude this mode's VertRefresh (50.0 Hz); ignoring
     VertRefresh check for mode "1920x1080".
 The EDID for Samsung SA300/SA350 (DFP-0) contradicts itself
     mode "1280x720" is specified in the EDID; however, the
     EDID's valid VertRefresh range (56.000-75.000 Hz) would
     exclude this mode's VertRefresh (50.0 Hz); ignoring
     VertRefresh check for mode "1280x720".
 The EDID for Samsung SA300/SA350 (DFP-0) contradicts itself
     mode "720x576" is specified in the EDID; however, the
     EDID's valid VertRefresh range (56.000-75.000 Hz) would
     exclude this mode's VertRefresh (50.0 Hz); ignoring
     VertRefresh check for mode "720x576".
thom
fonte
primeira linha é o comando Observe que essa não é a maneira oficial de obter informações do fornecedor / modelo do monitor (mas, tragicamente, geralmente é a única maneira), também depende do fornecedor da GPU.
Thom
2
Obrigado - olhando /var/log/Xorg.0.logrealmente ajuda - é uma pena que este seja o único caminho.
Icyrock.com
Eu encontrei um howto: wiki.xbmc.org/…
thom
Obrigado pelo link, isso parece interessante - eu vou dar uma olhada.
Icyrock.com 07/11/13
30

Sim, existe uma ferramenta de coleta de informações de hardware com leitura de edid para monitores VESA PnP . Essa ferramenta possui dois comandos: get-edide parse-edid: ferramentas para recuperar e interpretar as especificações do monitor usando o protocolo VESA VBE DDC . EDID ( Dados estendidos de identificação de exibição ) é um formato de metadados para os dispositivos de exibição descreverem seus recursos em uma fonte de vídeo.

Primeiro:

sudo apt-get install read-edid

Então tente:

sudo get-edid | parse-edid
thom
fonte
1
Obrigado thom - você pode esclarecer como posso obter o modelo do monitor usando get-edid/ parse-edid? Quando executei o procedimento acima, ele não imprimiu nada (nem mesmo na Seção "Monitor") que seria semelhante ao fabricante / modelo do meu monitor. Se estiver tudo bem com você, você pode colar o que recebe na sua máquina e o modelo de monitor que possui, apenas para comparação?
Icyrock.com
Identificador "\ QX: 2d40" Nome do fornecedor "\ QX" ModelName "\ QX: 2d40" Devo dizer que o EDID do meu monitor é um buggy pra caramba. De modo que não é realmente representativo :-)
Thom
Obrigado thom - parece semelhante do meu lado ModelName "LGD:8902":, parece que é representativo depois de tudo :) Além disso, ele exibe apenas o monitor do meu laptop, mas não o externo.
Icyrock.com
Muitos EDIDs são de buggy. Os fabricantes não se importam e os desenvolvedores de drivers estão trabalhando principalmente em soluções alternativas. As melhores informações são provenientes de videodrivers de código fechado. Eu extraí-lo como este: grep "Display" /var/log/Xorg.0.log |tail -1para informações extensa eu usogrep "NVIDIA(GPU-0)" /var/log/Xorg.0.log
Thom
10

Se get-edidnão mostrar todos os monitores. Como o meu, eu tenho:

$ lshw -c display
  *-display               
       description: VGA compatible controller
       product: 3rd Gen Core processor Graphics Controller
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 09
       width: 64 bits
       clock: 33MHz
       capabilities: vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:27 memory:f6400000-f67fffff memory:e0000000-efffffff ioport:f000(size=64)

get-edid mostra apenas o monitor externo que está conectado à porta VGA.

  1. Instalar read-edid

    sudo apt-get install read-edid
    
  2. Leia as informações edid diretamente do sysfs deve mostrar todos os monitores

    ls /sys/class/drm/*/edid | xargs -i{} sh -c "echo {}; parse-edid < {}"
    
user.dz
fonte
8

Experimentar

xrandr

(Eu usei o programa uma vez quando estava jogando com a configuração de dois monitores no Archlinux.)

Você pode encontrá-lo no x11-server-utilspacote. Esse pacote contém outras coisas para brincar, como:

  • iceauth, uma ferramenta para manipular registros de autorização de protocolo ICE;
  • rgb;
  • sessreg, um programa simples para gerenciar entradas utmp / wtmp;
  • xcmsdb, um utilitário de característica de cor do dispositivo para o X Color Management System;
  • xgamma, uma ferramenta para consultar e configurar a correção gama de um monitor;
  • xhost, um programa muito perigoso que você nunca deve usar;
  • xmodmap, um utilitário para modificar mapas de teclas e mapeamentos de botões de ponteiro no X;
  • xrandr, uma interface de linha de comando para a extensão RandR;
  • xrdb, uma ferramenta para gerenciar o banco de dados de recursos do servidor X;
  • xrefresh, uma ferramenta que força o redesenho da tela X;
  • xset, uma ferramenta para definir diversos parâmetros do servidor X;
  • xsetmode e xsetpointer, ferramentas para manipular dispositivos de entrada X;
  • xsetroot, uma ferramenta para personalizar a aparência da janela raiz;
  • xstdcmap, um utilitário para definir seletivamente as propriedades padrão do mapa de cores;
  • xvidtune, uma ferramenta para personalizar modelos de servidor X para o seu monitor. (informações encontradas no gerenciador de pacotes sinápticos)

fonte
2
Obrigado Frank - você pode esclarecer como obtenho o modelo de monitor usando xrandr?
Icyrock.com
ahah nunca usa xhost? por isso
Jack
0

xrandr, xrandr --prope xrandr --verbosefornecerá algumas informações com diferentes níveis de detalhes.

As informações fornecidas pelo fabricante podem ser encontradas no formato EDID .

Para obter e decodificar o EDID, verifique primeiro a xrandrsaída para descobrir a interface usada (por exemplo, eDP-1) e apt install edid-decode, em seguida:

cat /sys/class/drm/card0-eDP-1/edid | edid-decode

Exemplo de saída que você pode encontrar aqui . Substitua eDP-1por sua interface, se necessário.

Como alternativa, xrandr --propgera EDID em formato hexadecimal que você pode alimentar com esse decodificador EDID online .

Não recomendo usar o read-edidpacote porque tive experiências negativas com ele (versão 3.0.2). No meu caso, get-edidgera caracteres adicionais após o final que levam a um aviso edid-decodee parse-edidproduz lixo aleatório nos campos ModelNamee Identifier.

do utilizador
fonte