Linux Kernel Son Sürümünü Derleme

Kernel Nedir?

Kernel işletim sisteminin çekirdeğidir yani kalbi. Çekirdeğin görevi sisteminin kaynaklarını yönetmeyi sağlamaktır ve işletim sistemi ile donanım arasında bir köprü vazifesi görür. 

Bir işletim sistemi olarak bildiğimiz Linux da aslında bir işletim sistemi çekirdeğidir. Ancak zamanla bu çekirdeği kullanan işletim sistemlerine genel olarak Linux denmeye başlanmış ve bu şekilde yerleşmiştir.

Windows, MacOS gibi bilinen birçok işletim sistemi bize kernel' a müdahale şansı vermez. Çünkü kernel' da yapılacak yanlış bir değişiklik geri döndürülemez sonuçlar doğurabilir ve işletim sisteminin alışılmışın dışında çalışmasına yol açabilir. 

Kernel Sürümünü Değiştirmek Bize Ne Kazandırır?

Linux işletim sistemleri açık kaynaklı yazılımlar olduğundan bize kernel' a müdahale etme imkanı sunuyor. Fakat kendi bilgisayarımda da ikinci işletim sistemi olarak kullandığım Ubuntu gibi dağıtımlarda ilk kurulumdan sonra tüm yetkilere sahip bir şekilde kernel' a erişmek mümkün olamayabiliyor. Biz de kernel.org sitesinden en son ki sürümü indirip kendi bilgisayarımızda build ederek sistemimizi tamamen açık kaynaklı hale getireceğiz. Böylece kernel' a tamamen sahip olup istediğimiz işlemleri kernel seviyesinde gerçekleştirebilir koca kernel' ı bir oyuncak gibi kullanabiliriz.

Hangi Kernel Sürümünü Kullandığımızı Nasıl Öğreniriz?

Öncelikle sistemimizde hangi kernel sürümünü kullandığımıza bir bakalım. Terminal ekranına 

uname -r

komutunu yazıyoruz.


kernel sürümü öğrenme

Ekran görüntüsünde görüldüğü gibi sistemimde 4.4.0-64-generic sürümünü kullanıyormuşum.

Ancak https://www.kernel.org/ sitesine girersek en son ki sürümün 4.13.4 olduğu görülüyor. Biz de son sürümü indirip kendi sistemimizde derleyeceğiz.

En Sonki Kernel Sürümünü Nasıl Yükleyebiliriz?

Öncelikle kernel' ı build etmek için gerekli toolları yüklememiz gerekiyor.

sudo apt-get install libncurses5-dev gcc make bc libssl-dev

komutunu yazıyoruz. Su şifremizi girdikten sonra tüm sorulara 'Y' yanıtını veriyoruz yüklü olmayan toollar yükleniyor, yüklü olanlar da güncelleniyor.



daha sonra kernel isminde bir klasör oluşturup son kernel sürümünü buraya indiriyorum.

mkdir kernel
cd kernel
wget http://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.13.4.tar.xz



sıkıştırılmış tar dosyasını çıkaralım

tar -xvJf linux-4.13.4.tar.xz



cd linux-4.13.4/ 

komutu ile ilgili dizinin içerisine girerek

make menuconfig

komutunu yazıyoruz



Açılan pencerede default yapılandırma ayarlarını kullanacağımız için hiç bir değişiklik yapmadan <Save> seçeneğini seçerek devam ediyoruz ve yapılandırma dosyamızı ".config" ismiyle kaydedip çıkıyoruz.



Daha sonra 

make

komutuyla ana kernel dosyasını derliyoruz. Bu işlem biraz zaman alabilir. Bayağı alabilir...
Yaklaşık bir buçuk saat bekledikten sonra işlemin neden uzadığıyla ilgili birkaç araştırma yaptım. Kernelı derlemek çok uzun bir işlem olduğu açık. Fakat günümüz bilgisayarlarında çok çekirdekli, çok izlekli işlemciler kullanıldığına göre derlemeyi adetlere bölerek paralel olarak yapabiliriz. Build işlemini daha hızlı gerçekleştirmek adına aşağıdaki komutu çalıştırmamız gerekir

make -jN

Burada N yerine kaç adet paralel işlem gerçekleştirileceğini yazıyoruz. Ancak bu rakamın işlemcimizin desteklediği çekirdek sayısını geçmeyeceğine dikkat etmeliyiz.

İşlemcimizin kaç çekirdekli olduğunu öğrenmek için 

sudo dmidecode -t processor | grep "Core Count"



komutundan yararlanabiliriz.
Benim bilgisayarımda 4 çekirdekli bir adet işlemci bulunduğundan (bir kez çekirdek sayma işlemini gerçekleştirdi)

make -j4 

komutunu çalıştırabilirim.




Daha sonra

make modules 

komutuyla kernel modüllerini derledikten sonra

sudo make modules_install

komutu ile modülleri /lib/modules/ dizinimize yüklüyoruz. Yükleme tamamlandıktan sonra /lib/modules/4.13.4/ dizini sistemde görünecektir.



Son olarak 

sudo make install

komutuyla kernel' ı sistemimize yüklüyoruz. Bu komut /boot dizininde vmlinuz-4.13.4, System.map-4.13.4, initrd.img-4.13.4 (sistemin başlangıç esnasında geçici olarak kullanacağı root dosyası) ve config-4.13.4 (kernel' ın yapılandırma dosyası) dosyaları create edilmiş olacak.



Artık sistemimizi reboot edebilir ve tekrar kernel sürümümüzü 

uname -r

komutuyla kontrol edebiliriz.



Gördüğümüz gibi en sonki kernel sürümümüz yüklü durumda.




Yorumlar

Bu blogdaki popüler yayınlar

Kernel Modülü Programlama

ITIL SÜREÇLERİ ve YAZILIM KALİTE METRİKLERİ

Klavye Ledlerini Yakıp Söndüren Character Device Driver Uygulaması

Raspberry Pi ile Konuşacak Sensörden Gelen Verileri Loga Yazdıran Character Device Driver Uygulaması

Linux Dört İşlem Yapan Proc Uygulaması