[求助]关于动态加载模块的问题
1,是不是任何自己写的模块都可以动态动态加载?
2,不是的话怎么样设置才可以加载指定模块,而不是加载任意模块?
如果 2 成立,在内核编译出来时会有什么区别?(指加载的一些机制)
交叉编译出来的模块加载在开发版上时显示:
insmod: ELF file not for this architecture
insmod: Could not load the module: Success
是什么原因?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
回答你这个问题,你交叉编译有问题,你的开发平台的架构与你交叉编译使用的架构不一致。
例如一个x86和arm。
交叉编译的含义是在一个平台上编译处在另一个平台上运行的二进制可执行文件。
例如,通常在x86架构的机器上编译其他平台的内核、模块、软件等,比如power PC,ARM等架构的。
这时候需要交叉编译器,或者使用gcc的交叉编译选项,其结果就是用目标平台的机器指令将你的C语言代码编译为可执行文件。
大概是这样的过程,你的报错我认为是这个问题,你自己再找找原因吧。
insmod: ELF file not for this architecture
elf格式板子不支持阿
应该把生成的elf格式用objcopy转化成bin格式
Linux Loadable Kernel Module HOWTO
http://www.tldp.org/HOWTO/Module-HOWTO/
我觉得你应该是用了编译在2.4内核上模块的方式编译2.6内核上的模块,所以产生了这种问题,你应该去看看如何编译2.6上的模块
莫明