文章目录
准备环节
克隆kvm主线代码
- 克隆主线
git clone https://mirrors.tuna.tsinghua.edu.cn/git/linux.git
更新成功后在当前目录出现 linux 目录,进入linux目录 - 添加kvm分支
git remote add kvm git://git.kernel.org/pub/scm/virt/kvm/kvm.git - 获取kvm分支更新内容
git fetch kvm - 使用
git branch -a如输出类似下图侧表示成功

准备编译环境
- 更新系统
yum update -y - 安装开发组软件
yum group install "Develop*" -y

- 安装依赖
yum install bc python3 ncurses ncurses-devel openssl-devel -y
编译前需了解的知识
查看make支持命令

- 其中menuconfig需要 ncurses库支持,menuconfig提供终端交互方式配置内核参数
- olddefconfig基于现有的.config文件升级,其中新添加的特性按照 arch/x86/configs/x86_64_defconfig自动填充
编译步骤
- 编译内核
- 编译initramfs文件
- 编译module模块
编译内核
拷贝当前内核的配置文件
- 使用uname -a查看当前内核编号

- 进入/boot目录找到与内核编号相同的配置文件,拷贝文件到内核源码目录内,文件名为 .config

- 执行
make olddefconfig - 执行
make vmlinux -j cpu线程数编译linux内核
注意!!!
如果编译过程中遇到如图所示的错误,请按照下面步骤操作,没有可忽略

- 编辑 .config文件,清空 CONFIG_SYSTEM_TRUSTED_KEYS参数

编译bzImage
- 执行
make bzImage即可

出现 bzImage is ready即可
编译modules
- 执行
make modules即可

安装新内核
推荐关闭selinux
安装模块
- 执行
make modules_install安装模块 - 执行
make install安装bzImage和kernel
检查默认引导内核
执行grubby --info DEFAULT,输出如下图,其中内核编号和编译的相同即可











