由于最近工作需要频繁编译内核,我就在考虑如何减少编译内核时间。
在下面是一个简单的精简方法,核心是使用了make localmodconfig,这个从内核版本2.6.32开始就支持了。原理就是只编译在当前系统中存在的模块,从而比之前减少了很多编译时间。
sudo apt-get install build-essential ncurses-base ncurses-dev fakeroot kernel-package
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.8.3.tar.bz2
tar -xjvf linux-3.8.3.tar.bz2
cd linux-3.8.3/
cp -vi /boot/config-`uname -r` .config
yes "" | make oldconfig
make localmodconfig
fakeroot make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-mybuild kernel_image kernel_headers
echo "Done"