modetest 是由 libdrm 提供的测试程序,可以查询显示设备的特性,进行基本的显示测试,以及设置显示的模式。
我们可以借助该工具来学习 Linux DRM 应用编程,另外为了深入分析 Rockchip DRM driver,有必要先了解一下这个工具的使用方法和内部实现。
1、开发板:ATK-DLRK3568 开发板
2、环境:ubuntu20.0 正点原子网盘提供的版本
本人没自己编译过,编译过程只供参考,正点的板子自带了
编写一个libdrm的测试程序较为复杂,这里我们使用libdrm官方的测试工具来进行测试,我们可以在这里下载源码并进行交叉编译出测试工具,以供在开发板上使用:?libdrm?.
新版的libdrm使用meson+ninja的构建方式,而不是老版的autotools,没有基础的同学构建新版libdrm会比较痛苦。 建议直接使用我们给大家编译好的测试程序,测试程序位于配套例程?linux_driver/framework_drm/modetest。
如果要自己编译libdrm,可以参考下面命令:
git clone https://gitlab.freedesktop.org/mesa/drm
sudo apt -y install python3-pip cmake git ninja-build
python3 -m pip install meson /*安装之后,重启板卡*/
meson . build && ninja -C build
编译之后在build/tests/modetest/下会有modetest程序, 对libdrm测试程序感兴趣的同学,可以下载libdrm源码解压,在其目录/drm/tests/modetest/下,查看modetest.c文件,此为测试程序源码。
modetest在bin目录下,板子上电后打开终端进入bin目录
?
cd /bin
modetest -h
modetest -M rockchip
参数说明:
-M
:用于指定访问 rockchip DRM driver关键内容:
modetest -M rockchip | cut -f1 | grep -E ^[0-9A-Z]\|id
正点原子的RK3568提供了一路的MIPI DSI 接口,所以测试MIPI
modetest -M rockchip -s 163@115:720x1280