Linux Kernel Derleme Resimli Anlatım

 In Sorun ve Çözümler

Ubuntu Kernel Derleme

  • VirtualBox programı yardımıyla kurmuş olduğumuz Ubuntu işletim sistemini kurulumunu gerçekleştirip açıyoruz ve web tarayıcısı üzerinden kernel.org sitesi üzerinden kernel’in son sürümü olan 4.8 sürümünü ubuntu işletim sistemimize indiriyoruz.1
  • Şimdi indirdiğimiz linux-4.8.tar.xz kernel sürümü için işlemlerimizi başlamaya. Bunun için öncelikle Uç Birim yani terminalimizi açıyoruz. İşlemleri daha sağlıklı yapmamız için yönetici girişini sağlıyoruz. Bunun için “sudo -i” komutunu işliyoruz ve kurulum sırasında belirlemiş olduğumuz şifreyi giriyoruz.

2

  • Giriş yaptıktan sonra indirmiş olduğumuz kernel sürümünü işlem yapacağımız “/usr/src” dizine kopyalamamız gerekiyor. Bunun için gerekli olan “cp /home/galip/İndirilenler/linux-4.8.tar.xz /usr/src” kodumuzu yazıp çalıştırıyoruz.

ekran-goruntusu-2016-10-05-20-30-12

  • Kopyalamayı yaptıktan sonra da indirmiş olduğumuz kernel sürümünü çıkartmamız gerekicek ama bu işlemi yapmamız için de o dizine giriş yapmamız gerekiyor. İlk önce “cd /usr/src” ardından  “tar –xJvf linux-4.8.tar.xz” komutlarını çalıştırıyoruz. **Not: Burda dikkat etmemiz gereken ben tar.xz uzantısını indirdim. Eğer başka bir uzantısını indirdiyseniz bunu çıkarmak için “tar -xJvf” kısmındaki parametreleri değiştirmeniz gerekmektedir.**

ekran-goruntusu-2016-10-05-20-31-08

  • Çıkarma işlemi bittikten sonra ben 4.8 sürümünü indirdiğim için “/usr/src” dizininde “linux-4.8” adında klasörümüz oluştu. İşlemleremize devam edebilmemiz için “cd linux-4.8” komutunu çalıştırarak o dizine giriş yapıyoruz.

ekran-goruntusu-2016-10-05-20-32-16

  • Yavaş yavaş derleme işlemlerimize başlayabiliriz ama bunun öncesinde eski ayarları temizlemek için “make mrproper” komutunu ve ardından konfigürasyon ayarlarını yapabileceğimiz menüyü açıyoruz. Burdan sistemimiz için gerekli olan modülleri ekleyip çıkarabilirsiniz ama bunları yaparken dikkatli olmanız gerekiyor. Bu ayar penceresine ulaşmak için de “make menuconfig” komutunu çalıştırarak grafik arayüzde gerekli ayarlamaları yapabilirsiniz.

ekran-goruntusu-2016-10-05-20-33-03 ekran-goruntusu-2016-10-05-20-33-46

  • make menuconfig” komutunu çalıştırdığımızda “curses.h” kütüphanesi yüklü olmadığı için bir hata alıyoruz. Bunun hata çözümü için “sudo apt-get install libncurses-dev” komutunu çalıştırarak gerekli olan kütüphanesini ekliyoruz.

ekran-goruntusu-2016-10-05-20-34-01 ekran-goruntusu-2016-10-05-20-34-54

  • Kurulumu yaptıktan sonra da “make menuconfig” komutunu tekrar çalıştırıyoruz ve config arayüzünü açıyoruz.

ekran-goruntusu-2016-10-05-20-35-21

ekran-goruntusu-2016-10-05-20-35-39

  • Ben burdan herhangi bir ayar değişikliği yapmadan <Save> diyerek config olarak kaydediyorum ve sıradaki işlemimiz olan çekirdek imajını derlemeye geçiyoruz. Bunun için “make bzImage” komutunu çalıştırıyoruz.

ekran-goruntusu-2016-10-05-20-36-27

  • Komutu çalıştırdıktan sonra küçük bir hata alıyoruz. Bu hatamız, imaj çekirdek imajını derlemek için gerekli olan bir kütüphaneye ihtiyaç duyuyor ve bunun eksikliğinden kaynaklı hata aldık. Bunun çözümü için daha önceki aldığımız hata gibi sistemimize gerekli olan kütüphaneyi eklememiz gerekiyor. Hemen “sudo apt-get install libssl-dev” komutunu çalıştırıp gerekli olan kütüphaneyi yüklüyoruz.

ekran-goruntusu-2016-10-05-20-37-34 ekran-goruntusu-2016-10-05-20-37-55

 

  • Kurulumu yaptıktan sonra tekrar “make bzImage” komutunu çalıştırıyoruz. Bu işlemimiz yaklaşık olarak 20-30 dakika kadar sürmekte, tabi bu süre bilgisayarınızın ve sanal makine ayarlarınıza göre değişiklik gösterebilir.

ekran-goruntusu-2016-10-05-20-38-20 ekran-goruntusu-2016-10-05-21-01-59

  • Evet işlemimiz bitti. Sonraki adım olarak modülleri derlememiz gerekiyor. Bunun için de “make modules” komutunu çalıştırıyoruz. Bu işlem sırasında bira sabırlı olmamız gerekiyor. Kernel derleme işleminin en uzun işlemi burasıdır.

