如何为intel图形上的“显示器插入”创建回调?

如何为intel图形上的“显示器插入”创建回调?,第1张

如何为intel图形上的“显示器插入”创建回调?

作为粗略的解决方案,您可以在sysfs上进行轮询。在我的笔记本电脑上,我有:

$ cat /sys/class/drm/card0-LVDS-1/statusconnected$ cat /sys/class/drm/card0-VGA-1/statusdisconnected

我猜这需要内核DRM以及可能的KMS。

要查看是否可以自动触发某些事件,可以运行

udevadm monitor --property
,并观察(断开)显示器的连接,以查看是否报告了事件。

使用radeon时,我第一次连接VGA监视器时会收到一个事件,但随后断开连接和重新连接时没有任何事件。该事件应类似于(以您的为例):

KERNEL[1303765357.560848] change /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)UDEV_LOG=0ACTION=changeDEVPATH=/devices/pci0000:00/0000:00:02.0/drm/card0SUBSYSTEM=drmHOTPLUG=1DEVNAME=dri/card0DEVTYPE=drm_minorSEQNUM=2943MAJOR=226MINOR=0

不幸的是,没有太多可匹配的东西,但是只要图片中只有一张视频卡不太重要即可。查找udev从何处获取系统上的规则(可能是

/etc/udev/rules.d/
),并使用以下
99-monitor-hotplug.rules
命令创建文件:

ACTION=="change", SUBSYSTEM=="drm", ENV{HOTPLUG}=="1", RUN+="/root/hotplug.sh"

udev``hotplug.sh
连接显示器后便会运行。作为测试,我将以下内容放入
/root/hotplug.sh
(不要忘记使此脚本可执行):

#!/bin/shfor output in DVI-I-1 LVDS-1 VGA-1; do        echo $output >> /root/hotplug.log        cat /sys/class/drm/card0-$output/status >> /root/hotplug.logdone

这样,我在

hotplug.log
连接外部显示器后便获得了一个条目。即使过滤了
ACTION=="change"
,我仍然在启动时遇到了一些事件,因此您可能希望在脚本中以某种方式考虑到这一点。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5012315.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存