项目简介
本项目是一个用于测试和调试Linux KMS(Kernel Mode Setting)图形驱动和硬件设备的命令行程序。借助C++语言编写,依赖libdrm、xf86drm等特定库与KMS硬件接口交互,为开发者提供强大工具集,用于深入了解KMS驱动和硬件设备行为,帮助调试和优化图形性能。
项目的主要特性和功能
- 工具多样:包含kmstest、kmsprint、kmsview、kmscube、kmscapture等实用工具,可进行模式设置、信息打印、图像查看、3D立方体显示、视频捕获等操作。
- 功能丰富:能获取并打印DRM设备信息,设置和测试显示模式,创建和显示帧缓冲区,进行页面翻转操作,捕获视频流。
- 支持Python绑定:方便开发者使用Python进行相关操作。
- 可配置性强:支持多种编译选项和运行时环境变量,可灵活控制构建和运行行为。
安装使用步骤
前提条件
确保已安装依赖库: - libdrm - Python 3.x(用于Python绑定)
编译项目
构建Python绑定
bash
git submodule update --init
常规编译
bash
mkdir build
cd build
cmake ..
make -j4
交叉编译(以buildroot为例)
bash
mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=<buildrootpath>/output/host/usr/share/buildroot/toolchainfile.cmake ..
make -j4
编译选项
可使用以下cmake标志控制编译: | 选项名称 | 取值 | 默认值 | 说明 | | -------------------- | -------------- | ------------- | ---- | | CMAKE_BUILD_TYPE | Release/Debug | Release | | | BUILD_SHARED_LIBS | ON/OFF | OFF | | | KMSXX_ENABLE_PYTHON | ON/OFF | ON | | | KMSXX_ENABLE_KMSCUBE | ON/OFF | OFF | | | KMSXX_PYTHON_VERSION | python3/python2 | python3;python2 | Python pkgconfig文件的名称 |
运行时环境变量
可使用以下运行时环境变量控制kms++的行为: | 变量名 | 描述 | | -------------------------------- | ---- | | KMSXX_DISABLE_UNIVERSAL_PLANES | 设置后禁用通用平面的使用 | | KMSXX_DISABLE_ATOMIC | 设置后禁用原子模式设置的使用 | | KMSXX_DEVICE | 要使用的卡设备节点的路径 | | KMSXX_DRIVER | 要使用的驱动程序名称,格式为 "drvname" 或 "drvname:idx" |
运行Python代码
可通过定义PYTHONPATH环境变量直接从构建目录运行Python代码,例如:
bash
PYTHONPATH=build/py py/tests/hpd.py
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】