ekran-goruntusu-2016-10-05-21-03-23

  • Yaklaşık bir 2,5 saatin sonunda modül derlememiz son buldu. Sıradaki işlemimiz ise modüllerimizi yüklemeye geldi. Bunun için de “make modules_install” komutunu çalıştırıyoruz.

ekran-goruntusu-2016-10-06-11-26-45

  • Modüllerimizi yükledikten sonra sıradaki işlemimizi yapıcaz. Kök dosya sisteminin bağlanabilmesi için gerekli çekirdek modülleri yüklenebilmesi için “initrd” isimli paketimizi oluşturuyoruz bunun içinde “mkinitramfs 4.8.0 -o /boot/initrd.img-4.8-generic” komutunu çalıştırıyoruz.

ekran-goruntusu-2016-10-06-11-38-30

  • Şimdi de çekirdek imajını “/boot” dizinine kopyalıyoruz. Komutumuz ise “cp /usr/src/linux-4.8/arch/x86_64/boot/bzImage /boot/vmlinuz-4.8-generic

ekran-goruntusu-2016-10-06-12-22-49

  • System.map’i “/boot” dizinine kopyalıyoruz. Bunun içinde “cp System.map /boot/System.map-KERNEL_VERSION” komutunu çalıştırıyoruz.

ekran-goruntusu-2016-10-06-12-28-32

  • Ardından oluşturduğumuz map dosyasını system.map ile bağ oluşturuyoruz. Bunun için “ln -s /boot/System.map-KERNEL_VERSION /boot/System.map” komutunu çalıştıyoruz.

ekran-goruntusu-2016-10-06-12-28-44

  • Bu işlemleri sorunsuz şekilde yaptıktan sonra derlediğimiz çekirdeği kullanabilmek için gerekli grup2 ayarlarını yapmamız gerekmekte. Buna başlamadan önce grup2 dosyasında değişiklikleri sağlayabilmek adına ilk önce yazma iznini almamız gerekiyor ve “sudo chmod +w /boot/grub/grub.cfg” komutunu çalıştırıyoruz ardından grup.cfg dosyamızı ayarları yapmak için “sudo gedit /boot/grub/grub.cfg” komutunu çalıştırıyoruz.

ekran-goruntusu-2016-10-06-12-32-06

  • Açılan notepad dosyamızda değişiklik yapacağımız kısım için “### BEGIN /etc/grub.d/10_linux ###” satırını buluyoruz ve alt satırına altta seçili olan kodları ekleme yapıyoruz. Fakat burada düzenleme yapmamız gerekiyor.
 

  • Düzenleme yapıcağımız alanlardan biri UUID kısımları, o yüzden yeni bir terminal açarak “sudo blkid” komutunu çalıştırıyoruz.

ekran-goruntusu-2016-10-06-12-33-02

  • Burda karşımıza gelen bilgiler ışığında grub.cfg dosyamızı güncellicez. Dikkat etmeniz gerekenlerden ilki ubuntu işletim sisteminizin kurulu olan alan olan “ext4” tipindeki “dev/sda” kısmı. Bu eğer “sda” ise hd0 “sdb” hd1 yapmanız gerekiyor ve UUID değerini alarak grub kısmındaki ID değerlerine yazmanız gerekmekte.

ekran-goruntusu-2016-10-06-12-46-37

  • Gerekli ayarları yapıp şimdi grub2 ayarlarını güncellememiz gerekiyor. Bunun için de “sudo update-grub2” komutunu çalıştırıyoruz. İşlem tamamlandıktan sonra “reboot” komutu ile sistemimizi resetliyoruz. Açılış ekranı geldiğinde indirdiğimiz kernel sürümünde 4.8 olan ubuntu çekirdeğini seçerek sistemimizi açıyoruz.

ekran-goruntusu-2016-10-06-12-54-05

  • Sonunda kernel çekirdeğimizi derlemiş olduk. Bunu da “uname –r“ komunutu çalıştırarak görebiliriz.

ekran-goruntusu-2016-10-06-14-27-45

 

Recommended Posts
Showing 5 comments
  • Abdurrahim
    Cevapla

    gıral eyvallah paylaşımın için ama menuconfig de hata alıyorum dediğin gibi apt-get install yapıyorum ama download etmiyor bulamıyor nedeni nedir ? sürüm den olabilir mi ?

    • GaLiq
      Cevapla

      Merhaba Abdurrahim, yüklemek istediğin paketin adı değişmiş sanırım. Güncel paket linki “http://www.ubuntuupdates.org/package/core/trusty/main/base/libncurses5-dev” üzerinden erişebilirsin. Yüklemek için sudo apt-get install libncurses5-dev şeklinde tekrar dener misin. Birde menu config kısmında aldığın hatayı karşılaştırırsan sevinirim, farklı bir hata alıyor olabilirsin. Kolay gelsin teşekkürler.

      • Abdurrahim
        Cevapla

        tamam derledim teşekkür ederim bitanesin.

  • Beytullah
    Cevapla

    İyi günler kardeşim.Çekirdeği dediğin gibi derledim ama sd card a alıp başka bir makineye kurmam için hangi dosyaları sd card a almam gerekiyor ?

  • oktan
    Cevapla

    Arm sistemleri için nasıl yapıyoruz ?

Leave a Comment

İletişim

Her türlü öneri/şikayet ve sorularınızı mesaj olarak iletebilirsiniz.

Not readable? Change text. captcha txt