日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

修改并編譯Alibaba Cloud Linux內核的rpm包

如果需要在Alibaba Cloud Linux內核中啟用特定的功能或模塊,或者禁用默認內核中的某些功能以滿足特定的性能或安全要求,您可以基于Alibaba Cloud Linux內核源代碼進行修改,并使用rpm軟件包管理工具進行重新編譯和構建自定義的內核rpm包。這樣可以確保所使用的內核與Alibaba Cloud Linux發行版本的兼容性,并且可以靈活地滿足特定需求。本文為您介紹如何基于Alibaba Cloud Linux的ECS環境,在容器中修改并編譯Alibaba Cloud Linux內核的rpm包。

前提條件

已創建基于Alibaba Cloud Linux的ECS實例。具體操作,請參見使用向導創建實例

  • 鏡像:Alibaba Cloud Linux 2或者Alibaba Cloud Linux 3

  • 實例規格:建議選擇32 vCPU及以上的實例規格

    說明

    由于編譯rpm包過程比較耗時,因此建議您使用32 vCPU及以上的實例規格的ECS實例進行編譯,提高編譯效率。

步驟一:準備環境

  1. 遠程連接ECS實例。

    具體操作,請參見通過密碼或密鑰認證登錄Linux實例

  2. 運行以下命令,下載Docker鏡像并進入容器。

    #安裝docker
    sudo yum install -y docker
    #拉取docker鏡像
    sudo docker pull <image_url>
    #拉起容器
    sudo docker run -itd --net host --name alinux-build <image_url> bash
    # 進入容器
    sudo docker exec -it alinux-build bash

    其中<image_url>是Docker鏡像地址,請您根據需要替換Alibaba Cloud Linux 2/3對應的Docker鏡像地址。

    產品

    Docker鏡像地址

    Alibaba Cloud Linux 2

    alibaba-cloud-linux-2-registry.cn-hangzhou.cr.aliyuncs.com/alinux2/alinux2

    Alibaba Cloud Linux 3

    alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/alinux3

    本文以下載Alibaba Cloud Linux 3對應的Docker鏡像為例,示例命令如下:

    sudo yum install -y docker
    sudo docker pull alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/alinux3
    sudo docker run -itd --net host --name alinux-build alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/alinux3 bash
    sudo docker exec -it alinux-build bash

步驟二:下載源碼

運行以下命令,下載并安裝待修改的rpm包。

#下載源碼包
yum install -y wget
wget <rpm_url>/<src.rpm_name>
#安裝源碼包
rpm -ivh <src.rpm_name>

其中<rpm_url>是Alibaba Cloud Linux 2/3對應的rpm包地址、<src.rpm_name>是待修改的src.rpm包名稱,請您根據需要替換。Alibaba Cloud Linux 2/3對應的rpm包下載地址如下:

產品

rpm包地址

Alibaba Cloud Linux 2

https://mirrors.aliyun.com/alinux/2/plus/source/SRPMS/

Alibaba Cloud Linux 3

https://mirrors.aliyun.com/alinux/3/plus/source/SRPMS/kernels/

本文以下載Alibaba Cloud Linux 3的rpm包、src.rpm包名稱是kernel-5.10.134-13.1.al8.src.rpm為例,示例命令如下:

yum install -y wget
wget https://mirrors.aliyun.com/alinux/3/plus/source/SRPMS/kernel-5.10.134-13.1.al8.src.rpm
rpm -ivh kernel-5.10.134-13.1.al8.src.rpm

源碼包安裝完成后,文件保存在/root/rpmbuild目錄中,您可以通過ls /root/rpmbuild命令查詢。查詢結果如下:

image

