Linux内核功能强大,支持很多架构,同时自带了很多文档。对于研究和学习内核而言,这些东西的好处不言而喻。然而对于一个真正开展的项目而言,这些东西除了增加不必要的磁盘空间外也没有太大的用处。内核中占用磁盘空间最大的首当其冲是drivers目录,arch目录次之。最没有用(对于工程项目而言)的就是Documentation目录。

drivers虽然树大招风,但是毕竟各个部分相互之间耦合性比较大,因此先不能动。我们首选的就是要动arch目录和Documentation。

对于ARM架构而言,在arch目录中,只需要arm和um这两个目录即可,其他目录可删去。总共可以节省150M左右的空间。而且直接删除对内核编译没有影响。

Documentation目录要稍微麻烦一点,由于系统Makefile中的mrproper目标对其有依赖,因此不能轻易删除,需要修改下../Makefile,patch如下:

这样依赖,内核的体积可以缩小大约200M。