Tüm Ürünler
Search
Belge Merkezi

Alibaba Cloud Linux:Modify and build Alibaba Cloud Linux kernel RPM packages

Son Güncelleme:Oct 08, 2026

Belirli çekirdek özelliklerini etkinleştirmek veya devre dışı bırakmak için özel Alibaba Cloud Linux çekirdek RPM paketleri oluşturun. Bu konuda, bir ECS örneğindeki Docker konteynerinde çekirdek kaynak kodunu nasıl değiştireceğiniz ve RPM paketlerini nasıl yeniden oluşturacağınız açıklanmaktadır.

Ön koşullar

Alibaba Cloud Linux çalıştıran bir ECS örneğinizin olması gerekir. Daha fazla bilgi için bkz. Create an instance with Custom Launch.

  • Görüntü: Alibaba Cloud Linux 2 veya Alibaba Cloud Linux 3.

  • Örnek türü: 32 vCPU veya daha fazlası önerilir.

    Not

    Çekirdek derlemeleri yoğun kaynak gerektirir. Derleme süresini azaltmak için 32 veya daha fazla vCPU'ya sahip bir örnek kullanın.

Adım 1: Ortamı hazırlama

  1. ECS örneğinize bağlanın.

    Daha fazla bilgi için bkz. Log on to a Linux instance using Workbench.

  2. Docker görüntüsünü indirin ve konteyneri başlatın.

    #Install Docker.
    sudo yum install -y docker
    #Pull a Docker image.
    sudo docker pull <image_url>
    #Start the Docker container.
    sudo docker run -itd --net host --name alinux-build <image_url> bash
    #Access the Docker container.
    sudo docker exec -it alinux-build bash

    <image_url> ifadesini Alibaba Cloud Linux sürümünüzün URL'si ile değiştirin.


    Görüntü


    Docker görüntüsü URL'si


    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

    Bu örnekte Alibaba Cloud Linux 3 için Docker görüntüsü kullanılmaktadır.

    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

Adım 2: Kaynak kodunu indirme

Kaynak RPM paketini indirin ve yükleyin.

# Download the source code package.
yum install -y wget
wget <rpm_url>/<src.rpm_name>
# Install the source code package.
rpm -ivh <src.rpm_name>

Bu örnekte, Alibaba Cloud Linux 3 için kernel-5.10.134-13.1.al8.src.rpm paketi indirilmektedir.

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

Dosyalar /root/rpmbuild dizinine yüklenir. Doğrulamak için ls /root/rpmbuild komutunu çalıştırın:

image

