交叉编译Zynq的内核模块

时间:2014-03-22 21:34:06

标签: linux build kernel arm cross-compiling

我在

上运行Zynq目标
3.2.35-rt52 #1 SMP PREEMPT RT Wed Jun 12 09:57:26 CDT 2013 armv7l GNU/Linux

我需要添加以太网绑定驱动程序内核模块,但有错误可以帮助我吗?

我的步骤

1)ubuntu-12.04.3-desktop-i386

2)sudo apt-get install gcc-arm-linux-gnueabi

3)https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.35.tar.gz

4)make distclean

5)make ARCH=arm defconfig

6)ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- make all

编译完成后,我已将bonding.ko文件上传到我的目标并尝试使用insmod加载

我有错误

`insmod:无法插入' /lib/modules/3.2.35-rt52/kernel/drivers/net/bonding/bonding.ko' ;:无效的模块格式

no symbol version for module_layout

` 这个问题可以来自SMP吗? 我的目标有2个内核并启用了SMP,但在我的模块信息中我不能使用SMP

你能帮我为我的Zynq目标构建可加载模块

提前致谢

1 个答案:

答案 0 :(得分:0)

问题与SMP无关。

您需要为您的模块使用匹配的内核版本,内核配置和工具链,就像您在Zynq上运行的内核一样。

如果您从其中一个目标参考设计开始,它将包含有关如何构建内核的说明。除非他们分发内核头文件,否则你必须构建内核,以便你可以构建一个能成功insmod的模块。