当前位置: 技术问答>linux和unix
如何搭建跨平台的module编程环境?target:arm-linux kernel:2.6.x
来源: 互联网 发布时间:2016-01-06
本文导语: 我现在遇到一个问题,在编译好2.6的内核后,在板子上能成功跑起来,但模块加载失败。 我是这样做的: 首先,在内核配置时选定我要手动添加的模块,其它的无所谓了... 编译完kernel后(make bzImage),再进行模块编译...
我现在遇到一个问题,在编译好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修改就行了,是哪些呢?
谢谢!
我是这样做的:
首先,在内核配置时选定我要手动添加的模块,其它的无所谓了...
编译完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修改就行了,是哪些呢?
谢谢!
|
在make menuconfig时,你把Loadable module support ---> Module versioning support一项选上了吗
可能是这个原因,不确定。
可能是这个原因,不确定。
|
mark