如何判断HDMI显示器连接是否处于活跃使用状态?
如何判断HDMI显示器连接是否处于活跃使用状态?
刚好我之前也碰到过类似的需求,结合你的环境(Kernel 6.2 + Intel核显 + X11桌面),给你几个实用的命令行方法来判断:
用
xrandr(X11自带工具,无需额外安装):
直接在终端运行xrandr --query,找到你的HDMI输出设备(通常命名为HDMI-1或HDMI-A-1),查看它的状态:- 如果电视正切换到这个HDMI输入,会显示类似
HDMI-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 1000mm x 560mm的内容,这里connected后跟着具体的分辨率参数,说明当前是活跃使用状态; - 如果电视切到了其他输入(比如内置卫星 tuner),可能会显示
HDMI-1 connected (disconnected),或者仅显示connected但没有分辨率信息,这就表示当前HDMI连接未被电视激活。
- 如果电视正切换到这个HDMI输入,会显示类似
查看DRM sysfs节点(更底层的内核级检测):
Intel核显的DRM设备文件在/sys/class/drm/目录下,先通过ls /sys/class/drm/找到对应HDMI的节点(比如card0-HDMI-A-1):- 运行
cat /sys/class/drm/card0-HDMI-A-1/status,输出connected说明物理连接正常;再运行cat /sys/class/drm/card0-HDMI-A-1/enabled,如果输出enabled,就表示当前连接是活跃的; - 另外还可以通过EDID信息辅助判断:运行
cat /sys/class/drm/card0-HDMI-A-1/edid,如果能看到乱码的二进制内容,说明电视在接收信号;如果输出为空,大概率电视没切到这个HDMI输入。
- 运行
关于你问到的HDMI传输速率问题:它并不是一直保持满速的。当电视切换到其他输入时,会停止向电脑发送EDID或反馈信号,电脑检测到显示设备“非活跃”后,通常会降低HDMI链路的功耗,甚至暂停部分信号传输;只有当电视切回这个HDMI输入、重新建立活跃连接后,才会恢复正常的传输速率。
备注:内容来源于stack exchange,提问作者lmoly
相关产品推荐
相关产品推荐

