Monitors

可以root測試是否連接了顯示器嗎?

  • July 23, 2018

當我合上筆記型電腦的蓋子時,我使用腳本/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

參考

引用自:https://unix.stackexchange.com/questions/457763