当前位置: 技术问答>linux和unix
嵌入式Linux缩减问题
来源: 互联网 发布时间:2016-07-22
本文导语: 大家好,本人目前刚刚接触Linux。现在公司的项目需要缩减Linux的Kernel和APP部分的Code Size。目前我们使用的是Linux2.6.22.15版本,应用于ADSL Modem(家庭网关)。 1.我们产品应用是ADSL Gateway,Kernel部分裁剪工作已经差不...
大家好,本人目前刚刚接触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有没有可能实现,谢谢!
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有没有可能实现,谢谢!
|
kernel, busybox, uclibc的config文件传一份?
你的app里,除了net-snmp, busybox外,其它的都还可以,uclibc似乎大了点,有没有可能除掉一部分呢?
你的app里,除了net-snmp, busybox外,其它的都还可以,uclibc似乎大了点,有没有可能除掉一部分呢?