Detectando monitores na máquina sobre conexão ssh local

5

Eu preciso escrever um script para verificar coisas relacionadas a vídeos em máquinas na rede local, por exemplo,

  • Um monitor está conectado?
  • Os drivers de vídeo estão atualizados e são apropriados para o hardware?
  • O Xorg está rodando?

No entanto, estou tendo problemas para encontrar uma maneira confiável de saber se um monitor está conectado a uma conexão ssh local. Por exemplo, se eu fizer ssh da máquina A em outra máquina B que esteja na mesma sub-rede, a ferramenta xrandr retornará informações sobre o monitor conectado à máquina A em vez da máquina B. Já experimentei várias outras ferramentas, mas todas o mesmo efeito. Como posso ter certeza de que estou testando o monitor conectado à máquina que estou conectada em vez da máquina onde estou executando a sessão do shell?

    
por jayhendren 19.03.2013 / 16:45

2 respostas

7

Desative o encaminhamento do X11 (usando -x para ssh ) e defina a variável de ambiente DISPLAY para a máquina B. Por exemplo, isso informará as configurações para: 0 na máquina B:

ssh -x machineB
DISPLAY=:0 xrandr
    
por 19.03.2013 / 16:53
1

Uma ferramenta chamada "get-edid" permite que você leia as informações de identificação do site de leitura e edição do monitor. Dados de identificação de exibição estendidos

e "parse-edid" criam a partir do get-edid, a seção correta do monitor X config:

exemplo na minha máquina:

# get-edid | parse-edid 
parse-edid: parse-edid version 2.0.0
get-edid: get-edid version 2.0.0

Performing real mode VBE call
Interrupt 0x10 ax=0x4f00 bx=0x0 cx=0x0
Function supported
Call successful

VBE version 300
VBE string at 0xc01f0 "ATI ATOMBIOS"

VBE/DDC service about to be called
Report DDC capabilities

Performing real mode VBE call
Interrupt 0x10 ax=0x4f15 bx=0x0 cx=0x0
Function supported
Call successful

Monitor and video card combination does not support DDC1 transfers
Monitor and video card combination supports DDC2 transfers
0 seconds per 128 byte EDID block transfer
Screen is not blanked during DDC transfer

Reading next EDID block

VBE/DDC service about to be called
Read EDID

Performing real mode VBE call
Interrupt 0x10 ax=0x4f15 bx=0x1 cx=0x0
Function supported
Call successful

parse-edid: EDID checksum passed.

# EDID version 1 revision 3
Section "Monitor"
# Block type: 2:0 3:fd
# Block type: 2:0 3:fc
Identifier "Acer H233H"
VendorName "ACR"
ModelName "Acer H233H"
# Block type: 2:0 3:fd
HorizSync 30-83
VertRefresh 56-75
# Max dot clock (video bandwidth) 170 MHz
# Block type: 2:0 3:fc
# Block type: 2:0 3:ff
# DPMS capabilities: Active off:yes  Suspend:no  Standby:no

Mode    "1920x1080" # vfreq 60.000Hz, hfreq 67.500kHz
    DotClock    148.500000
    HTimings    1920 2008 2052 2200
    VTimings    1080 1084 1089 1125
    Flags   "+HSync" "+VSync"
EndMode
# Block type: 2:0 3:fd
# Block type: 2:0 3:fc
# Block type: 2:0 3:ff
EndSection

Você deve ser a raiz para usá-los. Nada está escrito em /etc/X11/xorg.conf

    
por 21.04.2013 / 12:05