Linux Kernelini Derleme

- 3 mins

Linux’la ilgilenen herkes bilir linux’un kalbi kernel yani cekirdektir.Dagıtımlar ise (ubuntu,,elementaryos veya fedara gibi) linux çekirdegi,arayuzler ve paket yonetim sistemleri ile birleştiril hali.Dagıtımların yapıları ihtiyaca göre degişir.Örnegin ubuntu genel kullanniciya ,elementaryos estetik zevki olana,centos/fedora ise yuksek guvenlikli sunuclar için kullanılır.Degişen dagıtımlara göre linux kerneli farklı sekilde derlenip sisteme gömülür.Ubuntu için önemli olan tüm cihazla sorunsuz çalısmaktır fakat ubuntu kernelinde DVB,NFC,cesitli android vb cihazlarında suruculeri vardır.Buda kernelin sistemdeki ilk açılsışını yavaslatır.Bizler ise burada kendimize göre  kernel derleyip gereksiz suruculerden arınmıs bir kernel yapacagız.Ben elementary os kullanıyor.Ubuntu tabanlı bir dagıtım oldugu için ubuntu,linux mint,padus(yeni) dagıtımlarında da aynı işlemleri yapabilirsiniz.Ama öncelik olarak

yazı sonundaki uyarıları mutlaka okuyun.

 

Ilk olarak yonetici olalım gerekli derleyicileri kuralım;

sudo password root        //root sifresi olusturalım
su  // yonetici olarak giriş yapalım

sudo apt-get install build-essential bin86 kernel-package  wget libncurses5 libncurses5-dev

cd /usr/src   //derleme işlemini yapacagımız dizine girelim
uname -r  //mevcut kernel numaramız

eski-kernel

kernel.org  adresinden son stabil kerneli indirelim.Bu yazıyı yazarken guncel surum 4.2.3 oldugu için bu sürüm üzerinden komutlarımı yazacağım.

wget -c https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.2.3.tar.xz  //indiriyoruz
tar -xf linux-4.2.3.tar.xz // dosyaları cıkarıyoruz
cd linux-4.2.3
make mrproper //hatalı derleme isleminde bununla eski derlemeleri siliyoruz.

Simdi sıra isin civcivli kısmına(!).

make menuconfig

Bu komut ile kernelin içinde hangi sürücüler ve hizmerler oldugunu ayarlıyor (bakınız **).

Bu işlemi fazla abartmadan yaptı isek menudeki save ile kaydetip exit ile çıkıyoruz.

make bzImage  // derlemeye baslıyoruz

Bu işlem yaklasık 30 dk suruyor ve ana kernelimiz derleniyor.

make modules  //moduller derleniyor

İşte yukarıdaki islem asıl onemli olan.Yaklaşık 2 saat suruyor ve genelde %99 hatalı oluyor ilk defa kernel ile ilgilenen için

make modules_install //derlenen moduller kuruluyor

mkinitramfs 4.2.3 o /boot/initrd.img4.2.3generic

cp /usr/src/linux-4.2.3/arch/x86_64/boot/bzImage /boot/vmlinuz-4.2.3-generic   //bu komutlar ile  başlangıca eklıyoruz
cp System.map /boot/System.map-4.2.3

Son olarak gruv baslangıc yoneticisine eklıyoruz fakat ben kolaylık olması için direk editleme yonetemini kullanıyorum

Öncelikle grub yedegini alalım

cp /boot/grub/grub.cfg /boot/grub/grub.cfg.bak  //yedegimiz .bak uzantılı dosya
gedit /boot/grub/grub.cfg  //grub ayar dosyasını açıyoruz

grub-edit

Dosyadaki “menuentry { }” yazan { isaretinin içindeki eski kernel versiyonunu silip (bendeki 4.1.9) yenisi yazıyoruz (4.2.3).

Ve sistemi grubu yeniliyoruz;

sudo update-grub2

Kernel hazır sistemi yeniden baslata bilirsiniz.

Artık “uname -r” ile yeni kernel numaramıza bakabiliriz.

kernel-yeni

UYARILAR

* Kernel guncelemek için en azında 10 gb alan olmalı sistenizde çunku tum sürücüleri kurarlen ciddi anlamda alan tuketiyor

**  sürücüleri ayarlarken öncelikli olarak bilmediginz kısımlara dokunmayın.Fakat egerki sistemizde kesinlikle olmadıgını dusundugunz sürücü var ise onu cıkarbilirsiniz.Fazla abartmamak kaydı ile 😀

*** Ben kerneli  derlerken 2 kere hata aldım.Öncelikli olarak 9 gb alan yetmedi ve derlemeyi durdurdur,yeterli olan açarak bunu çözdüm.2. olarak nvidia drm-nouveau surucu hata verdi .Make menudaki “direct rendering monitor” kısmınddaki ilgili yerdeki tiki kaldırıp tekrar derledim ve sorun ortadan kalktı.Fazla kurcalamadıgım için pek bir sorun cıkmadı:Sabah 4 sorunsuz bir kernel ellde ettim.

 

 

Ali Kemal Öcalan

Ali Kemal Öcalan

Big Data Engineer

rss facebook twitter github gitlab youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora quora