
노트북 덮개를 닫을 때 /etc/acpi
screen()을 끄는 스크립트를 사용하고 있습니다. xset dpms force off
이제 외부 모니터를 연결할 때 다르게 동작하도록(밝기를 0으로 설정) 원합니다. 연결되는지 테스트할 수 있다는 것을 알고 있지만 xrandr
스크립트는 루트에 의해 실행되고 xrandr은 특정 X 세션에 의존합니다. X 세션에 관계없이 모니터가 연결되어 있는지 루트 테스트할 수 있는 방법이 있습니까? 저는 아치 리눅스를 사용하고 있습니다.
답변1
방법 #1 - edid 디코딩
이를 사용하여 edid-decode
어떤 모니터가 연결되어 있는지 확인할 수 있습니다. 이것은 내 Ubuntu 16.04 시스템에서 가져온 것이지만 Fedora 28 및 CentOS 7.x에서도 작동합니다.
노트:이 특정 시스템에는 두 개의 비디오 포트가 있는데 저는 VGA 포트를 사용했습니다.
이 모니터가 연결되어 있습니다:
$ ls /sys/class/drm/*/edid | xargs -n 1 edid-decode | grep Manufacturer:
Manufacturer: DEL Model a071 Serial Number 844247885
Manufacturer: @@@ Model 0 Serial Number 0
VGA 모니터를 분리하면 이런 일이 발생합니다.
$ ls /sys/class/drm/*/edid | xargs -n 1 edid-decode | grep Manufacturer:
Manufacturer: @@@ Model 0 Serial Number 0
Manufacturer: @@@ Model 0 Serial Number 0
여기에 다시 삽입됩니다.
$ ls /sys/class/drm/*/edid | xargs -n 1 edid-decode | grep Manufacturer:
Manufacturer: DEL Model a071 Serial Number 844247885
Manufacturer: @@@ Model 0 Serial Number 0
방법 #2 - 고양이 sysfs
어떤 디스플레이 포트가 있는지 자세히 살펴보면 /sys
여기에 나열됩니다 /sys/class/drm
.
$ ls /sys/class/drm
card0 card0-DP-1 card0-HDMI-A-1 controlD64 renderD128 version
모니터의 디스플레이 포트는 card0-DP-1
(VGA)와 card0-HDMI-A-1
(HDMI)입니다. 각 디렉토리를 살펴보면 이라는 파일이 있는데, 이 파일을 status
이용하면 cat
해당 포트의 상태와 모니터의 연결 여부를 알 수 있습니다.
위와 동일한 테스트에 다음을 삽입합니다.
$ cat /sys/class/drm/card0-DP-1/status
connected
플러그를 뽑으세요:
$ cat /sys/class/drm/card0-DP-1/status
disconnected