Linux 内核编译升级和制作 rpm

本贴最后更新于 774 天前,其中的信息可能已经时移世异

Linux 内核编译升级和制作 rpm

1.下载内核源码包

kernel 官网:https://www.kernel.org/
下载链接: https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.11.tar.xz
解压到本地任意目录

2.准备 config 文件

复制系统默认的内核 config 文件使用

cp /boot/config-4.18.0-348.7.1.el8_5.x86_64 /home/linux-5.11/.config

3. 安装编译开发环境和依赖软件包

第一种依赖环境安装

dnf -y groupinstall 'Development Tools'
dnf -y install ncurses-devel openssl-devel elfutils-libelf-devel bc ncurses-devel

第二种依赖环境安装

yum install -y gcc make ncurese-devel flex bison openssl-devel elfutils-libelf-devel perl bc

4.开始定制内核模块

1.拷贝现有的.config 配置文件

cp /boot/config-$(uname -r) ./.config

2.编辑 .config 文件注释以下行

ONFIG_MODULE_SIG_ALL=y 此行注释
CONFIG_SYSTEM_TRUSTED_KEYS="certs/rhel.pem" 参数清空
CONFIG_DEBUG_INFO=y 此行注释

3.执行配置开始选择模块

make menuconfig

选择 Load 导入.config 的配置,并修改所需要编译的功能,然后 Save。

4.修改内核名

#注意不要有空格
General setup --->local version -append to kernel release 

5.开始编译内核和模块

编译内核和模块

make -j `cat /proc/cpuinfo | grep 'model name'|wc -l`

安装模块

make modules_install 

安装内核

make install

6.确认已经安装完成模块

[root@inspur-sgx-requester ~]# ls -alh /boot/ | grep vmlinuz
lrwxrwxrwx 1 root root 20 Feb 17 20:48 vmlinuz -> /boot/vmlinuz-5.11.0
-rwxr-xr-x. 1 root root 8.6M Feb 11 15:38 vmlinuz-0-rescue-df7f7bc6624f43eeb1f63939b54686b0
-rwxr-xr-x 1 root root 9.8M Dec 22 21:34 vmlinuz-4.18.0-348.7.1.el8_5.x86_64
-rw-r--r-- 1 root root 172 Dec 22 21:33 .vmlinuz-4.18.0-348.7.1.el8_5.x86_64.hmac
-rw-r--r-- 1 root root 8.8M Feb 17 20:48 vmlinuz-5.11.0
-rwxr-xr-x. 1 root root 8.2M Feb 8 07:10 vmlinuz-5.4.178-1.el8.elrepo.x86_64
-rwxr-xr-x. 1 root root 8.2M Feb 10 23:36 vmlinuz-5.4.179-1.el8.elrepo.x86_64

7.设置以新的内核启动

0 表示最新安装的内核,设置为 0 表示以新版本内核启动:

[root@inspur-sgx-requester ~]# grub2-set-default 0

8.制作成内核 rpm 和 deb 文件

1.安装依赖

yum -y install rpmdevtools

2.同时构建源和二进制 RPM 软件包

cd linux-5.11/
# rpm,同时构建源和二进制RPM软件包
make -j $(getconf _NPROCESSORS_ONLN) rpm-pkg
# 仅构建二进制RPM软件包
make -j $(getconf _NPROCESSORS_ONLN) binrpm-pkg 
# deb 可以将字符串“custom”更改为其他内容
make -j $(getconf _NPROCESSORS_ONLN) deb-pkg LOCALVERSION=-custom

3.文件输出

/root/rpmbuild/
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    915 引用 • 931 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...