내가 뭘 한거지:
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
그런 다음 HDMI 케이블을 분리했습니다. 확인해 보니
/sys/class/drm/card0-HDMI-A-2/status
여전히connected
.- 지금 다시 실행 하면
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 케이블을 컴퓨터에 연결한 직후에 나타나지만 마지막 두 줄은 xrandr
3단계에서 언급한 명령을 실행할 때만 나타납니다.
도움이 된다면 제 커널 버전은 다음과 같습니다.
Linux archy 4.8.13-1-ARCH #1 SMP PREEMPT Fri Dec 9 07:24:34 CET 2016 x86_64 GNU/Linux