Monitors
可以root測試是否連接了顯示器嗎?
當我合上筆記型電腦的蓋子時,我使用腳本
/etc/acpi
關閉螢幕 ( )。xset dpms force off
現在我希望它在連接外接顯示器時表現不同(改為將亮度設置為零)。我知道我可以測試它是否與 連接xrandr
,但是腳本是由 root 執行的,並且 xrandr 依賴於某個 X-session。無論 X 會話如何,root 是否有辦法測試監視器是否已連接?我正在使用 Arch Linux。
方法 #1 - edid-decode
您可以使用
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 - cat 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
參考