深入理解KVM - 编译新内核

准备环节

克隆kvm主线代码

这部分有两个办法一个是直接克隆代码,适合能翻墙的用户,另外一种是从国内网站克隆kernel主线之后更新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如输出类似下图侧表示成功
    在这里插入图片描述

准备编译环境

推荐CentOS8及以上版本

  • 更新系统yum update -y
  • 安装开发组软件yum group install "Develop*" -y
    在这里插入图片描述
  • 安装依赖
yum install bc python3 ncurses ncurses-devel openssl-devel -y

编译前需了解的知识

查看make支持命令

在这里插入图片描述

  1. 其中menuconfig需要 ncurses库支持,menuconfig提供终端交互方式配置内核参数
  2. olddefconfig基于现有的.config文件升级,其中新添加的特性按照 arch/x86/configs/x86_64_defconfig自动填充

编译步骤

  1. 编译内核
  2. 编译initramfs文件
  3. 编译module模块

编译内核

拷贝当前内核的配置文件

  • 使用uname -a查看当前内核编号
    在这里插入图片描述
  • 进入/boot目录找到与内核编号相同的配置文件,拷贝文件到内核源码目录内,文件名为 .config
    在这里插入图片描述
  • 执行make olddefconfig
  • 执行make vmlinux -j cpu线程数编译linux内核

若编译过程中出现下图所示,则使用’make vmlinux -j1’查看错误提示,使用百度和谷歌搜索坚决方案
在这里插入图片描述

注意!!!
如果编译过程中遇到如图所示的错误,请按照下面步骤操作,没有可忽略
在这里插入图片描述

  1. 编辑 .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,输出如下图,其中内核编号和编译的相同即可
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值