首页 > 其他分享 >编译RHEL 8.7 kernel 并重新安装

编译RHEL 8.7 kernel 并重新安装

时间:2023-07-26 23:33:07浏览次数:31  
标签:kernel 重新安装 8.7 make sudo 编译 内核 RHEL

背景:最近遇到一个bug,需要修改 RHEL 8.7 kernel config 的配置参数,然后重新安装该kernel。踩过一些坑,复盘整理。

查询当前的kernel

uname -r
4.18.0-477.15.1.el8_8.x86_64

这是当前运行的内核版本。版本号的不同部分表示以下信息:
• 4.18.0: 内核的主版本号、次版本号和发布版本号。
• 477.15.1.el8_8: 补丁级别和发行版本信息。
• x86_64: 内核的体系结构,这里是64位

RHEL 查询当前系统已经安装的kernel

如下有三种常用的方式:

#1 rpm -qa | grep kernel | xargs rpm -qi
#2 sudo yum list installed kernel
#3 rpm -qa | grep -i kernel

RHEL 选择并切换到具体的kernel

这部分与Ubuntu 不同,不能直接sudo update-grub, RHEL/CentOS 的方式先修改 /etc/default/grub

sudo vim /etc/default/grub #更换选择的kernel
sudo grub2-mkconfig -o /boot/grub2/grub.cfg # 更新配置
sudo reboot

前面的铺垫结束,现在可以开始下载source code,修改config, 然后重编kernel。

如何安装src rpm

sudo useradd -s /sbin/nologin mockbuild
sudo rpm -ivh  kernel-4.18.0-425.3.1.el8.src.rpm
cd  /root/rpmbuild/SOURCES/
ll
-rw-rw-r-- 1 mockbuild mock 120898584 Sep 30  2022 linux-4.18.0-425.3.1.el8.tar.xz

 找到source code 包 然后mv 出来并解压缩

Compile Kernel 直接安装 (在本地compile 并安装)

make mrproper

 作用是在每次配置并重新编译内核前需要先执行make mrproper命令清理源代码树,包括过去曾经配置的内核配置文件.config都将被清除。即进行新的编译工作时将原来老的配置文件给删除到,以免影响新的内核编译。即检查有无不正确的.o文件和依赖关系,如果使用刚下载的完整的源程序包即第一次进行编译,那么本步可以省略。而如果你多次使用了这些源程序编译内核,则最好要先运行。

make menuconfig
使用make menuconfig 生成的内核配置文件,决定将内核的各个功能系统编译进内核还是编译为模块还是不编译。

sudo dnf search  ncurses
sudo dnf install ncurses-devel.x86_64
$ nproc
96
#make –j96
生成内核模块和vmlinuz,initrd.img,Symtem.map文件。
注:#make相当于分别执行#make bzImage 和#make modules,由于是本机替换内核,所以无需分开执行。
build 完之后 echo $? 看是否返回值为0

 sudo make  modules_install
编译成功后,系统会在/lib/modules目录下生成一个子目录,里面存放着新内核的所有可加载模块(即将编译好的modules拷贝到/lib/modules下)。

DEPMOD  4.18.04.18.0-425.13.1_default.el8_7

make install

Issue:

# 1  CONFIG_SYSTEM_TRUSTED_KEYS

此时需要在Kernel文件夹"linux-5.8.1"中,找到"./config"文件,禁掉"certs/rhel.pem":
将CONFIG_SYSTEM_TRUSTED_KEYS=“certs/rhel.pem”,
改成CONFIG_SYSTEM_TRUSTED_KEYS=""

# 2  提示"Try to disable CONFIG_DEBUG_INFO_BTF"

屏蔽这一条config

 

标签:kernel,重新安装,8.7,make,sudo,编译,内核,RHEL
From: https://www.cnblogs.com/aalan/p/17583807.html

