Ubuntu Linux'ta Linux kernel derleme


Linux dağıtımlarından daha iyi verim alabilmek için zaman zaman yaptığımız kernel derleme işine Ubuntu Linux tabanlı sistemler için biraz daha detaylı bakalım.

Kernel, C dilinde yazıldığı için bunu insanlar okuyabilir ancak makineler okuyamaz. İşte bu kodları makinelerimiz okuyabilsin diye derleme işini yaparız.

İlk olarak kernel paketini indirelim. Şu anda en güncel kernel 3.15.6

Kerneli derleyebilmemiz için bazı paketlere ihtiyacımız var.

$ sudo apt-get install build-essential ncurses-base ncurses-dev fakeroot kernel-package

İndirdiğiniz tar.xz arşivde sağ tık buraya çıkar deyin ve linux-3.15.6 klasöründe sağ tık terminalde aç

$ make defconfig

$ make && make modules && make modules_install install

İşin en basit ancak bekleten hali. Birkaç saate kerneliniz yüklenmiş olur. Ancak kaldırmak biraz uğraştırır. En başa dönelim.

MODÜLLER

Windows'ta nasıl ki driver denilen sürücüler ile bilgisayar donanımlarını Windows'a tanıtabiliyorsak aynı şekilde modüller ile de Linux kernele tanıtabiliriz. Normalde herhangi bir modülü kerneli derleme sırasında kernele dahil edebiliriz ancak derlenmiş bir kernel için bir donanım desteğine ihtiyacımız olduğunda basitçe modül ekleriz. Bu hem gereksiz olan bütün modüllerin kernelde yığılıp kalmasını önler hem de eklediğimiz modülü sonradan çıkarabilme, değiştirebilme imkanı sunar.

Kullandığınız dosya yöneticisinin ismi ne ise başa onu yazarak(benim nemo)

$ nemo /lib/modules/$(uname -r)/kernel

görüntüleyebilirsiniz. Modüller .ko uzantısına sahiptir.

lsmod ile şu an yüklü modülleri listeleyebilirsiniz.


Komut arayüzü ile kurulan dağıtımlarda defalarca yapdığımız gibi

# modprobe <modülismi>

diyerek herhangi bir modülü sisteminize ekleyebilirsiniz. Ve tabii ki -r diyerek sisteminizden çıkarabilirsiniz. make menuconfig dediğimizde karşımıza gelen seçeneklerde istemediklerinizi çıkarmaktan çekinmeyin. En kötü ihtimal, sistemi yeniden başlatıp eski kernelle açarsınız.

PATCH

Türkçesi "yama" olan patchler ile kernel.org tarafından çıkarılan kernel üzerinde herhangi birinin yaptığı değişiklikleri kolayca uygulayabiliriz linux dunyam. Bu yamalar hata düzeltme, özellik ekleme-çıkarma veya kernelde birkaç ayarı değiştirmek için olabilir.

Örneğin indirdiğimiz bu kernele masaüstü sistemler için performans artışı sağlayan Con Kolivas yamasını ekleyelim. Yamayı bu adresten indirebilirsiniz.

Sadece bir komut yeterli

$ patch -p1 < yamadosyası

Yani resimdeki gibi aynı klasörde bulunan yamayı uygulayalım.


$ patch -p1 < patch-3.15-ck1

Kernelimiz yamalandı.

KERNEL DERLEME

Şimdi yamalı kernelimizi daha hızlı ve daha kolay kullanılabilir halde derleyelim.

$ make oldconfig

oldconfig ile size yeni kernel ile gelen yeni seçeneklerin kullanılıp kullanılmayacağını sorar. Varsayılan seçenek genellikle en iyisidir. Enter'a basılı tutabilirsiniz.

menuconfig ile kernelin pek çok özelliğini gözünüzle görerek açıp kapatabilirsiniz.

$ make menuconfig


$ make-kpkg clean

time diyelim ki ne kadar sürdüğünü görelim. -j'ye ben 5 dedim. Sizin işlemcinizdeki iş parçacığı sayısı kaç ise onu veya bir fazlasını yazmanız işi hızlandıracaktır. Sistem açılışını sağlayan initrd şemasını içersin.

Kerneli biraz özelleştirdiğim için ismine -benimkernel dedim. Ve bana çıktı olarak sadece kernel kalıbını ve başlık dosyasını vermesini istiyorum. Burada bazen bazı dosya izinlerinde hata verebiliyor. Root olarak çalıştırmakta yarar var. su deyip şifre yazmak yeterli.

# time make-kpkg -j5 --initrd --append_to_version=-benimkernel kernel-image kernel-headers

Bende 54 dakika sürdü. Bitince yüklemek için

$ sudo dpkg -i linux*.deb

diyebilirsiniz.


Dilerseniz benim derlediğim con kalivas patch'li Ubuntu amd64 3.15.6 kerneli ve başlık dosyasını bu linklerden indirebilirsiniz. Kerneli bir haftadır kullanmaktayım ve belirgin bir hızlanma var:

https://drive.google.com/file/d/0By9CguR1HIslTXBLTHFkU3JWY1k
https://drive.google.com/file/d/0By9CguR1HIslLXNtVXFYWG1OQzQ

Kapalı kernel modülünüz var ise tekrar yüklemeniz gerekir. Kolay gelsin.

Hiç yorum yok :

Yorum Gönder