《KVM实战:原理、进阶与性能调优》一3.3.3 编译KVM
3.3.3 编译KVM
在对KVM源代码进行了配置之后,编译KVM就是一件比较容易的事情了。它的编译过程完全是一个普通Linux内核编译的过程,需要经过编译kernel、编译bzImage和编译module等3个步骤。编译bzImage这一步不是必需的,在本章示例中,config中使用了initramfs,所以这里需要这个bzImage,用于生成initramfs image。另外,在最新的Linux kernel代码中,根据makefile中的定义可以看出,直接执行“make”或“make all”命令就可以将这里提及的3个步骤全部包括在内。本节是为了更好地展示编译的过程,才将编译的步骤分为这3步来解释。
1)编译kernel的命令为“make vmlinux”,其编译命令和输出如下:
[root@kvm-host kvm]# make vmlinux -j 20
<!- 此处省略数千行编译时的输出信息 ->
LINK vmlinux
LD vmlinux.o
MODPOST vmlinux.o
GEN .version
CHK include/generated/compile.h
UPD include/generated/compile.h
CC init/version.o
LD init/built-in.o
KSYM .tmp_kallsyms1.o
KSYM .tmp_kallsyms2.o
LD vmlinux #这里就是编译、链接后生成了启动所需的Linux kernel文件
SORTEX vmlinux
SYSMAP System.map
其中,编译命令中的“-j”参数并非必需的,它是让make工具用多任务(job)来编译。比如,上面命令中提到的“-j 20”,会让make工具最多创建20个GCC进程,同时来执行编译任务。在一个比较空闲的系统上,有一个推荐值作为-j参数的值,即大约为2倍于系统上的CPU的core的数量(CPU超线程也算core)。如果-j后面不跟数字,则make会根据现在系统中的CPU core的数量自动安排任务数(通常比core的数量略多一点)。
2)执行编译bzImage的命令“make bzImage”,其输出如下:
[root@kvm-host kvm]# make bzImage
CHK include/config/kernel.release
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
<!- 此处省略数十行编译时的输出信息 ->
LD arch/x86/boot/setup.elf
OBJCOPY arch/x86/boot/setup.bin
OBJCOPY arch/x86/boot/vmlinux.bin
HOSTCC arch/x86/boot/tools/build
BUILD arch/x86/boot/bzImage #这里生成了我们需要的bzImage文件
Setup is 17276 bytes (padded to 17408 bytes).
System is 5662 kB
CRC 3efff614
Kernel: arch/x86/boot/bzImage is ready (#2)
3)编译kernel和bzImage之后编译内核的模块,命令为“make modules”,其命令行输出如下:
[root@kvm-host kvm]# make modules -j 20
<!- 此处省略数千行编译时的输出信息 ->
IHEX2FW firmware/emi26/loader.fw
IHEX2FW firmware/emi26/firmware.fw
IHEX2FW firmware/emi26/bitstream.fw
IHEX2FW firmware/emi62/loader.fw
IHEX2FW firmware/emi62/bitstream.fw
IHEX2FW firmware/emi62/spdif.fw
IHEX2FW firmware/emi62/midi.fw
H16TOFW firmware/edgeport/boot2.fw
H16TOFW firmware/edgeport/boot.fw
H16TOFW firmware/edgeport/down.fw
H16TOFW firmware/edgeport/down2.fw
IHEX2FW firmware/whiteheat_loader.fw
IHEX2FW firmware/whiteheat.fw
IHEX2FW firmware/keyspan_pda/keyspan_pda.fw
IHEX2FW firmware/keyspan_pda/xircom_pgs.fw
- 点赞
- 收藏
- 关注作者
评论(0)