This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM67:驱动程序.ko 版本幻数不匹配&'不匹配

Guru**** 2551040 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1567804/am67-driver-ko-version-magic-number-doesn-t-match

器件型号:AM67


工具/软件:

你(们)好

我当时正在研究 CDN_DSI 驱动器修改。

但有时我会收到以下错误消息:

root@am67-sk:~# modprobe CDNS_DSI
[36.161277] CDNS_DSI:版本魔术'6.12.17-ti-gcdcaeac783e3-dirty SMP preempt mod_unload aarch64'应该是'6.12.17-ti-00773-gcdcaeac783e3 SMP prept mod_unload aarch64'
modprobe:错误:无法插入'CDNS_DSI ':Exec 格式错误

似乎内核模块仅在幻数上与设备模块不匹配  

问:你能为内核驱动程序提供正确的构建代码过程或命令吗?

我在 SDK 文件夹下使用 Make Linux、也使用 WIC Imge、没有理由有时版本不匹配

THX

Will

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Will:

    分配给此主题的专家当前已不在办公室、请预计响应会延迟。 如果您在下周初未收到回复、请随时 ping 通此主题。

    此致、
    Johnson

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Johnson:

    有任何更新?

    THX  

    Will

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、我本周不在办公室、请期待收到延迟的回复。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Will Tsai 

    卸载这些函数。 您是否完成了更新 SD/rootfs 中的模块、映像和 dtbs 的所有步骤?

    $ sudo cp arch/arm64/boot/Image $root/boot/
    $ sudo cp arch/arm64/boot/dts/ti/  $root/boot/dtb/ti
    $ sudo make arch=arm64 install_MOD_PATH=$ROOT MODULES_INSTALL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Praneeth、

    我尝试您提供的步骤、但它不起作用。

    以下是我处理此问题的工作流程:

    sudo make arch=arm64 cross_compile=“$cross_compile_64" menuconfig“ menuconfig
    常规设置
    本地版本 — 附加到内核版本
    自动将版本信息附加到版本字符串
    /opt/ti-processor-sdk-linux-am67-sk-11_00_10_01/board-support/ti-linux-kernel-6.12.17 + git-ti/include/config

    THX

    Will

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是问题所在
    1.我不能使用 WIC 映像并在 SD 卡中输入修改后的 ko?
    2.我是 make menuconfig 设置 localversion 为什么在我使 Linux 后内核版本仍然显示数字不是我的设置?

    感谢您的帮助

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Will:

    我们试过了  

    https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/11_01_05_03/exports/docs/linux/Foundational_Components_Kernel_Users_Guide.html#正在编译-the-kernel-modules

    此致、

    - Hong

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。


    尊敬的 Will:

    我不明白这里的问题是什么。

    您的问题是:

    1.我不能使用 WIC 映像并在 SD 卡中输入修改后的 ko?
    2.我是 make menuconfig 设置 localversion 为什么在我使 Linux 后内核版本仍然显示数字不是我的设置?

    对于查询 1:

    是的、您可以使用 WIC 映像并在 SD 卡中复制修改后的内核模块。 但是、您是否只尝试修改和复制一个模块或通常的方法、即生成源代码并复制内核映像并安装模块? 如果第二个选项起作用、则只需使用 TI Processor SDK 文档中已提供的命令:

    a. make arch=arm64 cross_compile=aarch64-none-linux-gnu- distclean
    b. make arch=arm64 cross_compile=aarch64-non-linux-gnu- defconfig ti_arm64_prune.config
    c. make arch=arm64 cross_compile=aarch64-none-linux-gnu- menuconfig
    d. make arch=arm64 cross_compile=aarch64-none-linux-gnu-图像模块
    e. cp arch/arm64/boot/Image $root/boot
    f. make arch=arm64 install_MOD_PATH=$ROOT MODULES_INSTALL

    对于查询 2:  

    应该可以更改本地版本。 您只需要在上面的步骤 c 中、在 menuconfig 中查找:
     本地版本 — 附加到内核版本
    并添加自己的字符串。 下面是我的快速测试: https://gist.github.com/jmenti/fa4858930f3a40472a30ac2f880c87be

    请注意内核哈希:Linux 版本 6.12.35judytest-g571d47cb9634、也可以 通过 uname 命令看到:

    root@am62pxx-EVM:~# uname -r
    6.12.35judytest-g571d47cb9634

    与内核模块的匹配相同:

    root@am62pxx-EVM:~# ls /lib/modules
    6.12.35judytest-g408b0338fa7a 6.12.35judytest-g571d47cb9634

    我修改的 pwp-tiehrpwm 模块加载得很好、正如您在中所看到的:

    root@am62pxx-EVM:~# ls /sys/class/pwm
    pwmchip0 pwmchip1 pwmchip2 pwmchip3
    root@am62pxx-EVM:~# lsmod | grep ehrpwm
    pwm_tiehrpwm 12288 0
    Root@am62pxx-EVM:~#

    ~ Judith

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    还需要添加。

    Will Tsai 

    请在 https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/log/?h=ti-linux-6.12.y 上分享您所做的确切差异更改 

    用于 DSI 和内核配置。