我试图交叉编译互联网上可用的内核模块代码。我的开发PC是Linux 2.6.31,我的目标架构是带Linux 2.6.32内核的ARM。我的工具链是Code Sourcery arm-none-linux-gnueabi。我的Makefile看起来像这样: -
obj-m := mymodule.o
KDIR := /path/to/target/2.6.32/kernel
all:
$(MAKE) ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi -C $(KDIR) M=$(PWD) modules
clean:
$(MAKE) ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi -C $(KDIR) M=$(PWD) clean
我的Linux 2.6.32内核只是一个源树;未配置或构建;只是解压缩从供应商处获得的内核源代码。模块建好了。
但是当我尝试insmod模块时,它显示“模块格式无效”。我的疑问是: - 这是因为我不打算运行内核并构建针对尚未配置/构建的内核源代码树吗?有谁可以帮我解决这个问题?
谢谢, 催眠曲