Fin*_*ner 13 compiling kernel initrd
我正在运行 Ubuntu 11.10,它带有内核版本3.0.0-14。我从3.1.0分支下载并构建了一个内核。安装新内核后,我看到我的/boot/initrd.img-3.1.0文件很大。它是 114MB,而我/boot/initrd.img-3.0.0-14-generic的大约是 13MB。我想摆脱臃肿,这显然是不必要的。
在构建新内核时,我将我的/boot/config-3.0.0-14-genericto复制到.config我的构建目录中,以保留我原始内核的配置。我运行make oldconfig,为所有新选项选择默认值,然后构建内核。
查看每个 initrd cpio 档案中的文件大小,我看到我所有的 .ko 模块在 3.1.0 ramdisk 中的大小都比 3.0.0-14 大。我假设在我的配置文件中检查了一个不必要的调试标志,但我没有看到任何在 3.0.0-14 配置文件中尚未启用的不同之处。
我/boot/config-3.0.0-14-generic在这里:http :
//pastebin.com/UjH7nEqd
我/boot/config-3.0.1在这里:http :
//pastebin.com/HyT0M2k1
谁能解释所有不必要的膨胀来自哪里?
Lek*_*eyn 16
使用make oldconfig,make和构建内核和模块时,make install生成的模块将在文件中提供调试信息。
使用INSTALL_MOD_STRIP删除调试符号的选项:
make INSTALL_MOD_STRIP=1 modules_install
Run Code Online (Sandbox Code Playgroud)
同样,对于构建 deb 包:
make INSTALL_MOD_STRIP=1 deb-pkg
Run Code Online (Sandbox Code Playgroud)