|
·初学arm,用的QQ2440开发板。交叉编译环境都已经设定好,在/opt/qq2440/kernel-2.6.13/Makefile里已经指定ARCH=arm, CROSS_COMPILE=arm-linux
·一个经典的hello.c模块程序,一个makefile。其中,makefile内容如下:
obj-m := hello.o
·运行以下命令进行交叉编译:
make -C /opt/qq2440/kernel-2.6.13/ M=$PWD modules
可以成功生成hello.ko文件
·但是!
下载到目标板,insmod hello.ko时,出现如下问题!
insmod: kernel-module version mismatch
hello.ko was compiled for kernel version
while this kernel is version 2.6.13.
内核不匹配?我又专门用/opt/qq2440/kernel-2.6.13这个kernel重新编译了一遍操作系统,重新烧写了竟像文件,应该不会有内核不匹配问题吧?
那这是怎么回事呢?严重迷茫中,各路高手帮指点一下吧!多谢!
而且!
我google时,发现全是hello.ko was compiled for kernel version x.x.xx
明显是内核版本不匹配,可我这现象连版本号都没有显示?
·PS:
主机上运行
[root@localhost hello]# modinfo hello.ko
filename: hello.ko
license: Dual BSD/GPL
srcversion: 31FE72DA6A560C890FF9B3F
depends:
vermagic: 2.6.13 preempt ARMv4 gcc-3.4
开发板运行
[root@FriendlyARM plg]# uname -r
2.6.13
版本应该没问题啊! |
|