Merhaba arkadaşlar. Sizlere bazı durumlarda bizlere lazım olan Linux Çekirdeği’ni (Kernel’ını) derlemeyi anlatmaya çalışacağım. Bu yazıyı yazarken bu adresi referans aldım. Ben bağlantıdaki yazının güncellenmiş bir halini yazmaya çalıştım. Buradan screenshoot isimli yazara da teşekkürlerimi iletiyorum.
Normalde siz Linux çekirdeği üzerine inşa edilmiş bir dağıtım kurduğunuz zaman bu dağıtım çekirdek uygulamaları geliştirebileceğiniz şekilde gelmez. Bu nedenle siz çekirdek uygulamaları yazamazsınız. Çekirdek uygulamaları yazabilmeniz için mutlaka çekirdeği derlemeniz gerekir. Çekirdek derlemedeki bir başka amacınız da sistem performansını arttırmak istemeniz olabilir. Yalnız derleme uzun ve biraz da zor bir iş. Şimdi kendinizi hazır hissediyorsanız başlayalım. Yazımız adım adım gidecek.
- Buradan Linux çekirdeğinin en son stabil sürümünü indiriyoruz. Ben bu yazıyı yazarken son stabil çekirdek 3.16.5 idi.
Latest Stable Kernel 3.17 yazıyor ama siz işi garantiye almak için 2. satırdaki stable sürümü indirin.
- Ben bu dosyayı Downloads klasörüne indirdim. Siz de indirdiğiniz yere göre şu komutu düzenleyerek dosyayı /usr/src dizinine kopyalayın:
1cp /home/ilkay/Downloads/3.16.5.tar.xz /usr/src
- cd komutu ile /usr/src dizinine geçiş yapın:
1cd /usr/src
- tar.xz uzantılı dosyayı şu komutla klasöre çıkartın:
1tar –xJvf linux–3.16.3.tar.xz
- Klasöre çıkarttığınız dizine girin:
1cd linux–3.16.5
- Eski ayarları temizlemek için şu komutu verin:
1make mrproper
- Sisteminizi optimize etmek için yapacağımız işe geldi sıra. Ben bu aşamada hiç bir şey yapmadan geçtim. Ama siz sisteminizi optimize etmek istiyorsanız komutu kullanabilirsiniz:
1make menuconfig
- Fazlalıkları temizlemek için şu komutu verin:
1make clean
- Sıra geldi elimizdeki çekirdeği derlemeye. Yaklaşık olarak 30 dakika sürecek bu işlem için şu komutu verin ( İşlemciniz daha iyiyse daha kısa sürebilir ? ):
1make bzImage
- Ardından derlemenin en uzun işlemi olan modül derlemesini gerçekleştirmek için şu komutu verin:
1make modules
- Şu komutla çekirdek modüllerini modül kütüphanesine taşıma işlemini yapın:
1make modules_install
- Şu komutla modüllerin ve sistemin düzgün çalışmasını sağlıyoruz:
1mkinitramfs 3.16.5 –o /boot/initrd.img–3.16.5–generic
- Şimdi vereceğiniz şu komutla derlediğiniz çekirdeği boot dizinine kopyalayın:
1cp /usr/src/linux–3.16.5/arch/x86_64/boot/bzImage /boot/vmlinuz–3.16.5–generic
- System.map dosyasını boot dizinine kopyalayın:
1cp System.map /boot/System.map–KERNEL_VERSION
- Sembolik bağ oluşturmak için şu kodu girin:
1ln –s /boot/System.map–KERNEL_VERSION /boot/System.map
- Şimdi sıra derlediğimiz çekirdeğin grub ekranında çıkmasını sağlamaya geldi. Öncelikle şu komutla grub ayar dosyasını açın:
1sudo gedit /boot/grub/grub.cfg
- Yeni bir terminal açın ve şu komutu verin:
1sudo blkid
Bu komutu verdikten sonra gelen çıktıdan UUID değerini alacaksınız ve grub dosyasını düzenlerken kullanacaksınız. Ayrıca hd0 mı yoksa hd1 mi olduğuna yine buradan karar vereceksiniz. sda ise hd0 sdb ise hd1 yazmanız gerekiyor. Bu komutu herhangi bir dizin içindeyken verebilirsiniz.
- Şimdi buradan aldığımız değerler ile grub dosyasını düzenleyelim. Az önce açtığınız grub dosyasında ### BEGIN /etc/grub.d/10_linux ### satırını bulun ve altına şu metni ekleyin:
123456789101112131415161718menuentry ‘Pardus, Linux 3.16.5-generic’ —class ubuntu —class gnu–linux —class gnu —class os {recordfailinsmod ext2set root=‘(hd0,6)’search —no–floppy —fs–uuid —set 57a40b28–08a8–4fe5–ba57–7fb4fc063d83linux /boot/vmlinuz–3.16.5–generic root=UUID=111a05da–58b6–454a–8e29–23b7e215f382 ro quiet splashinitrd /boot/initrd.img–3.16.5–generic}menuentry ‘Pardus, Linux 3.16.5-generic (recovery mode)’ —class ubuntu —class gnu–linux —class gnu —class os {recordfailinsmod ext2set root=‘(hd0,6)’search —no–floppy —fs–uuid —set 111a05da–58b6–454a–8e29–23b7e215f382echo ‘Loading Linux 3.16.5-generic …’linux /boot/vmlinuz–3.16.5–generic root=UUID=111a05da–58b6–454a–8e29–23b7e215f382 ro singleecho ‘Loading initial ramdisk …’initrd /boot/initrd.img–3.16.5–generic}
- Ve son olarak şu komutu verin ve ardından sistemi yeniden başlatın. Yeniden başlattığınızda generic kelimesine sahip boot seçeneğinden sistemi boot edin:
1sudo update–grub2