1. 新安装的系统,在 /boot 下会有一个config-*.*-general 的默认配置文件,如果没有特别要求,可以继续使用这个config文件作为新的kernel config文件,
cp /boot/config.*.*.-general /KERNEL_SRC/
通过 make menuconfig, 变更你需要的配置项。
2. 编译kernel:
#make clean
#make bzImage 实现完全编译内核,生成的内核是使用gzip压缩, 类似于make zImage, 不是zImage文件大小更大。
#make modules
#make modules_install
#make install
#mkinitramfs -o /boot/initrd.img-(your kernel version) (your kernel version)
#update-grub2
3. Note: 有时更新kernel后,不能进入新的系统,或者启动时提示 Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) 错误。
对比 /boot/grub/grub.cfg 文件中,原始的kernel与新增的kernel的差别,可能会发现新生成的kernel选项,比原始的少了
initrd /boot/initrd.img-(your kernel version) 这一行。
这是因为没有做 mkinitramfs 这一步造成的。这些,重做 mkinitramfs 和 update-grub2 就可以了。
对了,还是 root=UUID= 这个参数,也需要和原始的一样,记得注意一下!
4. 如果要新在系统开始时出现kernel版本选择的界面,需要修改 /boot/grub/grub.cfg
if [ "x${timeout}" != "x-1" ]; then
if keystatus; then
if keystatus --shift; then
set timeout=-1
else
set timeout=10 (界面停留10s)
fi
else
if sleep --interruptible 3 ; then
set timeout=10(界面停留10s)
fi
fi
fi