ZHCAE45 June   2024 AM625 , AM67A , AM68A , AM69A , DRA829J , DRA829J-Q1 , DRA829V , DRA829V-Q1 , TDA4AEN-Q1 , TDA4AH-Q1 , TDA4AL-Q1 , TDA4AP-Q1 , TDA4APE-Q1 , TDA4VL-Q1 , TDA4VM , TDA4VP-Q1 , TDA4VPE-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
  5. 2图形应用程序的常见问题
    1. 2.1 系统或应用程序冻结
      1. 2.1.1 典型内核紧急日志
    2. 2.2 屏幕撕裂
    3. 2.3 屏幕上出现伪影或损坏
    4. 2.4 空白屏幕
    5. 2.5 低帧速率
    6. 2.6 GPU 驱动程序日志和硬件恢复
      1. 2.6.1 典型 GPU HWR 日志
  6. 3图形问题支持流程
    1. 3.1 提交初步描述
    2. 3.2 确定问题是否可在 TI EVM 上重现
    3. 3.3 提供跟进测试和日志
  7. 4用于调试 GPU 驱动程序的工具
    1. 4.1 Linux® DebugFS 中的驱动程序状态
    2. 4.2 驱动程序 AppHints
    3. 4.3 PVR 日志转储收集
    4. 4.4 将日志组添加到固件跟踪
    5. 4.5 在硬件恢复后禁用驱动程序
    6. 4.6 禁用自动加载 GPU 驱动程序
  8. 5集成打补丁后的 GPU 驱动程序
    1. 5.1 UM 库安装
    2. 5.2 KM 库安装
    3. 5.3 安装后步骤
  9. 6总结

KM 库安装

KM 驱动程序在 TI SDK 中的以下目录下提供:ti-processor-sdk-linux-adas-j721s2-evm-09_02_00_05/board-support/extra-drivers/ti-img-rogue-driver-23.3.6512818

该驱动程序还发布在 TI 的公共资源库中:https://git.ti.com/cgit/graphics/ti-img-rogue-driver/

可以从 TI 的 SDK 编译基础架构中提取编译指令,但为了清晰起见,这里添加了编译说明。可以在 Shell 中设置或者 在 make 命令上传递的环境变量如下所示:

表 5-1 编译 KM 驱动程序的环境变量
环境变量名称说明
ARCHarm64目标 CPU 的架构
CROSS_COMPILEaarch64-none-linux-gnu-正在使用的交叉编译器
KERNELDIR<系统上 Linux 内核的绝对路径>Linux 内核源目录的路径
RGX_BVNC36.53.104.796 — TDA4VL、TDA4VH、TDA4AEN、AM62P
22.104.208.318 — TDA4VM
33.15.11.3 — AM62x
要使用的 GPU 版本,特定的硬件版本
BUILD释放或调试要使用的编译配置文件
PVR_BUILD_DIR<soc>_linux要在驱动程序中使用的编译目录,每个 SOC 各一个目录
WINDOW_SYSTEMlws-generic要使用的 Windows 系统,在 SDK 9.0 之后仅支持 lws-generic。

设置好这些变量后,make 命令应该会起作用。将会在 SDK 中的 ti-processor-sdk-linux-adas-j721s2-evm-09_02_00_05/board-support/extra-drivers/ti-img-rogue-driver-23.3.6512818/build/linux/j721s2_linuxti-img-rogue-driver/build/linux/j721s2_linux(如果已手动克隆)中进行编译。

要在目标文件系统上安装,SDK 会从 create binary 目录中运行以下 make 命令:binary_j721s2_linux_wayland_release/target_aarch64/kbuild

make -C ${LINUXKERNEL_INSTALL_DIR} INSTALL_MOD_PATH=${DESTDIR} INSTALL_MOD_STRIP=${INSTALL_MOD_STRIP} M=`pwd` modules_install

如果是从 build 目录安装,则需要下列一个或多个环境变量: DISCIMAGE=<path-to-rootfs-root-directory>

示例:

export DISCIMAGE=/media/user/rootfs

sudo -E env PATH=$PATH make install

安装 KM 库的另一种方法是使用 output 目录中的 install.sh 脚本:

示例:

cd binary_j721s2_linux_lws-generic_release

sudo ./install.sh --root <path-to-rootfs-directory>

注: 如果您重新编译 Linux 内核,版本可能会发生变化,并且必须重新安装 GPU 内核驱动程序。

在重新编译 Linux 内核时,如果 Linux 内核版本发生变化,请务必检查是否重新编译并重新安装 GPU 内核驱动程序。最值得注意的是,当安装 Linux 内核模块时,会在文件系统中创建一个文件夹,例如 /lib/modules/6.1.80-ti-g2e423244f8c0。修改内核通常会引入后缀 -dirty,这会导致创建新的 modules 目录。因此,GPU 内核驱动程序也必须重新安装到新的内核模块目录中。

示例:为 AM62 手动编译 GPU 内核驱动程序

make \ ARCH=arm64 CROSS_COMPILE=/home/toolchains/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- \ KERNELDIR=/home//am625_sdk/ti-processor-sdk-linux-am62xx-evm-09.01.00.08/board-support/ti-linux-kernel-6.1.46+gitAUTOINC+247b2535b2-g247b2535b2 \ BUILD=release PVR_BUILD_DIR=am62_linux

示例:手动安装 GPU 内核驱动程序

cd binary_j721s2_linux_lws-generic_release
sudo install.sh -root <path to rootfs>