+ -
当前位置:首页 → 问答吧 → 打入一个内核模块是否需要当前内核已经编译过?

打入一个内核模块是否需要当前内核已经编译过?

时间:2010-07-06

来源:互联网

我的意思是,在一个已经编译过内核的机器上开发内核模块,然后编译完成已经生成了.ko的内核模块文件。这个时候把相关的文件移到别的没有经过内核编译的机器上,然后insmod xxx.ko这样行不行?

作者: zonelight   发布时间: 2010-07-06

如果os一样,为什么不可以?

作者: snail_314   发布时间: 2010-07-06



QUOTE:
如果os一样,为什么不可以?
snail_314 发表于 2010-07-06 12:29




   可以吗?我再说的白点,就是没有编译过内核的机器上是否能使用insmod和rmmod命令。

作者: zonelight   发布时间: 2010-07-06

回复 zonelight


    同样的configure出来的make之后的vmlinux肯定可以,不同的肯定不可以。

作者: kgn28   发布时间: 2010-07-06

os不变,跟有没有编译过内核无关啊.是可以用的,不知道你遇到什么问题

作者: snail_314   发布时间: 2010-07-06

本帖最后由 zonelight 于 2010-07-06 13:10 编辑

我还是不明白,我一直以为如果内核不编译的话肯定没有办法用insmod这个命令。在弄一个软件产品,然后是涉及到内核模块开发的。自己开发的机器当然是经过内核编译的,问题是安装的时候是要安装到用户的机器上的。如果是在没有经过内核编译的机器上无法插入内核module的话那就是说软件每装到一台机器上我们就得先帮用户花个把小时编译内核。。。。

其实我的问题就是没有编译过内核的机器也可以用insmod命令载入内核模块吗?

作者: zonelight   发布时间: 2010-07-06

主要是内核的编译配置了
可以这样想,发行版的ISO就是在少数机器上做的
安装到许多其它机器上,它的module照样可以使用

作者: openspace   发布时间: 2010-07-06

我貌似又搞错概念了,要进行内核模块的开发根本就不需要整个内核的编译,要的只是header文件而已。

作者: zonelight   发布时间: 2010-07-06

回复 zonelight


    呵呵,对.你看在主流的发行版如ubuntu,kernel sdk都是作为单独的包发布的.

作者: snail_314   发布时间: 2010-07-06

主要是看着两个内核的配置是否一致。另外,最表面的问题,就是版本号是否一致。

作者: Godbach   发布时间: 2010-07-06

回复 zonelight

可以。

作者: accessory   发布时间: 2010-07-06



QUOTE:
我貌似又搞错概念了,要进行内核模块的开发根本就不需要整个内核的编译,要的只是header文件而已。
zonelight 发表于 2010-07-06 14:36



你说的这种情况似乎是多年前的内核才这样。现在只有内核头文件可不行哟。

作者: linyunxian   发布时间: 2010-07-21

可行性不大

不光kernel版本要匹配, 编译kernel时的gcc版本也要匹配。

作者: 帅绝人寰   发布时间: 2010-07-21



QUOTE:
可行性不大

不光kernel版本要匹配, 编译kernel时的gcc版本也要匹配。
帅绝人寰 发表于 2010-07-21 12:35


我做过测试,编译 kernel 时用 gcc-4.1.2,编译 module 时使用 gcc-4.4.3
编译后的模块可以加载

作者: platinum   发布时间: 2010-07-21

热门下载

更多