modetest -c 指令详解:看懂显示接口、连接状态与分辨率

一、modetest -c 到底有什么作用?

(一)先认识 modetest

modetest 是 libdrm 中的显示调试工具。DRM 可以理解为 Linux 内核管理显卡和显示设备的框架;KMS 负责显示模式设置,例如分辨率、刷新率和输出通路。

如果把显示系统比作一条送货路线,连接器(Connector)就是画面送往屏幕的"出口"。HDMI、DP、eDP、DSI 等都可能对应连接器;它既可能是外接插口,也可能是设备内部连接屏幕的接口。

(二)-c 表示列出连接器

复制代码
modetest -c

-c 的含义是 list connectors。它主要输出三类信息:连接器概况、可用显示模式(modes)、连接器属性(props)。这些内容来自所选 DRM 设备的驱动报告,而不是桌面设置界面的汇总。1

单独执行 -c 是查询操作,不会主动设置分辨率,也不会自动显示测试图案。若要执行模式设置测试,需要另用 -s 等参数。

二、怎样执行这条指令?

(一)先查询,再按需要处理权限

复制代码
# 查看连接器
modetest -c

# 如果提示权限不足,并且你有管理权限
sudo modetest -c

不必一开始就加 sudo。是否需要提权取决于设备节点权限和运行环境。如果提示找不到命令,先确认系统是否安装或构建了包含 modetest 的 libdrm 工具;不同发行版的包名可能不同。

(二)多显卡或开发板上,明确查询对象

复制代码
# 查看 DRM 设备节点
ls -l /dev/dri/

# 指定设备;card0 只是示例,请按实际节点修改
modetest -D /dev/dri/card0 -c

# 指定 DRM 驱动;rockchip 只是示例
modetest -M rockchip -c

-D 选择设备,-M 选择驱动。如果机器上有多个 DRM 设备,默认打开的设备未必连接着目标屏幕。查询显示输出应选对应的 card* 节点;renderD* 节点不用于这类 KMS 连接器查询。参数支持情况以本机 modetest 的帮助输出为准。

三、如何看懂 Connectors 输出?

(一)先看一段简化示例

下面的数据是教学示例,不是实际设备日志;为便于阅读,省略了详细时序和属性。不同版本的排版也可能有差异。

复制代码
Connectors:
id  encoder  status        name      size (mm)  modes  encoders
32  31       connected     HDMI-A-1  520x290    2      31
45  0        disconnected  DP-1      0x0        0      44

 modes:
   #0 1920x1080 60.00 ... flags: phsync, pvsync; type: preferred, driver
   #1 1280x720  60.00 ... flags: phsync, pvsync; type: driver

(二)各列分别代表什么?

字段 通俗解释
id 连接器的 DRM 对象 ID。后续测试可能使用这个编号;不要把它当作固定的硬件端口号。
encoder 当前关联的编码器 ID。为 0 表示当前没有关联编码器,不能单凭它认定接口损坏。
status 驱动报告的连接状态:connected、disconnected 或 unknown。
name 连接器名称,如 HDMI-A-1、DP-1、eDP-1、DSI-1。
size (mm) 报告的物理宽高,单位是毫米,不是分辨率。0x0 可能只是没有有效尺寸信息。
modes 列出的显示模式数量,不是显示器数量。
encoders 该连接器可使用的编码器 ID 列表,与前面的当前 encoder 含义不同。

(三)connected 是否等于屏幕已经亮了?

不能画等号。 connected 表示驱动报告连接器已连接,并不保证整条显示通路已经启用、画面已经送出或背光已经打开。固定连接的内置屏,其状态也可能由驱动直接确定。

disconnected 表示当前未检测到连接;unknown 表示驱动无法确定连接状态。它们都需要结合接口类型和现场情况判断,不能只凭一个状态词下结论。

四、如何理解 modes 和 props?

(一)modes 是可选模式,不是当前模式

1920x1080 是模式名称,通常对应宽高;60.00 是刷新率,单位 Hz。带有 preferred 的模式表示首选模式,常用作默认选择的参考,但不代表当前一定正在使用它。

后面的 hdisp、hss、hse、htot 和对应的纵向字段描述有效像素、同步位置及总时序。有些版本还打印像素时钟数值,单位为 kHz。初学者先关注分辨率、刷新率和 preferred 即可;排查屏幕时序问题时,再逐项核对。

可用模式可能来自 EDID、固定面板配置或驱动提供的其他信息,并经过驱动检查。列表中有某个模式,不保证后续设置一定成功,还可能受显示通路组合等条件限制。要了解当前显示配置,可进一步查看 modetest -p 中的 CRTC 信息及相关属性。2

