O que eu fiz:
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).
Em seguida, desconectei o cabo HDMI. Quando eu verifico /sys/class/drm/card0-HDMI-A-2/status
, ele ainda contém connected
.
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