[求助]关于动态加载模块的问题

发布于 2022-07-25 11:02:36 字数 246 浏览 15 评论 5

1,是不是任何自己写的模块都可以动态动态加载?
2,不是的话怎么样设置才可以加载指定模块,而不是加载任意模块?
如果 2 成立,在内核编译出来时会有什么区别?(指加载的一些机制)

交叉编译出来的模块加载在开发版上时显示:
insmod: ELF file not for this architecture
insmod: Could not load the module: Success
是什么原因?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

多彩岁月 2022-07-26 17:41:41

原帖由 epegasus 于 2006-8-31 08:55 发表
insmod: ELF file not for this architecture
insmod: Could not load the module: Success

回答你这个问题,你交叉编译有问题,你的开发平台的架构与你交叉编译使用的架构不一致。
例如一个x86和arm。

交叉编译的含义是在一个平台上编译处在另一个平台上运行的二进制可执行文件。
例如,通常在x86架构的机器上编译其他平台的内核、模块、软件等,比如power PC,ARM等架构的。
这时候需要交叉编译器,或者使用gcc的交叉编译选项,其结果就是用目标平台的机器指令将你的C语言代码编译为可执行文件。

大概是这样的过程,你的报错我认为是这个问题,你自己再找找原因吧。

一个人的旅程 2022-07-26 15:38:13

insmod: ELF file not for this architecture

elf格式板子不支持阿

应该把生成的elf格式用objcopy转化成bin格式

夜光 2022-07-26 13:05:33

Linux Loadable Kernel Module HOWTO
http://www.tldp.org/HOWTO/Module-HOWTO/

乄_柒ぐ汐 2022-07-26 09:50:46

我觉得你应该是用了编译在2.4内核上模块的方式编译2.6内核上的模块,所以产生了这种问题,你应该去看看如何编译2.6上的模块

你げ笑在眉眼 2022-07-26 01:35:28

莫明

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文