维斯有条河    科学与耕耘

【KVM第一弹】编译内核安装KVM  02 Mar 2014


本文为发布在维斯有条河上的原创文章,主要参考《KVM虚拟化技术实战与原理解析》任永杰 单海涛,转载请注明出处,KVM系列持续更新,敬请关注。 下一弹
KVM的编译和安装
系统版本与硬件支持

楼主的内核版本:
vince67@miss:~$ uname -a
Linux miss 3.11.0-15-generic #25~precise1-Ubuntu SMP Thu Jan 30 17:39:31 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
硬件支持:
KVM需要硬件虚拟化扩展的支持,安装之前请先执行下面命令查看自己的cpu是不是支持扩展。
~$ grep -E '(vmx|svm)' /proc/cpuinfo
如果你找到高亮的'vmx'(intel)或者'svm'(AMD),说明是cpu是支持的。

KVM源代码下载

接下来我们要下载KVM的源码,我们在root/下建立一个kvm_demo的文件夹,进入后使用git clone命令下载.
$ git clone git://git.kernel.org/pub/scm/virt/kvm/kvm.git kvm.git
如果你的机器里没有安装git:
~$ sudo apt-get intsall git
你看到的大概是如下的界面:

menuconfig配置KVM

我们使用make menuconfig的命令来配置KVM,因为图形界面比较友好。
make menuconfig使用需要安装ncurses库,使用以下命令即可:
~$ sudo apt-get install libncurses5-dev
你看到的大概是如下的界面:

安装成功ncurses库之后,重新执行 make menuconfig命令。
在如下界面中选择Virtualization进行配置。
如下图:


保存之后会在kvm.git下生成.config文件。

编译KVM

配置完毕之后就要编译KVM了,编译分为如下三个部分:

(一)编译内核 vmlinux
执行命令: make vmlinux -j 20
-j 20的参数是进程的设置,不使用的话是没有大的影响的。
编译的时间需要等一段时间,默默祈祷吧。

(二)编译生成bzImage文件
执行命令: make bzImage
最后将得到bzImage文件

(三)编译modules
如上图最后,编译成功bzImage之后。
执行命令: make modules -j 20
等到机器编译完毕,我们的编译工作就完成了。

安装KVM

(一)安装modules

如上图中最后的安装命令,执行make modules_install.
此命令会默认将modules安装到/lib/modules/$kernel_version/kernel目录中.
安装modules成功后,可以在相应的路径下看到kvm的模块
执行 ls -l /lib/modules/2.14.0-rc3+/kernel/
执行 ls -l /lib/modules/2.14.0-rc3+/kernel/arch/x86/kvm
如下图


(二)安装kernel和initramfs
执行命令: make install
在/boot目录下生成了内核(vmlinux)和initramfs等内核启动所需的文件
grub配置文件/boot/grub/grub.conf也有自动添加的grub选项:


(三)安装后检查
重启系统选择刚才为了KVM而编译 安装的内核启动,系统一般会默认已经加载了kvm和kvm_intel这两个模块
如果没有加载,请手动用modprobe命令依次加载
确认模块加载成功之后,检查/dev/kvm这个文件.
它是kvm内核模块提供给用户空间qemu-kvm程序使用的一个控制接口,
提供了客户机操作系统运行所需要的模拟和实际的硬件设备环境。



About
  • Copyright ©2016 _v7__     Home: github.com/vince67     Blog:   维斯有条河     Email:      友情链接: 张小洋的布劳阁