中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

编译安装内核

  • 本文档中,不同操作系统下的操作若有不同,会进行说明区分,若未说明,则该操作在两个操作系统下一致。
  • 编译安装内核编译安装Bcache是作用相同,是并列关系,按需选择其中一个执行即可。

CentOS 7.6

  1. 创建目录并进入该目录。
    1
    2
    mkdir -p /home/kernel-bcache
    cd /home/kernel-bcache
    
  2. 获取内核源码。
    1. 查看系统内核版本。
      1
      2
      3
      uname -a
      查询到如下版本内核
      Linux ceph3 4.14.0-115.el7a.0.1.aarch64 #1 SMP Sun Nov 25 20:54:21 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
      
    2. 下载对应版本内核源码包至“/home/kernel-bcache”目录。

      下载路径:http://vault.centos.org/7.6.1810/updates/Source/SPackages/

    3. 解压源码包。
      1
      2
      rpm2cpio kernel-alt-4.14.0-115.10.1.el7a.src.rpm | cpio -divm
      tar -xvf linux-4.14.0-115.10.1.el7a.tar.xz
      
  3. 安装依赖。
    1
    yum -y install rpm-build m4 gcc xmlto asciidoc openssl-devel hmaccalc python-devel newt-devel perl-ExtUtils-Embed elfutils-devel zlib-devel binutils-devel bison audit-libs-devel java-devel numactl-devel pciutils-devel ncurses-devel createrepo genisoimage net-tools git bc
    
  4. 替换Bcache模块。
    1. 获取Bcache源码放到“/home”

      下载链接:https://gitee.com/kunpengcompute/bcache/repository/archive/smart-write-cache.zip

    2. 解压源码。
      1
      2
      cd /home
      unzip bcache-smart-write-cache.zip
      
    3. 替换Bcache。
      1
      cp -rf /home/bcache-smart-write-cache/drivers/md/bcache /home/kernel-bcache/linux-4.14.0-115.10.1.el7a/drivers/md/
      
  5. 获取内核配置文件。
    1
    2
    cd /home/kernel-bcache/linux-4.14.0-115.10.1.el7a
    cp ../kernel-alt-4.14.0-aarch64.config .config
    
  6. 配置Bcache模块。
    1
    make menuconfig
    
    1. 选择Device Drivers

    2. “Enter”键进入下一级菜单,选择Multiple device driver support (RAID and LVM )

    3. “Enter”键进入下一级菜单,选中Block device as cache,键盘输入“M”选中该配置。

    4. 选择两次“Exit”返回至第一层。

  7. 修改内核PageSize大小为4KB。
    1. 选择Kernel Features

    2. “Enter”键进入下一级菜单,选择Page size(64KB)

    3. “Enter”键进入选择,按“Space”键选择4KB。

    4. 选择两次“Exit”保存并退出。

  8. 修改配置文件。
    1. 打开文件。
      1
      vi .config
      
    2. “i”进入编辑模式,在第一行添加“#aarm64”。

    3. “Esc”键退出编辑模式。
    4. 确认Bcache模块已打开。

    5. 确认PageSize为4K。

    6. 输入:wq!并按“Enter”键保存退出文件。
  9. 覆盖默认配置文件。
    1
    cp .config ../kernel-alt-4.14.0-aarch64.config
    

    输入“y”确认。

  10. 生成RPM包,执行结束后将在如下路径生成RPM包,/root/rpmbuild/RPMS/aarch64/
    1
    2
    make binrpm-pkg -j48
    make rpm-pkg -j
    
  11. 10中生成的内核RPM包上传至所有需要使用智能写Cache的服务器的“/home/kernel-rpm”目录。
    1
    2
    mkdir -p /home/kernel-rpm
    cp  /root/rpmbuild/RPMS/aarch64/* /home/kernel-rpm
    
  12. 安装内核RPM包,安装生成的3个RPM包。
    1
    cd /home/kernel-rpm
    

    yum -y install kernel-4.14.0-1.aarch64.rpm kernel-devel-4.14.0-1.aarch64.rpm kernel-headers-4.14.0-1.aarch64.rpm

  13. 查看默认内核启动项。
    1
    grub2-editenv list
    

    查看其中的默认内核版本号。

    • 如果默认版本是新安装的内核版本,则跳过14
    • 如果默认版本不是新安装的内核版本,则执行14
  14. 修改默认内核启动项。
    1
    cat /etc/grub2-efi.cfg  | grep CentOS
    

    其中“CentOS Linux (4.14.0-115.10.1.el7a.aarch64) 7 (AltArch)”为新装内核版本。

    grub2-set-default "CentOS Linux (4.14.0-115.10.1.el7a.aarch64) 7 (AltArch)"
  15. 重启系统。
    1
    reboot
    

openEuler 20.03

  1. 创建目录并进入该目录。
    1
    2
    mkdir -p /home/kernel-bcache
    cd /home/kernel-bcache
    
  2. 获取内核源码。
    1. 查看系统内核版本。
      1
      2
      3
      uname -a
      查询到如下版本内核
      Linux localhost.localdomain 4.19.90-2109.1.0.0108.oe1.aarch64 #1 SMP Mon Sep 6 03:51:48 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux
      
    2. 下载对应版本内核源码包至“/home/kernel-bcache”目录。

      下载路径:

      https://mirrors.tools.huawei.com/openeuler/openEuler-20.03-LTS-SP1/source/Packages/

    3. 解压源码包。
      1
      2
      rpm2cpio kernel-4.19.90-2109.1.0.0108.oe1.src.rpm | cpio -divm
      tar -zxvf kernel.tar.gz
      
  3. 配置镜像源。
    1. 将OS对应的everything镜像源文件上传到服务器。

      通过SFTP工具将“openEuler-***-everything-aarch64-dvd.iso”上传到服务器上“/root”目录下。

    2. 创建一个本地文件夹用于挂载本地镜像。
      1
      mkdir -p /iso
      

      此处以在根目录下创建iso文件夹为例。

    3. 将iso文件挂载到本地文件夹。
      1
      mount /root/openEuler-***-everything-aarch64-dvd.iso /iso
      
    4. 创建并配置镜像Yum源。
      1. 创建repo文件。
        1
        vi /etc/yum.repos.d/openEuler.repo
        
      2. “i”键进入编辑模式,在文件中加入以下内容,配置挂载镜像Yum源。
        1
        2
        3
        4
        5
        6
        [Base]
        name=Base
        baseurl=file:///iso
        enabled=1
        gpgcheck=0
        priority=1
        
      3. 添加以下内容,配置openEuler网络源。
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26
        27
        28
        29
        30
        31
        32
        [openEuler-source]
        name=openEuler-source
        baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/source/
        enabled=1
        gpgcheck=1
        gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/source/RPM-GPG-KEY-openEuler
        
        [openEuler-os]
        name=openEuler-os
        baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/OS/aarch64/
        enabled=0
        gpgcheck=1
        gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/OS/aarch64/RPM-GPG-KEY-openEuler
        
        [openEuler-everything]
        name=openEuler-everything
        baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/everything/aarch64/
        enabled=0
        gpgcheck=1
        gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/everything/aarch64/RPM-GPG-KEY-openEuler
        
        [openEuler-EPOL]
        name=openEuler-epol
        baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/EPOL/aarch64/
        enabled=1
        gpgcheck=0
        
        [openEuler-update]
        name=openEuler-update
        baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/update/aarch64/
        enabled=1
        gpgcheck=0
        
      4. “Esc”键退出编辑模式,输入:wq!并按“Enter”键保存退出文件。
  4. 安装依赖。
    1
    dnf -y install ncurses-devel bison m4 flex rpm-build rpmdevtools asciidoc audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel gtk2-devel java-1.8.0-openjdk-devel xz-devel libbabeltrace-devel libunwind-devel newt-devel numactl-devel openssl-devel pciutils-devel perl-generators python3-devel python3-docutils xmlto zlib-devel mkeuleros createrepo genisoimage
    
  5. 替换Bcache模块。
    1. 获取Bcache源码放到“/home”

      下载链接:https://gitee.com/openeuler/kernel/tree/openEuler-1.0-LTS/kernel

    2. 解压源码。
      1
      2
      cd /home
      unzip kernel-openEuler-1.0-LTS.zip
      
    3. 替换Bcache。
      1
      cp -rf /home/kernel-openEuler-1.0-LTS/drivers/md/bcache /home/kernel-bcache/kernel/drivers/md/
      
  6. 获取内核配置文件。
    1
    2
    cd /home/kernel-bcache/kernel
    cp arch/arm64/configs/openeuler_defconfig .config
    
  7. 配置Bcache模块。
    1
    make menuconfig
    
    1. 选择Device Drivers

    2. “Enter”键进入下一级菜单,选择Multiple device driver support (RAID and LVM )

    3. “Enter”键进入下一级菜单,选中Block device as cache,键盘输入“M”选中该配置。

    4. 选择两次“Exit”返回至第一层。

  8. 修改内核PageSize大小为4KB。
    1. 选择Kernel Features

    2. “Enter”键进入下一级菜单,选择Page size(64KB)

    3. “Enter”键进入选择,按“Space”键选择4KB。

    4. 选择两次“Exit”保存并退出。

  9. 确认配置文件。
    1. 打开文件。
      1
      vi .config
      
    2. 确认Bcache模块打开。

    3. 确认PageSize为4K。

    4. 输入:q!并按“Enter”键退出文件。
  10. 覆盖默认配置文件。
    1
    cp .config arch/arm64/configs/openeuler_defconfig
    

    输入“y”确认。

  11. 生成RPM包,执行如下指令将在/root/rpmbuild/RPMS/aarch64/路径下生成RPM包。
    make binrpm-pkg -j48
    make rpm-pkg -j
  12. 11中生成的内核RPM包上传至所有需要使用智能写Cache的服务器的“/home/kernel-rpm”目录。
    1
    2
    mkdir -p /home/kernel-rpm
    cp  /root/rpmbuild/RPMS/aarch64/* /home/kernel-rpm
    
  13. 安装内核RPM包(安装RPM包的版本需根据生成的包做相应的变化)。
    1
    2
    cd /home/kernel-rpm
    dnf -y install install kernel-4.14.0-1.aarch64.rpm  kernel-devel-4.14.0-1.aarch64.rpm  kernel-headers-4.14.0-1.aarch64.rpm
    
  14. 查看默认内核启动项。
    1
    grub2-editenv list
    

    查看其中的默认内核版本号。

    • 如果默认版本是新安装的内核版本,则跳过15
    • 如果默认版本不是新安装的内核版本,则执行15
  15. 修改默认内核启动项。
    1
    cat /etc/grub2-efi.cfg  | grep openEuler
    

    其中“openEuler (4.19.90-2109.1.0.0108.oe1.aarch64) 20.03 (LTS-SP1)”为新安装内核版本。

    grub2-set-default "openEuler (4.19.90-2109.1.0.0108.oe1.aarch64) 20.03 (LTS-SP1)"
  16. 重启系统。
    1
    reboot
    
搜索结果
找到“0”个结果

当前产品无相关内容

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