tr | en
29
Oca
2014
Linux Çekirdeğini Derlemek: SUSE Stili
Kategori: İpucu
Haydi şimdi bir noktayı açıklığa kavuşturalım: Kernel, SUSE stili ile nasıl derlenir?

Linus Torvalds, 2 Eylül'de Linux Kernel 3.11'i duyurdu, "Çalışma Grupları için Linux" (eğlenceli değil mi?).

Bu örnek için, SLES11 SP3 sunucu üzerinde yeni çekirdek 3.11'i (doğal olarak) kullanacağım.

1. Öncelikle şu paketi yüklememiz gerekiyor: ncurses-devel

# zypper install ncurses-devel

2. Kaynak kodu indirin:

# wget "https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.11.tar.xz"

3. Kaynak kodu sıkıştırılmış dosyadan çıkarın:

# tar -Jxvf linux-3.11.tar.xz -C /usr/src/

4. Çekirdeği konfigüre edin:

# cd /usr/src/linux-3.11/

Önce üstteki komutla kaynak kodun bulunduğu dizinde olduğumuzdan emin oluyoruz.

# make mrproper

Eğer ilk kez yapıyorsanız bu komutu  uygulamak zorunda değilsiniz, çünkü bu komut sadece .o dosyalarını ve önceki derleme işlemlerinden kalan diğer geçici dosyaları temizler.

Bir sonraki adımda çekirdeği konfigüre etmenin birden fazla yolu vardır, ben bunlardan make menuconfig komutunu tercih ediyorum. Fakat eğer bu konuda tecrübeniz yoksa ya da tedbirli olmak istiyorsanız, mevcut konfigürasyon dosyasını kopyalayıp onun üzerinden devam etmenizi öneririm. Mevcut konfigürasyon dosyanızı yeni kaynak kodun dizinine kopyalamak için şu komutu kullanabilirsiniz:

# cp /boot/config-`uname -r` .config

Eğer hâlâ bir şeyler değiştirmek ya da eklemek istiyorsanız, bu noktada make menuconfig komutunu çalıştırarak derleyeceğiniz çekirdeğin tüm özelliklerini A’dan Z’ye ihtiyaçlarınıza göre açılan arayüz üzerinden yapabilirsiniz.

İPUCU: Konfigürasyondan sonra çekirdeğinizi özelleştirmek için bir "extraversion" ekleyebilirsiniz. Makefile dosyasında "EXTRAVERSION=" alanını düzenlemeniz yeterli, mesela şu şekilde:

VERSION = 3
PATCHLEVEL = 11
SUBLEVEL = 0
EXTRAVERSION = -w00t
NAME = Linux for Workgroup


5. Çekirdeği inşa edin:

# make rpm

Eski konfigürasyon dosyamızı kopyalamış olduğumuz için, bu adımda çekirdek özellikleri hakkında birkaç sorunun yanıtı istenecek; dikkatlice okuyup yanıtlayın.

Şimdi, bir ara verin, bu adım donanımınızın performansına göre değişebilecek bir zaman alacak.

6. Çekirdeği yükleyin:

Eğer buraya kadar tüm adımlar sorunsuz gittiyse, şuna benzer bir çıktı almalısınız:

[...]
Wrote: /usr/src/packages/SRPMS/kernel-3.11.0_w00t_0.11_default-1.src.rpm
Wrote: /usr/src/packages/RPMS/x86_64/kernel-3.11.0_w00t_0.11_default-1.x86_64.rpm
Wrote: /usr/src/packages/RPMS/x86_64/kernel-headers-3.11.0_w00t_0.11_default-1.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.13989
+ umask 022
+ cd /usr/src/packages/BUILD
+ cd kernel-3.11.0_w00t_0.11_default
+ rm -rf /var/tmp/kernel-3.11.0_w00t_0.11_default-root
+ exit 0
rm kernel-3.11.0_w00t_0.11_default.tar.gz kernel.spec


Yeni çekirdek paketini /usr/src/packages/RPMS/x86_64/ dizininin altına yükleyin:

# cd /usr/src/packages/RPMS/x86_64/

 

sp3-lab:/usr/src/packages/RPMS/x86_64 # ls
kernel-3.11.0_w00t_0.11_default-1.x86_64.rpm
kernel-headers-3.11.0_w00t_0.11_default-1.x86_64.rpm
sp3-lab:/usr/src/packages/RPMS/x86_64 #

 

# rpm -ivh kernel-3.11.0_w00t_0.11_default-1.x86_64.rpm


Ve initrd'yi inşa edin:

# mkinitrd


Şimdi sadece grub menüsünü düzenlemek kaldı:

# vim /boot/grub/menu.lst


Aşağıdaki satırları, mevcut sisteminizin bulunduğu diskle ilgili bilgileri düzenleyerek ekleyin:

title SUSE Linux Enterprise Server 11 SP3 - 3.11 Linux for Workgroups
root (hdX,X)
kernel /boot/vmlinuz-3.11.0-w00t-0.11-default root=/dev/XXX resume=/dev/disk/XXX splash=silent crashkernel=256M-:128M showopts vga=0x314
initrd /boot/initrd-3.11.0-w00t-0.11-default


Basitçe, burada yaptığımız şey, sisteminizdeki mevcut grub satırlarını kopyalayıp başlığını ve çekirdek imaj bilgisini değiştirmek.

Şimdi, sisteminizi yeniden başlatın!

Açılışta grub ekranında yeni seçeneği görmeliyiz.

 

K311SLES11SP3-01

K311SLES11SP3-02

 

w00t!

Happy Hacking!

 

[Özgün yazı: https://www.suse.com/communities/conversations/compiling-de-linux-kernel-suse-way/]


Yorum Ekle (giriş yapın)