Monitor desconectado ainda é relatado como conectado

1

O que eu fiz:

  1. Conecte um monitor via HDMI. A saída de xrandr é a esperada:

    Screen 0: minimum 8 x 8, current 3840 x 1080, maximum 32767 x 32767
    eDP1 connected primary 1920x1080+1920+0 (normal left inverted right x axis y axis) 310mm x 170mm
       1920x1080     60.01*+
       1400x1050     59.98  
       1600x900      60.00  
       1280x1024     60.02  
       1280x960      60.00  
       1368x768      60.00  
       1280x720      60.00  
       1024x768      60.00  
       1024x576      60.00  
       960x540       60.00  
       800x600       60.32    56.25  
       864x486       60.00  
       640x480       59.94  
       720x405       60.00  
       640x360       60.00  
    DP1 disconnected (normal left inverted right x axis y axis)
    DP2 disconnected (normal left inverted right x axis y axis)
    HDMI1 disconnected (normal left inverted right x axis y axis)
    HDMI2 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 530mm x 300mm
       1920x1080     60.00*+  50.00    59.94  
       1680x1050     59.88  
       1600x900      60.00  
       1280x1024     75.02    60.02  
       1440x900      59.90  
       1280x800      59.91  
       1152x864      75.00  
       1280x720      60.00    50.00    59.94  
       1024x768      75.03    70.07    60.00  
       832x624       74.55  
       800x600       72.19    75.00    60.32    56.25  
       720x576       50.00  
       720x480       60.00    59.94  
       640x480       75.00    72.81    66.67    60.00    59.94  
       720x400       70.08  
    VIRTUAL1 disconnected (normal left inverted right x axis y axis)
    

    O arquivo /sys/class/drm/card0-HDMI-A-2/status , que corresponde ao monitor conectado, contém a palavra connected (como esperado).

  2. Em seguida, desconectei o cabo HDMI. Quando eu verifico /sys/class/drm/card0-HDMI-A-2/status , ele ainda contém connected .

  3. Agora, quando executo xrandr novamente, ele redefine minha configuração e o arquivo é atualizado para refletir o status correto, ou seja, disconnected .

Minha pergunta: Como posso corrigir o comportamento, para que o sistema de arquivos / sys reflita o status corretamente assim que o cabo for desconectado? E não preciso chamar xrandr para iniciar a atualização.

Pergunta alternativa: O que o xrandr está fazendo, que causa a atualização do sistema de arquivos / sys? Desta forma eu poderia talvez escrever um pequeno script que periodicamente provoca a atualização.

Durante esse período, também dei uma olhada em udevadm monitor :

    monitor will print the received events for:
    UDEV - the event which udev sends out after rule processing
    KERNEL - the kernel uevent

    KERNEL[7260.824844] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
    UDEV  [7260.825690] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
    KERNEL[7280.130646] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
    UDEV  [7280.138375] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)

As duas primeiras linhas apareceram logo após conectar o cabo HDMI ao computador, no entanto, as duas últimas linhas só apareceram quando executei o comando xrandr mencionado na etapa 3.

Se houver alguma ajuda, aqui está a versão do meu kernel:

Linux archy 4.8.13-1-ARCH #1 SMP PREEMPT Fri Dec 9 07:24:34 CET 2016 x86_64 GNU/Linux
    
por ach 24.01.2017 / 17:31

0 respostas