tiddy8 发表于 2010-11-21 19:18:46

linux2.6.20内核编译成功,也可以在skyeye运行,但有个问题

我的linux2.6.20内核编译成功,也可以在skyeye运行,但有个问题
就是编译的内核vmlinux为什么很大啊,要20多兆,而skyeye测试程序中的vmlinux才几兆啊。
该如何才能给内核瘦身啊

请教高手。:P

我的交叉工具链是arm-linux-gcc-4.4.3
内核版本是linux-2.6.20.20

[ 本帖最后由 tiddy8 于 2010-11-21 19:20 编辑 ]

tsinghuayuan86 发表于 2010-11-22 16:58:04

回复 1# tiddy8 的帖子

这是由于你编译的内核映像vmlinux带有源码,而skyeye的测试用例中的vmlinux是不带源码的。
"瘦身" vmlinux处理方式有两种:
                  1.在编译内核的时候,配置参数将源码去掉。
                         make menuconfigure 配置内核
                         Kernel hacking--->Kernel debugging将此项关掉
                         重新编译内核即可。
                        
                  2. 如果已经生成了带有源码的vmlinux,那就用相应体系的交叉
                        工具链中的strip工具将vmlinux“瘦身”
                        例如arm的vmlinux:$ arm-linux-strip vmlinux
                        再看下,原来几十M的文件就变成几M了
                        (注意,此方法不可逆,如若带源码,及不带源码的都需要,最好
                            备份一下带源码的vmlinux)

其实,带源码的内核映像也是需要的,一般要进行内核debug的时候,需要它。


thanks,
yuanzheng.

[ 本帖最后由 tsinghuayuan86 于 2010-11-22 16:59 编辑 ]

tiddy8 发表于 2010-11-23 12:56:49

原帖由 tsinghuayuan86 于 2010-11-22 16:58 发表 http://www.linuxfans.org/bbs/images/common/back.gif
这是由于你编译的内核映像vmlinux带有源码,而skyeye的测试用例中的vmlinux是不带源码的。
"瘦身" vmlinux处理方式有两种:
                  1.在编译内核的时候,配置参数将源码去掉。
                         make ...
谢谢,这个问题解决了。

戴尔_章 发表于 2011-4-17 08:03:43

回复 1# tiddy8

可以编译最新的2.6.38的内核么?期待

tsinghuayuan86 发表于 2011-4-18 11:33:38

回复 4# 戴尔_章 的帖子

你可以尝试编译下,再在skyeye run下,应该不会有太大问题。



thanks,
yuanzheng.
页: [1]
查看完整版本: linux2.6.20内核编译成功,也可以在skyeye运行,但有个问题