工具与软件:
我最近一直在尝试将我们的构建从 SDK 8迁移到 SDK 10。
我们有一个用于 Linux 的定制 PCI-E 驱动程序、它构建为树外内核模块。
在 SDK 8下、这一切都可以正常运行。 但是、在 SDK 10下、内核 Makefile 安装模块的路径与模块在目标文件系统中的路径不匹配。
在 SDK 8上、路径是 /lib/modules/5.10.153-g90c3a58fd2、这正是内核放置模块的位置。
在 SDK 10上、默认文件系统中的路径(tisdk-adas-image-j721e-evm.tar.xz)为 /lib/modules/6.6.32-ti-gdb8871293143-dirty、这不是内核放置模块的位置。 请注意版本号和 git 散列之间额外的"-ti-"。 内核 Makefile 将模块(并期望查找依赖项和顺序文件)放置在 git 散列之前没有"-ti-"的位置。
对于 J721E 和 J784S4 SDK 都是如此(它们都使用相同的内核版本)。
对于 SDK 8、我们使用:
- TI-PROCESSOR-SDK-RTOS-j721e-evm-08_05_00_11
- TI-PROCESSOR-SDK-RTOS-j784s4-evm-08_06_01_03
- TI-PROCESSOR-SDK-LINUX-J7-EVM-08_05_00_08
- ti-processor-sdk-linux-j784s4-evm-08_06_01_02
对于 SDK 10、我们使用:
- TI-PROCESSOR-SDK-RTOS-j721e-evm-10_00_00_05
- TI-PROCESSOR-SDK-RTOS-j784s4-evm-10_00_00_05
- TI-PROCESSOR-SDK-LINUX-ADAS-j721e-evm-10_00_00_08
- TI-PROCESSOR-SDK-LINUX-ADAS-J784s4-EVM-10_00_00_08
请注意、我还在 Linux SDK 中测试了这个重新运行的"make cryptodev_install"、这也会将模块放在错误的位置。
是否有一些缺少的设置或环境变量在您的 SDK Makefile 中不明显,调整内核版本(我看不到它在任何地方设置 kernel_EXTRAVERSION )。
非常感谢、
Ross O'Connor