嵌入式Linux缩减问题

win847 2009-10-10 10:20:26
加精
大家好,本人目前刚刚接触Linux。现在公司的项目需要缩减Linux的Kernel和APP部分的Code Size。目前我们使用的是Linux2.6.22.15版本,应用于ADSL Modem(家庭网关)。

1.我们产品应用是ADSL Gateway,Kernel部分裁剪工作已经差不多了,目前Kernel Flash Size大小为620KB左右,基于Linux 2.6.22.15.

2.目前我们使用的是Squash的只读的文件系统,从网络上了解的资料是目前压缩比最高的了。Rootfs压缩后的Flash Size为1.9MB左右

3.因为是Gateway,所以App有很多。像路由,DHCP,HTTP,SNMP,TR69,TR64,telnet,ftp等等。目前共有27个应用程序,压缩后的Flash
Size 840KB左右。

目前的任务就是从Kernel和Rootfs下手。把现在Kernel+rootfs=2.8M的体积要缩小到2M以内。功能部分不能减少,所以感觉难度很大。


App部分有一个想法,想参考BusyBox的做法,把所有的App都放到一个App中实现,然后用ln的方式导出每个App的链接,这样就可以缩掉好多link
symbol,库函数也可以用静态链接的方式去掉多余的库函数。请问一下这种方式来实现有没有可能?如果可以的话有没有什么缺陷?




目前系统各部分占用的Flash Size如下面所示:


项目 小类 Flash Size(KB) 达到目标Size(KB) 目前实验能够达到Size(KB)
Kernel Kernel(without ipv6) 800 500 630
Rootfs Driver 508 300 430
Application 832 766 ?
Lib(uclib,pthread..) 400 250 ?
GUI,configfile,others 124 124
合计 2.664MB 1.94MB



请教一下大家有没有这方面的经验,上面初步估算达到目标Size有没有可能实现,谢谢!
...全文
3664 100 打赏 收藏 转发到动态 举报
写回复
用AI写文章
100 条回复
切换为时间正序
请发表友善的回复…
发表回复
win847 2009-12-16
  • 打赏
  • 举报
回复
这个项目现在搁浅了,因为按照我们的应用好像没办法放入到2M中去,除非去掉一些App,感谢大家的帮忙
liuxmzc 2009-12-04
  • 打赏
  • 举报
回复
学习
huangq168 2009-12-04
  • 打赏
  • 举报
回复
Mark
skysoshy 2009-12-04
  • 打赏
  • 举报
回复
弱弱滴问一下, lib strip过了么?
如果楼主还是认为app可以裁剪 可以查一下 openwrt 项目里各个应用程序的大小, 仅供参考。
glacierful 2009-12-04
  • 打赏
  • 举报
回复
学习学习。
liuhaifeng1976 2009-12-04
  • 打赏
  • 举报
回复
DING
rzsheng 2009-12-04
  • 打赏
  • 举报
回复
不错
ujfj1986 2009-12-04
  • 打赏
  • 举报
回复
mark学习
酒邀月 2009-12-03
  • 打赏
  • 举报
回复
一种有效的方法是对每个应用程序(源代码)重新编译(注意是和cpu体系有关系的)选择优化编译开关—O(大写)!试试看,原则上是能缩小可执行程序代码的大小的
另一种思路是,尽可能去除不必要的驱动程序模块,或者重写必要的驱动程序

顺便提一下,目前flash的存储容量和价格比越来越高,片面强调缩小内核及相应的rootfs的意义变得不是很重要了,要知道花如此大的精力所最求的,其价值不抵大容量flash价格的迅速下降!呵呵
Wenxy1 2009-11-11
  • 打赏
  • 举报
回复
可执行文件记得trip -s 一下,这样能减小很多字节数。
hallowwar 2009-11-11
  • 打赏
  • 举报
回复
好。
shaohaigod1981 2009-11-11
  • 打赏
  • 举报
回复
学习中
SenerityChzr 2009-11-10
  • 打赏
  • 举报
回复
mark
a452325305 2009-11-06
  • 打赏
  • 举报
回复
学习下
  • 打赏
  • 举报
回复
还没结贴啊
Caballeroo 2009-11-05
  • 打赏
  • 举报
回复
......
yangzhifu 2009-11-05
  • 打赏
  • 举报
回复
先mark
laiguo 2009-11-04
  • 打赏
  • 举报
回复
LZ,做好没有?嘿嘿,很期待结果
primec 2009-10-29
  • 打赏
  • 举报
回复
学习
hallowwar 2009-10-27
  • 打赏
  • 举报
回复
学习了。系统裁剪好。
加载更多回复(77)

4,438

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