4.20、modetest
(调试 DRM
)
modetest
是 libdrm
提供的一个测试工具,用于调试 DRM(Direct Rendering Manager) 设备,它能够列出可用的显示设备、模式信息,并支持设置显示模式、显示图像等功能。
- 检测并列出可用的显示设备、分辨率模式。
- 手动设置分辨率,验证是否能正确显示。
- 进行显示相关的调试,如
dmesg
错误排查。
4.20.1、modetest
配置
在 Ubuntu/Debian 系统上,可以使用以下命令安装:
sudo apt install libdrm-tests
安装后,modetest
命令即可使用。
如果在 Buildroot 环境中,可以在配置 Buildroot 时启用 libdrm
的 modetest
工具支持。
Target packages ---> Libraries --->
[*] libdrm
4.20.2、modetest
基本用法
4.20.2.1、列出所有 DRM
设备信息
modetest -c
该命令会列出所有可用的 CRTC
(显示控制器) 和 Connector
(显示连接器),包括支持的分辨率、刷新率、属性等信息。
示例输出:
Encoders:
id crtc type possible crtcs possible clones
32 0 DPMS 0x00000001 0x00000000
Connectors:
id encoder status name size(mm) modes encoders
33 32 connected HDMI-A-1 530x300 4 32
其中:
Connectors
部分显示当前连接的显示设备(如 HDMI、eDP、LVDS)。Modes
表示当前接口支持的显示模式。
4.20.2.2、显示支持的模式
modetest -p
该命令会打印出所有支持的模式,显示分辨率、刷新率、像素时钟等信息。
4.20.3、 modetest
进行模式设置
4.20.3.1、设置分辨率和刷新率
可以使用 -s
选项设置某个显示接口的分辨率和刷新率:
modetest -s <connector_id>:<width>x<height>@<refresh_rate>
示例:
modetest -s 33:1920x1080@60
表示将 id=33
的连接器设置为 1920x1080
分辨率,刷新率 60Hz
。
如果不指定刷新率,系统会选择默认支持的模式:
modetest -s 33:1920x1080
4.20.3.2、设置显示图片(测试显示输出)
modetest
还支持在屏幕上绘制测试图像。例如:
modetest -v -s 33:1920x1080
会在 1920x1080
屏幕上显示一个测试图像(常见是红绿蓝色块)。
4.20.4、modetest
高级用法
4.20.4.1、只列出当前可用的连接器
modetest -c
可以仅查看连接器的信息,帮助快速查找 connector_id
。
4.20.4.2、列出所有 CRTC
modetest -C
该命令可以列出所有 CRTC
及其支持的特性,例如支持的最大分辨率、扫描方式等。
4.20.4.3、列出所有 Planes
(图层)
modetest -P
该命令用于列出所有可用的 Plane
(DRM
里的图层概念),不同的 Plane
可以用于合成多个图像层,例如实现视频叠加。
4.20.4.4、详细模式信息(用于调试)
modetest -D /dev/dri/card0 -c -m
其中:
-D
选项用于指定DRM
设备(默认/dev/dri/card0
)。-m
选项会列出所有支持的显示模式(包括像素时钟、同步信号等参数)。