为什么自己编译的linux内核和驱动比系统自带的要大的多??

1.编译出来的linux内核大小和系统差不多2.主要是modules都很大,比系统预编译的大7-8倍3.内核配置中debug信息已经去掉4.编译时也没用-g选项5.单单比... 1.编译出来的linux内核大小和系统差不多
2.主要是modules都很大,比系统预编译的大7-8倍
3.内核配置中debug信息已经去掉
4.编译时也没用-g选项
5.单单比较.ko文件,发现自己编译的单个.ko文件要比系统自带的.ko文件大的多
6.make install make module_install后,系统能够正常启动,就是所有的模块大小要有1G左右
7.如何给module瘦身,编译时候要加什么参数能使自己编译出来的module和系统的大小差不多?
展开
 我来答
rockrush
2014-06-21 · TA获得超过2092个赞
知道小有建树答主
回答量:1111
采纳率:100%
帮助的人:1034万
展开全部
1、配置中有很多调试选项(不一定带“debug”字样),而且位置也很分散;
2、发行版自带内核往往经过长期、仔细的配置,会比个人十几分钟的配置更全面。
这两个原因对内核及模块的大小有影响,但不大。

编译出的内核模块中包含多个运行时用不到的段(编译连接时可能要用,不是错误),发行版中一般会删掉,这很有可能是原因所在。

可以考虑用 [strip -S mod_name.ko] 来处理一下内核模块(注意:这里选项要用大写S,小写s或不写会连符号表一起删掉,导致模块无法加载),看看文件有没有变小(别对内核本身这么干)。
如果以上命令明显减小了文件,可以考虑在编译内核前定义环境变量INSTALL_MOD_STRIP为1(数字),这样make modules_install后的内核模块都是经 strip 处理过的了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式