#Reference
http://adam8157.info/blog/2012/04/setup-kernel-developing-environment/
https://blog.nelhage.com/2013/12/lightweight-linux-kernel-development-with-kvm/
#Build kernel and modules
在编译内核之前, 对内核裁剪显得尤为重要, 这样可以大量节省编译时间.
我用fedora 21:
firo@f linux$ grep -i '=[ym]' /boot/config-3.17.6-300.fc21.x86_64 | wc -l
4144
几乎把内核所有的代码编译了一编! 太耗时了! 一个简单的办法:
make localmodconfig
firo@f linux$ grep -i '=[ym]' .config | wc -l
1329
另外, make help 会显示内核编译帮助.
这里你要手动吧virtio_blk这个内核选项选为M, 因为下文用kvm启动的时候有用.
否则,就是这个错误:
开始编译
mkdir /tmp/kmods
make bzImage
make modules
make modules_install INSTALL_MOD_PATH=/tmp/kmods
#生成initrd
我之前用过busybox, 这次用个更简单, 且更好用的supermin
git clone git://github.com/libguestfs/supermin.git
cd supermin/examples
export SUPERMIN_KERNEL=/path/to/linux.git/arch/x86/boot/bzImage
export SUPERMIN_MODULES=/tmp/kmods/lib/modules/3.xx.yy
build-basic-vm.sh
稍等一会, 生成 basic-full-appliance
cd 进入后执行
qemu-kvm -m 512 -kernel kernel -initrd initrd -append 'vga=773 selinux=0' -drive file=root,format=raw,if=virtio
内核要运行起来了.
阅读(4195) | 评论(0) | 转发(0) |