相关文章

  • Mac电脑如何重新安装 macOS系统
    Mac电脑在日常的使用中难免会出现一些问题,从而导致电脑需要重新安装系统。这时你可以使用电脑的内建恢复系统“macOS恢复”来重新安装Mac操作系统。不但简单快捷,而且重新安装后不会移除你的个人数据。macOS最新正式版系统下载将Mac关机选取苹果菜单>“关机”,然后等待M......
  • CentOS/RHEL常用命令
    查看Linux的版本cat/etc/system-release查看所有进程psaux查到进程号后终结该进程 kill-9进程号cd-返回上次所在目录(这个应该很实用,O(∩_∩)O哈哈~)sudo-i sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如hal......
  • 关于菜鸡学习RHEL8的一些小笔记--->linux上的ssh远程
    远程:*在日常使用中,windows系统可以使用远程桌面来管理远程的windows操作系统*而在Linux上,可以使用openssh套件来进行管理(默认安装)在openssh上是使用安全加密的套接字通信方式openssh:openssh是一个典型的C/S架构,同时拥有openssh-clent客户端以及openssh-server服务端,如下所示:通过ssh......
  • 升级Elasticsearch到8.7.1版本,我给自己挖了很多坑......
    转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。最近因为某些原因,需要将ES升级到8.7.1版本。之前用的ES版本比较老了,这次部署新版本ES,发现变化蛮大的,一小心又踩了一些坑,还给自己挖了一些坑......1.java版本不符合需求,es启动失败报错内......
  • Red Hat 开始限制 RHEL 源码可得性
    导读RedHat宣布,其企业发行版RHEL(RedHatEnterprise Linux)相关源码现在只能通过CentOS Stream进行公开访问,但付费客户和合作伙伴仍可以通过RedHatCustomerPortal访问源代码。此举将加大社区发行版,如AlmaLinux、RockyLinux以及OracleLinux等提供1:1二进制兼容构建......
  • curl -I 192.168.74.128 拒绝连接
     查看直接的linuxweb服务器信息 curlwww.baidu.com都是正常的,唯独curl本机的ip地址就一直报错 由于使用的yum安装的nginx,nginx的一些模块依赖一些lib库,所以在安装nginx,也必须先安装这些lib库,这些依赖库主要有g++、gcc、openssl-devel、pcre-devel和zlib-devel所以执......
  • RHEL 10 不包含 X.org 显示服务器
    导读红帽企业 Linux 发行版RHEL10将不再包含X.orgServer。官方文档称,X.org 显示服务器已被弃用,并将在以后的主RHEL发行版本(从RHEL10开始)中删除。目前的RHEL9则仍包含X.org显示服务器,并会提供10年的支持,持续到2032年。红帽没有解释弃用X.org的原......
  • rhel8重置root密码
    目的重置root密码envrhel8.x步骤//1.重启进入启动项引导界面,e键进入内核编辑界面//2.linux参数这行的最后面追加rd.break参数,然后按下Ctrl+X组合键运行修改过的内核程序//3.依次输入以下命令,再连续按下两次Ctrl+D组合键盘来退出并重启mount-oremount,rw/sysro......
  • 华为斥8.7亿力图抢占机器人行业市场!
    原创|文BFT机器人近日,由华为科技有限公司全资拥有的东莞积木机械有限公司有限公司成立,该公司的注册资本为8.7亿元。公司的法定代表人、董事长为李建国。从华为的这一动向我们可以品出,华为入局机器人的决心。01华为着手不断扩大在机器人行业的布局其实华为对机器人领域的开始涉足......
  • G-LAB 带你了解 RHEL 9 新特性
    OpenSSH:新增禁止root的密码登录Cockpit:RHEL的Web控制台DNF-3:软件安装方法NetworkManager:网络管理的主要组件Nftables:默认的用户空间防火墙WireGuard:快速、安全的VPN隧道(技术预览)Podman&Skopeo:新一代容器运行时与镜像搬运工具LVM-VDO:以逻辑卷形式使用VDORHEL9新特性与演......