(二)props 是接口的附加信息

props 可以理解为连接器的"属性清单"。常见属性包括 EDID、DPMS、link-status 和 CRTC_ID;具体有哪些,取决于驱动及查询方式。

EDID 类似显示器的"说明书",保存设备身份及显示能力信息。modetest 通常以十六进制数据展示 EDID blob,并不会直接把它整理成完整的中文说明。内置面板可能没有 EDID;因此,缺少 EDID 不能直接判定屏幕异常。

属性里的 enums 是枚举值对照,value 才是报告的值。例如看到 Good=0 Bad=1 时,应再看 value 是多少。即使 link-status 为 Good,也不能单独证明画面已正常显示。

五、实际排查时应该怎样使用?

(一)按照"设备 → 接口 → 状态 → 模式"检查

  1. **确认 DRM 设备:**先确保查询的是目标显卡或显示控制器。
  2. **找到目标接口:**对照 HDMI-A-1、DP-1 或 DSI-1 等名称。
  3. **查看连接状态:**外接屏可比较插拔前后的输出。
  4. **查看模式列表:**确认是否包含所需分辨率和刷新率。
  5. **继续检查显示通路:**若已连接但黑屏,再查看 CRTC、Plane、驱动日志及屏幕供电、背光等情况。

(二)常见现象与下一步

现象 建议检查方向
找不到目标连接器 先检查是否选错 DRM 设备,再检查驱动是否已加载并注册该输出。
外接屏显示 disconnected 检查线缆、显示器电源、输入源和转接器;结合热插拔及驱动日志判断。
connected,但 modes 为 0 检查模式获取与验证过程;外接屏关注 EDID/DDC,固定面板关注配置时序和驱动。
列表缺少目标分辨率 检查显示器能力、转接链路及驱动筛选条件,不要只看显示器宣传参数。
connected 且有模式,仍然黑屏 继续检查通路是否启用、帧缓冲是否有效,以及链路、供电和背光状态。

这些是排查方向,不是仅凭 -c 输出就能确定的故障原因。

(三)保存日志,方便对比

复制代码
# 保存查询结果和错误信息
modetest -D /dev/dri/card0 -c > modetest-connectors.txt 2>&1

# 同时查看连接器、编码器、CRTC 和 Plane
modetest -D /dev/dri/card0 -c -e -p

建议分别保存插屏前、插屏后和异常发生时的结果。对比状态、模式数量和属性变化,比只看一次输出更容易找到线索。

六、记住这几个要点

(一)最常见的三个误区

  • **误区一:-c 会点亮屏幕。**它用于查询,设置模式另有参数。
  • **误区二:connected 就说明显示正常。**连接检测与实际出图是不同环节。
  • **误区三:modes 就是当前分辨率。**它列出可选模式,当前状态需要进一步查看。

(二)一句话记忆

modetest -c 就像查看显示出口的登记表:先看有哪些出口,再看是否连接,最后看驱动给出了哪些可选显示模式。

七、参考资料

(一)源码与内核文档

1 libdrm modetest 源码(Android 源码树):参见 usage、dump_connectors、dump_mode。

2 Linux 内核 DRM/KMS 文档:参见连接器、模式与标准连接器属性。

相关推荐
微帧Visionular21 小时前
AI视频单帧清晰,播放时却闪烁,原因是什么?
人工智能·深度学习·音视频
辰辰观影1 天前
Windows网盘视频播放器推荐:无广告4K HDR怎么选
音视频
2601_966827451 天前
电视端云盘在线播放怎么选?支持4K HDR的应用推荐
音视频
开开心心就好1 天前
音频降噪剪辑工具,音量裁剪一键处理
运维·服务器·前端·spring·ocr·音视频·1024程序员节
AI视频工具指南1 天前
AI视频的声音和画面怎么配合?先分清谁在传递信息
人工智能·aigc·音视频
辰辰观影1 天前
无广告播放器推荐来啦
音视频
TrueDei1 天前
GStreamer 使用 valve 分别控制音视频流的暂停与恢复
音视频
一条破秋裤1 天前
基于 Hi3516CV610 的立定跳远视频测量系统调研与实施方案
arm开发·音视频
2601_966827451 天前
视频里的特效字幕怎么翻译?外挂字幕与AI字幕一键处理教程
音视频
八月的雨季 最後的冰吻1 天前
音视频面试--延迟优化
面试·职场和发展·音视频