日期:2014-05-16  浏览次数:20607 次

如何搭建跨平台的module编程环境?target:arm-linux kernel:2.6.x
我现在遇到一个问题,在编译好2.6的内核后,在板子上能成功跑起来,但模块加载失败。
我是这样做的:
首先,在内核配置时选定我要手动添加的模块,其它的无所谓了...
编译完kernel后(make   bzImage),再进行模块编译(make   modules)
可以看到需要的模块已经产生(xxx.ko),但是把这个模块文件拷贝到rootfs上,内核和rootfs都烧写成功后,kernel成功启动,但在shell下insmod   xxx.ko则出现错误:disagrees   about   version   of   symbol   struct_module   ....
查看资料说是因为内核和模块的编译器版本问题,但是我的内核和模块都是同一个编译器编译的,而且就是相同configuration下编译的,怎么会出现这样的问题呢?
还有一个问题想向大侠请教,如何搭建跨平台的模块编译环境呢?是不是编译时cross-gcc的某些option修改就行了,是哪些呢?
谢谢!

------解决方案--------------------
mark
------解决方案--------------------
在make menuconfig时,你把Loadable module support ---> Module versioning support一项选上了吗
可能是这个原因,不确定。