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.

[参考译文] PROCESSOR-SDK-AM64X:无法在 Linux 中安装 Marvell mv88e6341驱动程序

Guru**** 2540720 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1111310/processor-sdk-am64x-cannot-install-marvell-mv88e6341-driver-in-linux

器件型号:PROCESSOR-SDK-AM64X

你(们)好  

我正在尝试将 Marvell 88E6341交换机与 AM64x 集成。 在尝试为设备安装驱动程序时、我收到以下错误:

root@am64xx-EVM:~/lib/modules/5.10.100-g7a7a3af903/kernel/drivers/net/ds/mv88exxx# insmod mv88e6xxx.ko
[1466.676328] mv88e6xxx:不同意符号 MODULE_LO布局 的版本
insmod:错误:无法插入模块 mv88e6xxx.ko:模块格式无效

如果我安装的是正确的驱动程序,请告诉我,如果是,为什么会显示此错误。  

如果有人在将 Marvell MV88E6341集成到 AM64x 方面有经验 、请说明该过程。

谢谢

Himansu

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

    您好!

    [引用 userid="490858" URL"~支持/processors-group/processors/f/processors-forum/1111310/processor-sdk-am64x-cannot -install-Marvell-mv88e6341-driver-in -linux"[1466.676328] mv88e6xxx:不同意 symbol_layout[/quote_]

    此消息意味着内核映像和驱动程序模块的二进制文件不是在同一个构建上编译的。

    当您编译内核时、请执行"make Image modules"、这将在同一编译中编译内核映像和驱动程序模块。 然后将内核映像和驱动程序模块填充到根文件系统中。 这将解决该问题。

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

    你(们)好

    我已经尝试过相同构建的内核和驱动程序、但仍然显示相同的错误。

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

    您好!

    请在电路板上运行以下命令并提供输出日志:

    # uname -a
    # ls -l /lib/modules/

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

    root@am64xx-EVM:~# uname -r
    5.10.100-g7a7a3af903
    root@am64xx-EVM:~# ls -l /lib/模块
    共计4.
    drwxr-xr-x 4 root 4096 May 8 17:54 5.10.100-g7a7a3af903

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

    您好!

    我询问命令'uname -a"的输出、该命令的信息多于'uname -r'。

    但是、无论如何、请提供用于构建内核映像和模块并将其安装到根文件系统的确切命令。

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

    root@am64xx-EVM:~/portal# uname -a
    Linux am64xx-evm0.100-g7a7a3af903 #1 SMP 抢占 Wed Jun 22 10:44:26 IST 2022 Aarch64 Aarch64 Aarch64 GNU/Linux

    构建和安装内核映像和模块时遵循的步骤:

    1. 使 arch=ARM64 cross_compile=aarch64-no-linux-gnu- tisdk_am64xx-evm_defconfig
    2.使 arch=ARM64 cross_compile=aarch64-no-linux-gnu-镜像

    3. 使 arch=ARM64 cross_compile=aarch64-no-linux-gnu-模块

    4. 使 arch=ARM64 install_MOD_path= MODES_INSTALL

    然后、我将内核映像复制到文件系统中的"/boot"文件夹、将鼠标复制到"/lib"文件夹。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="490858" URL"~支持/processors-group/processors/f/processors-forum/1111310/processor-sdk-am64x-cannot -install-Marvell-mv88e6341-driver-in-linux/4125332#4125332"]

    1. 使 arch=ARM64 cross_compile=aarch64-no-linux-gnu- tisdk_am64xx-evm_defconfig
    2.使 arch=ARM64 cross_compile=aarch64-no-linux-gnu-镜像

    3. 使 arch=ARM64 cross_compile=aarch64-no-linux-gnu-模块

    [/报价]

    我相信您错过了这里的步骤、tisdk_am64xx-evm_defconfig 没有启用 mv88e6xxx 模块、如何在文件系统中启用 mv88e6xxx.ko?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="490858" URL"~支持/processors-group/processors/f/processors-forum/1111310/processor-sdk-am64x-cannot -install-Marvell-mv88e6341-driver-in-linux/4125332#4125332"]

    4. 使 arch=ARM64 install_MOD_path= MODES_INSTALL

    然后、我将内核映像复制到文件系统中的"/boot"文件夹、将鼠标复制到"/lib"文件夹。

    [/报价]

    顺便说一下,当我询问确切的命令时,我指的是您键入的确切命令,而不是" "、或"然后我复制..."、这无助于发现您的流程中的任何错误。

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

    你(们)好

    我同意  tisdk_am64xx-evm_defconfig 没有启用 mv88e6xxx 模块、因此我们可以在文件系统中启用 mv88e6xxx.ko。 这就是我在 menuconfig 中启用 mv88e6xxx 并编译驱动程序模块并将生成的驱动程序模块复制到文件系统中的"/lib"文件夹的原因。 之后、我应该能够加载驱动器、对吧?  

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

    您描述的过程是正确的、但 Linux 控制台日志"不同意 symbol module_vayout 的版本"意味着在电路板上运行的内核与用于编译 mv88e6xxx.ko 的内核不匹配。 因此、当您运行此过程时、可能无法正确完成某些操作。 您可以在互联网上搜索此消息、您会发现大量与此相关的线程(但大多数线程都在桌面 Linux 上)。

    如果您可以附加编译内核的整个日志并将文件复制到文件系统中、我可以查看它以查看是否存在任何错误步骤。 当您"描述"您所做的事情时、所有细节都会丢失。

    BTY、当加载内核模块时、您假设使用'modprobe"而不是'insmod'。 在这种情况下、它应该是'modprobe mv88e6xxx'。