littlebot
Published on 2025-04-01 / 1 Visits
0

【源码】基于C++的Linux KMS图形测试工具

项目简介

本项目是一个用于测试和调试Linux KMS(Kernel Mode Setting)图形驱动和硬件设备的命令行程序。借助C++语言编写,依赖libdrm、xf86drm等特定库与KMS硬件接口交互,为开发者提供强大工具集,用于深入了解KMS驱动和硬件设备行为,帮助调试和优化图形性能。

项目的主要特性和功能

  1. 工具多样:包含kmstest、kmsprint、kmsview、kmscube、kmscapture等实用工具,可进行模式设置、信息打印、图像查看、3D立方体显示、视频捕获等操作。
  2. 功能丰富:能获取并打印DRM设备信息,设置和测试显示模式,创建和显示帧缓冲区,进行页面翻转操作,捕获视频流。
  3. 支持Python绑定:方便开发者使用Python进行相关操作。
  4. 可配置性强:支持多种编译选项和运行时环境变量,可灵活控制构建和运行行为。

安装使用步骤

前提条件

确保已安装依赖库: - 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】