为什么自己编译的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和系统的大小差不多? 展开
2.主要是modules都很大,比系统预编译的大7-8倍
3.内核配置中debug信息已经去掉
4.编译时也没用-g选项
5.单单比较.ko文件,发现自己编译的单个.ko文件要比系统自带的.ko文件大的多
6.make install make module_install后,系统能够正常启动,就是所有的模块大小要有1G左右
7.如何给module瘦身,编译时候要加什么参数能使自己编译出来的module和系统的大小差不多? 展开
1个回答
展开全部
1、配置中有很多调试选项(不一定带“debug”字样),而且位置也很分散;
2、发行版自带内核往往经过长期、仔细的配置,会比个人十几分钟的配置更全面。
这两个原因对内核及模块的大小有影响,但不大。
编译出的内核模块中包含多个运行时用不到的段(编译连接时可能要用,不是错误),发行版中一般会删掉,这很有可能是原因所在。
可以考虑用 [strip -S mod_name.ko] 来处理一下内核模块(注意:这里选项要用大写S,小写s或不写会连符号表一起删掉,导致模块无法加载),看看文件有没有变小(别对内核本身这么干)。
如果以上命令明显减小了文件,可以考虑在编译内核前定义环境变量INSTALL_MOD_STRIP为1(数字),这样make modules_install后的内核模块都是经 strip 处理过的了。
2、发行版自带内核往往经过长期、仔细的配置,会比个人十几分钟的配置更全面。
这两个原因对内核及模块的大小有影响,但不大。
编译出的内核模块中包含多个运行时用不到的段(编译连接时可能要用,不是错误),发行版中一般会删掉,这很有可能是原因所在。
可以考虑用 [strip -S mod_name.ko] 来处理一下内核模块(注意:这里选项要用大写S,小写s或不写会连符号表一起删掉,导致模块无法加载),看看文件有没有变小(别对内核本身这么干)。
如果以上命令明显减小了文件,可以考虑在编译内核前定义环境变量INSTALL_MOD_STRIP为1(数字),这样make modules_install后的内核模块都是经 strip 处理过的了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |