转发请注明地址:http://blog.163.com/eric_liufeng/blog/static/19738268320156613654790
KVMTOOLS的代码比QEMU要简单优雅很多,不会让我们花太多的经历放在QEMU的代码上,可以更关注与KVM本身的特性和开发。我们就来看看KVMTOOLS的运行环境是怎么构建的
-
下载KVMTOOLS的内核
git clone git://github.com/penberg/linux-kvm.git
-
下载所用的image(其实可以自己制作这种文件系统,raw格式就可以)
wget http://wiki.qemu.org/download/linux-0.2.img.bz2
-
编译内核
make menuconfig
make && make modules
make modules_install install
和KVM TOOLS相关的内核选项
CONFIG_KVMTOOL_TEST_ENABLE=y # 选上这个下面的选项默认都会选上 CONFIG_NET_9P=y CONFIG_NET_9P_VIRTIO=y CONFIG_VIRTIO_BLK=y CONFIG_VIRTIO_NET=y CONFIG_CONSOLE_POLL=y CONFIG_HVC_DRIVER=y CONFIG_VIRTIO_CONSOLE=y CONFIG_VIRTIO=y CONFIG_VIRTIO_PCI=y CONFIG_9P_FS=y CONFIG_KGDB=y CONFIG_KGDB_SERIAL_CONSOLE=y
|
除此之外,千万注意,make menuconfig的时候,需要将CONFIG_EXT2_FS相关的内容以y的形式编译进来,不然虚拟机启动的时候会报错,无法找到文件系统
-
进入LKVM的目录
cd ${linux-kvm}/tools/kvm
-
用LKVM启动虚拟机
./lkvm run -d linux-0.2.img
注意自动生成的启动命令选项
# lkvm run -k ../../arch/x86/boot/bzImage -m 448 -c 4 --name guest-11902
如果不指定内核的情况下,这里启动用的是你内核目录的编译结果,也就是
${linux-kvm}/arch/x86/boot/bzImage
OK,下面就可以调试GUEST内核或者调试KVM了