(KVM连载)3.3.3 编译KVM

3.3.3 编译KVM

在对KVM源代码进行了配置之后,编译KVM就是一件比较容易的事情了。KVM编译过程就完全是一个普通Linux内核编译的过程,需要经过编译kernel、编译bzImage和编译module等三个步骤。编译bzImage这一步不是必须的,在本章示例中,config中使用了使用initramfs,所以这里需要这个bzImage用于生成initramfs image。另外,在最新的Linux kernel代码中,根据Makefile中的定义可以看出,直接执行“make”或“make all”命令就可以将这里提及的3个步骤全部包括在内。本章节中是为了更好地展示编译的过程,才将编译的步骤分为着三步来来解释。

编译kernel的命令为“make vmlinux ”,其编译命令和输出如下。

其中,编译命令中“-j”参数并非必须的,它是让make工具用多进程来编译,比如上面命令中提到的“-j 20”,会让make工具最多创建20个GCC进程同时来执行编译任务。在一个比较空闲的系统上面,有一个推荐值作为-j参数的值,即大约等于系统上的CPU的core的数量(CPU超线程也算core)。

编译bzImage的命令是“make bzImage”,其命令执行的输出如下所以:

编译kernel和bzImage之后,接下来是编译内核的模块,命令为“make modules”,其的命令和输出如下所示:

master

Stay hungry, stay foolish.

5 Comments

  1. 杰哥 ,按照你的书来,配置KVM没问题,但编译KVM是报错,是不是CPU不支持虚拟化?CPU型号是Intel(R) Xeon(R) CPU E5420 ,在BIOS里只有 Advanced->Intel(R) Virtualization Technology 没看到VT和VT-d选项

    • 你这CPU时主流的服务器CPU,当然支持VT了,就是你说的那个,VT就是Virtualization Technology的缩写呢。
      另外,如果你时编译时的错误,和你硬件没有任何关系的啊,时编译环境或者源代码的问题。

      • 杰哥,问题已经解决了,是我的系统有问题,少了个bc.x86_64软件包。

  2. 杰哥,在编译内核部分,它编译到一半就自己关掉了。。这是怎么回事啊

wsygyhh进行回复 取消回复

邮箱地址不会被公开。 必填项已用*标注

*