Adım 3: Kaynak kodunu değiştirme

  1. Derleme bağımlılıklarını yükleyin.

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

    <src.rpm_name> ifadesini kaynak RPM paketinizin adıyla değiştirin. Örnek: 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. Kaynak paketini çıkarın.

    # Enter the source code directory.
    cd /root/rpmbuild/SOURCES
    # Decompress the source code package.
    tar xf <Name of the compressed source code package>

    Bu örnekte, <source_archive_name> değeri linux-5.10.134-13.1.al8.tar.xz olarak belirtilmiştir.

    cd /root/rpmbuild/SOURCES
    tar xf linux-5.10.134-13.1.al8.tar.xz
  3. Çıkarılan dizine gidin.

    cd <Name of the decompressed source code package>

    Bu örnekte, <extracted_source_directory_name> değeri linux-5.10.134-13.1.al8 olarak belirtilmiştir.

    cd linux-5.10.134-13.1.al8
  4. (İsteğe bağlı) Yapılandırma dosyalarını değiştirin.

    Kaynak kodunu veya bir config dosyasını değiştirebilirsiniz. Aşağıdaki adımlarda bir config dosyasının nasıl değiştirileceği gösterilmektedir.

    1. Mevcut yapılandırma dosyalarını listeleyin.

      ls /root/rpmbuild/SOURCES

      image

      /root/rpmbuild/SOURCES dizini dört adet config dosyası içermektedir.


      config dosyası


      Açıklama


      kernel-5.10.134-aarch64.config


      Arm mimarisi, yayın sürümü.


      kernel-5.10.134-aarch64-debug.config


      Arm mimarisi, hata ayıklama sürümü. Yalnızca test amaçlıdır.


      kernel-5.10.134-x86_64.config


      x86 mimarisi, yayın sürümü.


      kernel-5.10.134-x86_64-debug.config


      x86 mimarisi, hata ayıklama sürümü. Yalnızca test amaçlıdır.

      Mimarinize uygun olan dosyayı seçin. Gerekirse her iki platform için de değişiklik yapabilirsiniz.

    2. Yapılandırma dosyasını değiştirin.

      Bu örnekte x86 mimarisi için kernel-5.10.134-x86_64.config dosyası kullanılmaktadır.

      1. Yapılandırma dosyasını kaynak dizinine kopyalayın.

        cd /root/rpmbuild/SOURCES
        cp kernel-5.10.134-x86_64.config linux-5.10.134-13.1.al8/.config
      2. Kaynak dizinine gidin.

        cd linux-5.10.134-13.1.al8
      3. Yeni yapılandırma seçenekleri için varsayılan değerleri uygulayın.

        make olddefconfig
      4. Çekirdek seçeneklerini değiştirmek için make menuconfig komutunu kullanın. Bu işlem, yapılandırma bağımlılıklarını otomatik olarak yönetir.

        make menuconfig

        menuconfig arayüzünde seçenekleri aramak için / tuşuna basın.

        image

      5. Değiştirilen yapılandırmayı orijinal dosyanın üzerine yazacak şekilde geri kopyalayın.

        cp .config ../kernel-5.10.134-x86_64.config
      6. Üst dizine dönün.

        cd ..
      Not

      Arm mimarisi için yapılandırma dosyasını değiştirmek üzere aynı yöntemi kullanabilirsiniz.

  5. Spec dosyasındaki sürüm numarasını güncelleyin.

    cd /root/rpmbuild/SPECS
    vi kernel.spec

    Ekleme moduna geçmek için I tuşuna basın. İşleminiz bittiğinde Esc tuşuna basın, :wq yazın ve kaydedip çıkmak için Enter tuşuna basın.

    Sürüm numarası önerileri: Derlemenizi resmi sürümlerden ayırt etmek için sürüm numarasını güncelleyin. Örneğin:

    • 5.10.134-12 gibi bir ana sürümü 5.10.134-12.0.1 olarak değiştirin.

    • 5.10.134-13.1 gibi bir alt sürümü 5.10.134-13.1.1 olarak değiştirin.

    Bu örnekte sürüm numarası 5.10.134-13.1 değerinden 5.10.134-13.1.1 değerine güncellenmektedir.

    Dosyada %define pkgrelease %{?KREL:%{KREL}}%{?!KREL:13.1} satırını bulun ve %define pkgrelease %{?KREL:%{KREL}}%{?!KREL:13.1.1} şeklinde güncelleyin.1

    Değişikliklerinizi ayrıca kernel.spec dosyasının değişiklik günlüğü bölümünde de açıklayabilirsiniz. 2

Adım 4: RPM paketlerini yeniden oluşturma

  1. Değiştirilen kaynak kodunu yeniden sıkıştırın.

    Bu örnekte kaynak dizini adı linux-5.10.134-13.1.al8 şeklindedir.

    1. SOURCES dizinine gidin.

      cd /root/rpmbuild/SOURCES/
    2. Kaynak dizinini yeniden adlandırın.

      Önceki adımda sürüm numarası 5.10.134-13.1 değerinden 5.10.134-13.1.1 değerine güncellenmiştir. Bu nedenle kaynak dizinini linux-5.10.134-13.1.1.al8 olarak yeniden adlandırın.

      mv linux-5.10.134-13.1.al8 linux-5.10.134-13.1.1.al8
    3. Dizini bir tar dosyası olarak yeniden sıkıştırın.

      tar cJf linux-5.10.134-13.1.1.al8.tar.xz linux-5.10.134-13.1.1.al8
    4. Orijinal kaynak dizinini ve eski tar dosyasını kaldırın.

      rm -rf linux-5.10.134-13.1.al8
      rm -f linux-5.10.134-13.1.al8.tar.xz
  2. Kaynak RPM paketini yeniden oluşturun.

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

    Çıktı, yeniden oluşturulan paket konumunu gösterir: /root/rpmbuild/SRPMS/kernel-5.10.134-13.1.1.al8.src.rpm.

    image

  3. (İsteğe bağlı) dwarves paketini önceki bir sürüme düşürün.

    Yüklediğiniz kaynak RPM çekirdek sürümü 5.10.134-13.1.al8 veya daha eskiyse, hataları önlemek için derleme işleminde dwarves-1.22-1.al8 sürümü gereklidir.

    yum downgrade dwarves-1.22-1.al8 -y
  4. RPM paketlerini yeniden oluşturun.

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

    <src.rpm_name> ifadesini değiştirdiğiniz kaynak RPM paketi adıyla değiştirin. Örnek: 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

    Derleme işlemi önemli ölçüde zaman alır. Aşağıdaki çıktı başarılı olduğunu gösterir. 1