Método 1 - edid-decode
Você pode usar edid-decode
para ver quais monitores estão conectados. Isto é de um sistema Ubuntu 16.04 que tenho, mas isso funcionou no Fedora 28 & CentOS 7.x também.
NOTA: Esse sistema em particular tem duas portas de vídeo, estou usando a VGA.
Aqui o monitor está conectado:
$ 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
E aqui é quando eu desconectar o monitor 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
E aqui está plugado de volta:
$ 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
Método # 2 - gato sysfs
Se você procurar por /sys
, as portas de exibição que você tem estão listadas aqui em /sys/class/drm
.
$ ls /sys/class/drm
card0 card0-DP-1 card0-HDMI-A-1 controlD64 renderD128 version
As portas de exibição dos monitores serão card0-DP-1
(VGA) e card0-HDMI-A-1
(HDMI). Se você procurar em cada um desses diretórios, existe um arquivo chamado status
. Se você cat
deste arquivo você pode ver o status da porta e se um monitor está conectado ou não.
O mesmo teste acima, conectado:
$ cat /sys/class/drm/card0-DP-1/status
connected
Desconectado:
$ cat /sys/class/drm/card0-DP-1/status
disconnected