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-LINUX AM64X:如何交叉编译定制内核模块?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1643079/processor-sdk-linux-am64x-how-to-cross-compile-custom-kernel-modules

器件型号: PROCESSOR-SDK-LINUX AM64X-AM64X

您好:

我尝试编译自定义内核模块失败。

我确实遵循了内核模块编译的通用指南、包括交叉编译。

这是我的 Makefile:

-包括./../Rules.make

obj-m += driver_test.o

KDIR :=./../board-support/ti-linux-kernel-6.12.35 + git-ti

全部:
    生成-C $(KDIR) M=$(PWD) 模块

清洁:
    使-C $(KDIR) M=$(PWD) 干净

它是从存在相对路径的目录调用的。

当我调用 make 时、可以得到以下输出:

创建-C ./../board-support/ti-linux-kernel-6.12.35 + git-ti M=/home/mtr/ti-processor-sdk-linux-am64xx-evm-11.01.05.03/TestApps Driver_Test 1 模块
make[1]:输入目录“/home/mtr/ti-processor-sdk-linux-am64xx-evm-11.01.05.03/board-support/ti-linux-kernel-6.12.35 + git-ti“
 CC [M] /home/mtr/ti-processor-sdk-linux-am64xx-evm-11.01.05.03/TestApps、Driver_Test 1/DRIVER_TEST.o
aarch64-oe-linux-gcc:错误:选项‘-mcmodel=kernel’中无法识别的参数
aarch64-oe-linux-gcc:‘:“-mcmodel=“的有效参数是:large small tiny“
aarch64-oe-linux-gcc:‘:无法识别的命令行选项“-mno-sse“;您是指‘“'-fno-DSE'吗?
aarch64-oe-linux-gcc:错误:无法识别的命令行选项‘-MnO-mmx’
aarch64-oe-linux-gcc:错误:无法识别的命令行选项‘-MnO-sse2’
aarch64-oe-linux-gcc:错误:无法识别的命令行选项‘-MNO-3DNow’
aarch64-oe-linux-gcc:错误:无法识别的命令行选项‘-MNO-AVX’
aarch64-oe-linux-gcc:‘:无法识别的命令行选项“-m64“
aarch64-oe-linux-gcc:错误:无法识别的命令行选项‘-MNO-80387’
aarch64-oe-linux-gcc:错误:无法识别的命令行选项‘-MNO-red-zone’
make[3]:***[scripts/Makefile.build:229:/home/mtr/ti-processor-sdk-linux-am64xx-evm-11.01.05.03/TestApps Driver_Test 1/driver_test.o]错误 1
MAKE[2]:***[/home/mtr/ti-processor-sdk-linux-am64xx-evm-11.01.05.03/board-support/ti-linux-kernel-6.12.35 + git-ti/Makefile:1945:/home/mtr/ti-processor-sdk-linux-am64xx-evm-11.01.05.03/TestApps Driver_Test 1]错误 2.
make[1]:***[Makefile:224:__sub-makE]错误 2.
make[1]:离开目录“/home/mtr/ti-processor-sdk-linux-am64xx-evm-11.01.05.03/board-support/ti-linux-kernel-6.12.35 + git-ti“
make:***[Makefile:22:all] Error 2.

我认为所有这些提到的无法识别的命令行选项都专用于 x86 而不是 ARM。 似乎拾取了一些错误的参数。 至少所选的编译器似乎是正确的编译器。

顺便说一下、到目前为止、我使用的是 SDK 版本 11.01.05.03。

有什么想法我在这里做错了?

谢谢、

Mario

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

    嗨、Mario、

    您可以尝试在构建命令中提供 arch 参数吗?

    -包括./../Rules.make

    obj-m += driver_test.o

    KDIR :=./../board-support/ti-linux-kernel-6.12.35 + git-ti

    全部:
        使-C $(KDIR) M=$(PWD) ARCH=ARM64 模块

    清洁:
        使-C $(KDIR) M=$(PWD) ARCH=ARM64 干净

    此致、
    Vinu

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

    尊敬的 Vinu:

    的确,这是在做的把戏!

    非常感谢您的快速支持、

    Mario