文档
注册

添加内核补丁

下载网址

内核源码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/

操作步骤

  1. 安装并解压源码。
    1. 执行如下命令,安装源码包。

      rpm -ivh kernel-3.10.0-957.el7.src.rpm

    2. 执行如下命令,进入/root/rpmbuild/SOURCES目录。

      cd /root/rpmbuild/SOURCES/

    3. 执行如下命令,解压源码包。

      xz -d linux-3.10.0-957.el7.tar.xz

      tar xvf linux-3.10.0-957.el7.tar

  2. 修改内核代码。
    1. 执行如下命令,进入/root/rpmbuild/SOURCES/linux-3.10.0-957.el7目录。

      cd /root/rpmbuild/SOURCES/linux-3.10.0-957.el7

    2. 使用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”文件
  3. 重新压缩内核代码。
    1. 执行如下命令,进入linux-3.10.0-957.el7文件夹所在目录。

      cd /root/rpmbuild/SOURCES

    2. 执行如下命令,压缩源码文件。

      tar -cf linux-3.10.0-957.el7.tar linux-3.10.0-957.el7

      xz -z linux-3.10.0-957.el7.tar

    3. 删除源码文件夹。

      rm -rf linux-3.10.0-957.el7

  4. 编译源码包。
    1. 执行如下命令,进入/root/rpmbuild/SPECS/目录。

      cd ../SPECS/

    2. 执行如下命令,重构源码包。

      rpmbuild -ba kernel.spec

      生成的rpm包在/root/rpmbuild/RPMS/x86_64目录。

  5. 卸载OS上原有的内核rpm包,安装新编译好的内核rpm包。
    1. 执行如下命令,查询OS上的原有的内核rpm包。

      rpm -qa |grep kernel

      如下所示:

    2. 执行如下命令,卸载OS上原有的内核rpm包。

      rpm -e 文件名

      如下所示:

      保留abrt-addon-kerneloops-2.1.11-60.el7.centos.x86_64文件。

    3. 执行如下命令,安装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

      如下所示:

故障处理

执行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
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词