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

编译内核

本文档中,不同操作系统下的操作若有不同,会进行说明区分,若未说明,则该操作在两个操作系统下一致。

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. 获取内核配置文件。
    1
    2
    cd /home/kernel-bcache/linux-4.14.0-115.10.1.el7a
    cp ../kernel-alt-4.14.0-aarch64.config .config
    
  5. 配置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”返回至第一层。

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

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

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

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

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

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

    5. 确认PageSize为4K。

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

    输入“y”确认。

  9. 获取Bcache补丁并替换源码。
    1. 下载补丁文件。

      下载链接:https://mirrors.huaweicloud.com/kunpeng/archive/kunpeng_solution/storage/Patch/

    2. 拷贝补丁包至“/home”目录并解压。
      1
      2
      3
      cd /home
      mkdir -p /home/bcache_patch
      tar -zxvf bcache_patch.tar.gz -C /home/bcache_patch
      
    3. 替换Bcache源码文件。
      1
      cp /home/bcache_patch/* /home/kernel-bcache/linux-4.14.0-115.10.1.el7a/drivers/md/bcache
      
  10. 生成RPM包,执行如下指令将在/root/rpmbuild/RPMS/aarch64/路径下生成RPM包。
    make binrpm-pkg -j48
    make rpm-pkg -j

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. 获取内核配置文件。
    1
    2
    cd /home/kernel-bcache/kernel
    cp arch/arm64/configs/openeuler_defconfig .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. 确认Bcache模块打开。

    3. 确认PageSize为4K。

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

    输入“y”确认。

  10. 生成RPM包,执行如下指令将在/root/rpmbuild/RPMS/aarch64/路径下生成RPM包。
    make binrpm-pkg -j48
    make rpm-pkg -j
搜索结果
找到“0”个结果

当前产品无相关内容

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