Linux çekirdek/kernel derlemek

Gece gece uyku tutmadı(saat sabaha karşı 4) Düşündümde yeni bir çekirdek derleme yazısına ihtiyaç var… :) Gercekten özel bir sebep yoksa dağıtımın kernelini kenara bırakıp kendi başına vanillayı(saf linux çekirdeği) derleyip kurmak son derece gereksiz, anlamsız, vakit kaybı ve hatta tehlikeli bir aktivite… Fakat bir Linux ögrencisi olduğunuzu farz ediyorum ve yazıyorum. Hem bu yönetemle yamalı Pardus çekirdeğini de derleyebilirsiniz.

Saçmaladığım noktalar olabilir uyanınca tekrar okurum :)

Çekirdek Nedir?
Çekirdek bir işletim sistemin kalbidir. Kabaca, kullanıcı seviyesindeki yazılımlarla donanım arasındaki köprü vazifesini görür. Yaygın inanışın aksine Linux bir işletim sistemi değil bir işletim sistemi çekirdeği projesidir. Dağıtım denilen şey teorik anlamda başlı başına bir işletim sistemidir. Fakat günlük kullanımda işletim sisteminin adı Linux olmuştur. Linux çekirdeği 1991 yılında Finlandiyalı bir üniversite öğrencisi olan Linux Torvalds tarafından geliştirilmeye başlandı ve bugün dünyadaki en büyük özgür yazılım projesi.

Başlıyoruz
Öncelikle şunu belirtelim; Linux çekirdeğini derlemek buradan okuduğunuz kadar basit bir işlem olmayacaktır. Çünkü yaptığınız işin bir kıymeti olması için çekirdeği kendiniz ayarlamalısınız. Eğer bunu yapamazsanız ve sadece yeni bir sürüme geçmek istiyorsanız Pardus’un config dosyasını kullanabilirsiniz. Ben olsam Pardus’un yamalı kernel kodlarını indirir ve doğrudan derleme kısmına atlardım. Eğer vanilla derlemek isterseniz işe çekirdeğin kodlarını edinmekle başlıyoruz.

Eğer http://www.kernel.org Linux çekirdek arşivinden tarball olarak indirdiyseniz öncelikle yerine kopyalayıp sembolik bağ oluşturmamız gerekiyor. ”Çekirdeği indirdiğiniz dizinde” şu komutu verin. ”Linux-2.6.25” çekirdeğini kullandığınızı farzediyorum.

tar -xjvf linux-2.6.25.tar.bz2 -C /usr/src && ln -sfn linux-2.6.25 linux

Ardından

cd /usr/src/linux
Bu aşamada çekirdeği yamalamak isterseniz şu komutlar kullanmanız gerek. (/usr/src/linux dizini altında olmanız şart)

patch -p1 < patch_dosyasi.patch

Bu işlemin süresi yamanın büyüklüğüne göre değişir. Eğer linux klasörü altında .rej uzantılı dosyalar varsa devam ediyordur. Eğer bu yamayı kaldırmak isterseniz şu komutu verin.

patch -p1 -R < yama_dosyasi.patch

Şimdi şu komutu verin,

make menuconfig

İşte bütün mesele burada… Bu komut ile çekirdeği ayarlayabileceğiniz bir menüler bütünü açılacak. Bundan sonrası tamamen sizin becerinize, kullandığınız PC’yi tanımanıza ve GNU/Linux bilginize bağlı. Burada yapacağınız hatalar bu çekirdeğin çalışmamasına, sistemin yeteneklerinin kısıtlanmasına ve bazı donanımlarınızın çalışmamasına neden olabilir. Tabii bu durum sadece bu çekirdek için geçerli. Sistemi başka bir çekirdekle başlattığınızda herşey normale dönenecektir.

Vanilla çekirdek derleyenler
Eğer bu şartları sağlayamıyorsanız(linuxu bilmek olarak özetlenebilir) Pardus’un /boot dizini altında bulunan .config dosyasını(gizlidir) /usr/src/linux dizinine taşıyın ve make menuconfig komutunu boşuna uygulamayın…

