但是我交叉编译ARM内核而不是ARMHF(对于我的Cubietruck)。我按照本教程: https://romanrm.net/a10/cross-compile-kernel
如何确定我正在交叉编译的架构?
答案 0 :(得分:2)
i got a new error that /linux/utsrealease.h is not found
从上面的评论中提到..从中明确指出kernel module
您的建筑必须match with running kernel version
。由于内核模块加载机制不允许加载未针对正在运行的内核编译的模块,因此会出现不匹配错误。
您的驱动程序需要宏UTS_RELEASE才能重建 来自源代码的内核模块。
检索版本字符串常量
旧版本要求您添加<linux/version.h>
,
其他<linux/utsrelease.h>
,
和更新的<generated/utsrelease.h>
所以我建议你做一下
的解决方法你可以在内核源代码中找到utsrelease.h,确保你正在运行的内核必须与你的源代码匹配
将linux-x.x.x/include/generated/utsrelease.h
复制到已安装的标题,即../include/linux/utsrelease.h
我不确定试一试。
如果上述方法不起作用请更新您的问题 1)你有哪个内核的saltcode版本 2)什么是在目标上运行的内核版本
答案 1 :(得分:1)
编译内核时,请提及您正在编译的体系结构:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- EXTRAVERSION=-custom1 uImage
例如,这里ARCH=arm
,所以你正在为ARM编译,如果它是x86,那么你将用x86替换它。检查目标板的架构。
编辑:gnueabihf用于armhf。