步驟三:修改源碼

  1. 運行以下命令,安裝依賴組件。

    yum install -y rpm-build yum-utils
    yum-builddep -y <src.rpm_name>

    其中<src.rpm_name>是待修改的src.rpm包名稱,請您根據需要替換。本文示例的src.rpm包名稱是kernel-5.10.134-13.1.al8.src.rpm,示例命令如下:

    yum install -y rpm-build yum-utils
    yum-builddep -y kernel-5.10.134-13.1.al8.src.rpm
  2. 運行以下命令,解壓源碼包。

    # 先進入到源碼目錄
    cd /root/rpmbuild/SOURCES
    # 再對源碼包進行解壓
    tar xf <源碼壓縮包名稱>

    本文示例的<源碼壓縮包名稱>linux-5.10.134-13.1.al8.tar.xz,請您根據實際情況替換。示例命令如下:

    cd /root/rpmbuild/SOURCES
    tar xf linux-5.10.134-13.1.al8.tar.xz
  3. 運行以下命令,進入解壓后的目錄。

    cd <解壓后的源碼包名稱>

    本文示例的<解壓后的源碼包名稱>linux-5.10.134-13.1.al8,請您根據實際情況替換。示例命令如下:

    cd linux-5.10.134-13.1.al8
  4. (可選)請您根據實際需要修改源碼或者config配置。修改源碼的方法根據實際需求而定,本文不做示例。修改config的方法,您可以參考如下操作:

    1. 運行以下命令,查看并選擇待修改的config文件。

      ls /root/rpmbuild/SOURCES

      image

      /root/rpmbuild/SOURCES目錄下有4個config文件,說明如下:

      config文件

      說明

      kernel-5.10.134-aarch64.config

      Arm架構、release版本的config配置。

      kernel-5.10.134-aarch64-debug.config

      Arm架構、debug版本的config配置,僅能用于測試。

      kernel-5.10.134-x86_64.config

      x86架構、release版本的config配置。

      kernel-5.10.134-x86_64-debug.config

      x86架構、debug版本的config配置,僅能用于測試。

      一般根據平臺是Arm還是x86架構,選擇kernel-5.10.134-aarch64.config 或者kernel-5.10.134-x86_64.config文件即可,也可以同時修改兩個平臺的配置。

    2. 運行以下命令,修改config文件。

      本文以x86架構的kernel-5.10.134-x86_64.config文件為例,示例命令如下:

      1. 復制config文件到源碼目錄下。

        cd /root/rpmbuild/SOURCES
        cp kernel-5.10.134-x86_64.config linux-5.10.134-13.1.al8/.config
      2. 進入源碼目錄。

        cd linux-5.10.134-13.1.al8
      3. 刷新config文件中的默認值。

        make olddefconfig
      4. 通過menuconfig進行修改,確保能正確處理好config依賴。

        make menuconfig

        進入menuconfig的界面。您可以按/鍵搜索待修改項,然后根據需要對待修改項進行變更。

        image

      5. 拷貝修改后的config文件,覆蓋原有配置。

        cp .config ../kernel-5.10.134-x86_64.config
      6. 返回上級目錄。

        cd ..
      說明

      您可以按照同樣的方法修改Arm架構的config配置。

  5. 運行以下命令,更新版本號

    cd /root/rpmbuild/SPECS
    vi kernel.spec

    修改建議:

    • 如果是類似5.10.134-12這種大版本號,建議將其版本更新為5.10.134-12.0.1這類x.y.z的形式,以便與官方的版本號區分。

    • 如果是類似5.10.134-13.1這種x.y的小版本號,建議將其版本更新為5.10.134-13.1.1

    本文以將5.10.134-13.1版本號更新為5.10.134-13.1.1為例。在該文件中,找到%define pkgrelease %{?KREL:%{KREL}}%{?!KREL:13.1}字段,將其更新為%define pkgrelease %{?KREL:%{KREL}}%{?!KREL:13.1.1}1

    同時您還可以在kernel.specchangelog中補充此次的變更說明。2

步驟四:重新構建rpm包

  1. 運行以下命令,重新壓縮src.rpm包。

    本文示例的源碼包名稱是linux-5.10.134-13.1.al8,示例命令如下。

    1. 進入SOURCES目錄。

      cd /root/rpmbuild/SOURCES/
    2. 修改源碼目錄的文件名。

      上述示例中將5.10.134-13.1版本號更新為5.10.134-13.1.1,因此修改源碼目錄的文件名為linux-5.10.134-13.1.1.al8,請您根據實際情況進行修改。

      mv linux-5.10.134-13.1.al8 linux-5.10.134-13.1.1.al8
    3. 重新壓縮為tar包。

      tar cJf linux-5.10.134-13.1.1.al8.tar.xz linux-5.10.134-13.1.1.al8
    4. 移除解壓的目錄以及舊的壓縮包。

      rm -rf linux-5.10.134-13.1.al8
      rm linux-5.10.134-13.1.al8.tar.xz
  2. 運行以下命令,重新構建src.rpm包。

    cd /root
    rpmbuild -bs rpmbuild/SPECS/kernel.spec

    執行完成后返回如下信息,表示src.rpm包存放在/root/rpmbuild/SRPMS/kernel-5.10.134-13.1.1.al8.src.rpm

    image

  3. (條件必選)運行以下命令,降級dwarves軟件包。

    如果您的內核版本(通過uname -r命令查詢)高于5.10.014版本,需使用老版本dwarves進行編譯,否則可能會編譯出錯。

    yum downgrade dwarves
  4. 運行以下命令,重新構建rpm包。

    rpmbuild --rebuild /root/rpmbuild/SRPMS/<src.rpm_name>

    其中<src.rpm_name>是修改后的src.rpm包名稱,本文示例修改后的src.rpm包名稱是kernel-5.10.134-13.1.1.al8.src.rpm,請您根據實際情況替換。示例命令如下:

    rpmbuild --rebuild /root/rpmbuild/SRPMS/kernel-5.10.134-13.1.1.al8.src.rpm

    編譯rpm包時間較長,請您耐心等待。返回如下信息時,表示rpm包已構建成功。1