Derleme işlemi(dağıtımlarının kodlarını kullananlar buraya)
Tüm bu adımları sorunsuz geçtiyseniz çekirdeğimizi derleyebiliriz. Şu komutla devam ediyoruz.

make && make modules_install

Bilgisayarınızın gücüne bağlı olarak değişecek derleme süresince bekledikten ve günlük PC yaşantınıza devam ettikten sonra şu komutu vererek yeni çekirdeği /boot dizinine gönderiyoruz.

Kurulum

cp arch/i386/boot/bzImage /boot/linux-2.6.25-ozel

Tüm bu işlemlerin ardından sıra GRUB ayarlarına geliyor. Yeni çekirdeği GRUB’a eklemeliyiz.

Grub ayarları

title=Linux 2.6.25-ozel
root (hd0,0)
kernel /boot/kernel-2.6.25-ozel root=/dev/sda1

Yukarıda bir Grub girdisi örneği verdim. Bunu kendize göre düzenleyerek menu.lst dosyasını kaydedin. Dikkatinizi çektimi bilmem ama initrd satırını kullanmadım. Bunun anlamı şu; bootsplash kullanmayacağız… Eğer kullanmak isterseniz sorabilirsiniz fakat bootsplash yazımızın konusu değil.

Mutlu son

Şimdi sıra bilgisayarı yeniden başlatmakta. Sisteme yeni çekirdekle giriş yapın. INIT’e kadar olan süreci kazasız belasız atlatırsanız muhtemelen X’in açıldığı aşamada takılacaksınız. Çünkü kullandığınız kapalı kaynak kodlu ekran kartı sürücüleri yeni çekirdeğe göre derlenmedi ve artık çalışmıyorlar. Bu sorunu /etc/X11/xorg.conf dosyasında açık kaynak kodlu sürücüleri etkinleştirerek aşabilirsiniz. Grafik ortama giriş yaptıktan sonra ekran kartı sürücülerini elle kurmaktan başka bir çözüm öneremiyorum şu an… Aynı durum çekirdekle birlikte derlenmeyen ticari donanım modülleri içinde geçerli.

Kolay gelsin

mm

Etiketler:

6 Yanıt to “Linux çekirdek/kernel derlemek”

  1. Tom Pompadil Diyor ki:

    Komutun doğru şekli (2.6 çekirdekler için)

    make && make modules_install && make install

  2. buraxezer Diyor ki:

    Selam Tom :)
    Ben şu şekilde kullanıyorum işe yarıyor.
    make && make modules_install

    Senin eklediğin make install kısmı tam olarak ne iş yapıyor?

  3. Tom Pompadil Diyor ki:

    2.6 serisi çekirdekler için sırasıyla :

    make : make menuconfig veya make xcongig komutu vasıtasıyla yapılandırdığımız çekirdeği, modülleri ile birlikte derler yani makine diline çevirir.

    make modules_install : Çekirdek yapılandırması esnasında yani Çekirdek Modülü olarak işaretlediğimiz modülleri /lib/modules/2.6.****** dizini içine yükler.

    make install : vmlinuz çekirdek imajını, System.map ve çekirdek yapılandırma dosyası olan config dosyasını /boot dizini içine yükler ve 3.5 luk flopy diskete önyükleyici kurmak isteyip istemediğimizi sorar.

  4. buraxezer Diyor ki:

    Teşekkürler Tom Pompadil…

  5. asukaki Diyor ki:

    İlerde bende böyle olacağım :) bakalım. Yazın için teşekkürler Kpss den sonra deneyeceğim bakalım öğrencin becerebilcekmi senin yazdıklarını uygulamayı :)

  6. buraxezer Diyor ki:

    Ben neyim ki sen de böyle olacaksın? Sıradan bir Linux kullanıcısıyım ben… Buradaki püf nokta kernel ayarları ama hazır olarak alırsan sadece komut vermeye bakar bu iş…

Yorum Yapın