一 背景
记录下自己裁剪busybox命令的过程
二 为什么要对busybox进行裁剪
1.给rootfs分区留的flash空间不够,需要减小体积
2.安全需求,裁掉一些会引起网络安全的命令
三 裁剪过程
1.已知信息
(1)要裁剪的命令:
本文以裁剪ftpd命令为例
(2)芯片官方文档中相关描述
然后做的事情:
a.找厂商要了busybox公板配置文件
b.下载busybox-1.20.2源码,按照文档描述编译,不做任何修改,在根目录下面生成了一个.config配置文件
看了下.config文件和公板配置文件的差异,然后使用公板配置文件覆盖掉.config文件(在公板基础上进行裁剪比较靠谱)
注意:该版本下载下来直接编译会报错,网上找到了解决办法,include/libbb.h要加一个头文件
2.怎么裁剪
裁剪思路:
方法一 界面配置修改------------如果对界面配置不熟悉,可能会无从下手
方法二 直接改.config配置文件------一个命令可能对应多个选项,直接改配置文件可能改不全
所以推荐方法三:先去配置文件中去搜相应命令的配置选项,从而可以找到命令对应的菜单界面,和界面中的大概位置,最后再去界面上进行裁剪
以裁剪ftpd举例:
(1)配置文件中去搜该命令的配置(最直观的)
这里我们可以找到CONFIG_FTPD=y选项,可以判断该命令目前是支持的并且可以看到它位于“Networking Utilities”下面
注意:搜的时候注意技巧,一般直接搜命令大写就行,比如ls就搜LS;但有时候一个配置选项可能对应多个命令,比如swapon和swapoff,对应同一个配置CONFIG_SWAPONOFF
(2)去界面中找该选项,然后修改它,退出保存
(3)再去查看配置文件,发现相应的配置已经修改了
- 按照上述方法,将要裁剪的命令都裁掉,然后执行make install,根目录下面会生成_install目录,里面就是裁剪后的busybox和相应命令
4.将 _install下内容更新到rootfs里面,重新压缩就行了