연결이 끊긴 모니터가 여전히 연결된 것으로 보고됩니다.

연결이 끊긴 모니터가 여전히 연결된 것으로 보고됩니다.

내가 뭘 한거지:

  1. HDMI를 통해 모니터를 연결합니다. 출력은 xrandr예상대로입니다.

    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)
    

    연결된 모니터에 해당하는 파일에는 예상대로 /sys/class/drm/card0-HDMI-A-2/status단어가 포함되어 있습니다 .connected

  2. 그런 다음 HDMI 케이블을 분리했습니다. 확인해 보니 /sys/class/drm/card0-HDMI-A-2/status여전히 connected.

  3. 지금 다시 실행 하면 xrandr설정이 재설정되고 파일이 업데이트되어 올바른 상태, 즉 disconnected.

내 질문:케이블이 제거되는 즉시 /sys 파일 시스템이 상태를 올바르게 반영하도록 이 동작을 수정하려면 어떻게 해야 합니까? xrandr업데이트를 시작하기 위해 전화할 필요도 없습니다 .

대체 질문: xrandr/sys 파일 시스템을 업데이트하기 위해 어떤 작업이 수행되고 있습니까? 이렇게 하면 정기적으로 업데이트를 발생시키는 작은 스크립트를 작성할 수 있습니다.

이 기간 동안 나는 또한 다음을 살펴보았습니다 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)

처음 두 줄은 HDMI 케이블을 컴퓨터에 연결한 직후에 나타나지만 마지막 두 줄은 xrandr3단계에서 언급한 명령을 실행할 때만 나타납니다.

도움이 된다면 제 커널 버전은 다음과 같습니다.

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

관련 정보