添加内核补丁
下载网址
内核源码rpm包(例如:kernel-3.10.0-957.el7.src.rpm)地址如下:

内核源码rpm包的版本需与操作系统内核版本一致。
redhat官网:https://access.redhat.com/downloads/
centos网站:https://vault.centos.org/7.6.1810/os/Source/SPackages/
操作步骤
- 安装并解压源码。
- 修改内核代码。
- 执行如下命令,进入/root/rpmbuild/SOURCES/linux-3.10.0-957.el7目录。
- 使用vi命令修改“drivers/firmware/dmi_scan.c”和“include/linux/dmi.h”文件中的相关函数。修改内容如下,具体请参见https://lore.kernel.org/lkml/1448575344-19107-1-git-send-email-jordan_hargrave@dell.com/#Z30drivers:firmware:dmi_scan.c。
以下代码行前“+”表示新增该行内容,代码行前“-”表示删除该行内容。
图1 “drivers/firmware/dmi_scan.c”文件图2 “include/linux/dmi.h”文件
- 重新压缩内核代码。
- 编译源码包。
- 卸载OS上原有的内核rpm包,安装新编译好的内核rpm包。
- 执行如下命令,查询OS上的原有的内核rpm包。
如下所示:
- 执行如下命令,卸载OS上原有的内核rpm包。
如下所示:
保留abrt-addon-kerneloops-2.1.11-60.el7.centos.x86_64文件。
- 执行如下命令,安装4新编译的kernel、kernel-devel、kernel-headers、kernel-tools-libs、kernel-tools内核rpm包。
rpm -Uvh kernel-3.10.0-957.el7.x86_64.rpm
rpm -Uvh kernel-devel-3.10.0-957.el7.x86_64.rpm
rpm -Uvh kernel-headers-3.10.0-957.el7.x86_64.rpm
rpm -Uvh kernel-tools-libs-3.10.0-957.el7.x86_64.rpm
rpm -Uvh kernel-tools-3.10.0-957.el7.x86_64.rpm
如下所示:
- 执行如下命令,查询OS上的原有的内核rpm包。
故障处理
执行rpmbuild命令报编译错误,请添加如下依赖。

安装依赖的.rpm包请从OS镜像包中获取,具体依赖请根据实际环境的报错信息进行添加。
报错内容:
error: Failed build dependencies: xmlto is needed by kernel-3.10.0-957.el7.x86_64 asciidoc is needed by kernel-3.10.0-957.el7.x86_64 hmaccalc is needed by kernel-3.10.0-957.el7.x86_64 pesign >= 0.109-4 is needed by kernel-3.10.0-957.el7.x86_64 elfutils-devel is needed by kernel-3.10.0-957.el7.x86_64 zlib-devel is needed by kernel-3.10.0-957.el7.x86_64 binutils-devel is needed by kernel-3.10.0-957.el7.x86_64 newt-devel is needed by kernel-3.10.0-957.el7.x86_64 python-devel is needed by kernel-3.10.0-957.el7.x86_64 perl(ExtUtils::Embed) is needed by kernel-3.10.0-957.el7.x86_64 audit-libs-devel is needed by kernel-3.10.0-957.el7.x86_64 numactl-devel is needed by kernel-3.10.0-957.el7.x86_64 pciutils-devel is needed by kernel-3.10.0-957.el7.x86_64
添加如下依赖:
rpm -ivh zlib-devel-1.2.7-13.el7.x86_64.rpm rpm -ivh boost-regex-1.53.0-18.el7.x86_64.rpm rpm -ivh source-highlight-3.1.6-6.el7.x86_64.rpm rpm -ivh asciidoc-8.6.8-5.el7.noarch.rpm rpm -ivh hmaccalc-0.9.13-4.el7.x86_64.rpm rpm -ivh opensc-0.13.0-9.el7.x86_64.rpm rpm -ivh pesign-0.109-6.el7.x86_64.rpm rpm -ivh elfutils-libelf-devel-0.158-3.el7.x86_64.rpm rpm -ivh elfutils-devel-0.158-3.el7.x86_64.rpm rpm -ivh binutils-devel-2.23.52.0.1-16.el7.x86_64.rpm rpm -ivh newt-0.52.15-4.el7.x86_64.rpm rpm -ivh slang-devel-2.2.4-11.el7.x86_64.rpm rpm -ivh newt-devel-0.52.15-4.el7.x86_64.rpm rpm -ivh python-devel-2.7.5-16.el7.x86_64.rpm rpm -ivh perl-ExtUtils-Embed-1.30-283.el7.noarch.rpm rpm -ivh audit-libs-devel-2.3.3-4.el7.x86_64.rpm rpm -ivh numactl-devel-2.0.9-2.el7.x86_64.rpm rpm -ivh pciutils-3.2.1-4.el7.x86_64.rpm rpm -ivh pciutils-devel-3.2.1-4.el7.x86_64.rpm rpm -ivh xmlto-0.0.25-7.el7.x86_64.rpm –nodeps
父主题: 参考信息