显示器热插拔的检测

来源:互联网 发布:期刊在线阅读系统源码 编辑:程序博客网 时间:2024/05/21 14:46

在X下,检测连接了几个显示器,用命令

  • xrandr -q

但xrandr只能在X起来之后有效,而跟显示器有关的初始化如果在X启动之前就完成的话,就可以缩短界面的启动时间;要做到这一点,首先得知道有几个显示器连着,是单屏还是双屏。

  • 方法是 查看sysfs

在/sys/class/drm/card0-xxxx-d/status里记录着,接口是connected还是disconnected,脚本如下:

functionis_vga () {    if[ "connected"= $(cat/sys/class/drm/card0-VGA-1/status) ];then            echotwo    fi} screennum=0forfile in `ls/sys/class/drm/card0-*-1/status`do    if[ "connected"= $(cat$file) ];then            screennum=$((screennum+1))    fidoneecho screennum:$screennum

看到有人用inotifywait 来监视/sys/class/drm/card0-xxx-1/status,遗憾的是inodify对sys的支持极不可靠,根本无法检测到任何事件,so,还是自己写脚本吧

原创粉丝点击