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
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 命令上传递的环境变量如下所示:
| 环境变量名称 | 值 | 说明 |
|---|---|---|
| ARCH | arm64 | 目标 CPU 的架构 |
| CROSS_COMPILE | aarch64-none-linux-gnu- | 正在使用的交叉编译器 |
| KERNELDIR | <系统上 Linux 内核的绝对路径> | Linux 内核源目录的路径 |
| RGX_BVNC | 36.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_SYSTEM | lws-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_linux 或 ti-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 内核时,如果 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>