Linux Kernel Install and Upgrade - 2

Kernel Kurulumu ve Upgrade

İlk adımda Virtual Box üzerine Ubuntu kurulumunu yapmıştık sıra Kernel i makinemize kurmaya geldi

Önce makinede kurulu olan kernel sürümünü uname -r komutu ile öğreniyoruz. _config.yml

İndirdiğimiz kernel dosyasını /usr/src altına taşıyoruz. Normal kullanıcı olarak denediğimiz için erişim hatası aldık. _config.yml

sudo komutunu satır başına ekleyerek isteği tekrarlıyoruz. Bu sefer gerekli izin için bizden şifre talep ediyor. Şifreyi girdikten işlemin gerçekleştiğine dair diğer komut alma satırı geliyor. _config.yml

Hedef olarak gösterdiğimiz dizine gidiyoruz ve ls komutu ile kontrol ediyoruz. Ve sonuç başarılı. _config.yml

Sonrasında arşiv dosyasını çıkartma işlemini yapıyoruz. Sistem dosyalarının bulunduğu bir dizinde işlem yaptığımız için her türlü duruma karşı sudo komutunu ekleyerek arşivden çıkarma işlemini yapıyoruz. _config.yml

İşlemin kontrolü için içeriği dizin içeriğini ls ile listeleyip kontrol ediyoruz. Ve sonuç başarılı. Kernel dosyalarının bulunduğu dizine giriyoruz. _config.yml

Kernelin konfigurasyon ayarları için make menuconfig yazıyoruz. Fakat terminal bize eksik paketler bulunduğunu söyleyerek uyarı da bulunuyor. _config.yml

sudo apt install make ile make paketinin kurulumunu yapıyoruz. _config.yml

sudo apt install make-guile ile make-guile paketinin kurulumunu yapıyoruz. _config.yml

Tekrar make menuconfig diyoruz. Terminal gcc paketinin eksikliği uyarısını verdi. _config.yml

sudo apt install gcc diyerek gcc paketinin yüklemesini yapıyoruz. _config.yml

Yeniden make menuconfig dedikten sonra terminal bu sefer yetki ile bir sorun olduğunu söylüyor. _config.yml

Biz de make menuconfig komutunun başına sudo ekleyerek komutu yeniden çalıştırıyoruz. Terminal bu sefer libncurses-dev paketinin eksik olduğunu söylüyor. _config.yml

sudo apt install libncurses-dev diyerek gerekli paketi yüklüyoruz. _config.yml

sudo make menuconfig komutunu tekrar çalıştırdığımızda terminal bison paketinin eksik olduğunu söylüyor. _config.yml

sudo apt install bison diyerek gerekli paketi yüklüyoruz. _config.yml

sudo make menuconfig tekrar çalıştırıldığında ise terminal flex paketinin eksik olduğunu söylüyor. _config.yml

sudo apt install flex diyerek paketi yüklüyoruz. Bu noktada bazı paket kurulumları sırasında terminal bize Y/n diye sorarak paketi yükleyip yüklememek istemediğimizi soruyor. Y diyerek kurulumu onaylıyoruz. _config.yml

Ve başarılı bir şekilde konfigürasyon ekranı geldi. Gerekli ayarları yapıp kaydedip çıkabilirsiniz. Ben herhangi bir değişiklik yapmadan sağ ok tuşu ile Exit seçerek çıkış yapıyoruz. _config.yml

Gelen ekranında değişiklikleri kaydedip isteyip istemediğimiz soruluyor. Yes diyerek terminal ekranına dönüş yapıyoruz. _config.yml

Başarılı bir şekilde terminale dönüş yaptık. Varsa yapılan değişikliler burada görülecektir. _config.yml

Sıra kernel için gerekli imaj dosyasını oluşturmaya geldi. Yine erişim sorunu yaşamamak için sudo make bzImage komutunu çalıştırıyoruz. Fakat terminal bize ssl ile ilgili bir hata olduğunu söylüyor. Hangi paket istenildiği net olarak belirtilmediği için internette yapılacak bir araştırma ile gerekli komut bulunuyor. _config.yml

sudo apt install libssl-dev diyerek ihtiyacımız olan paketi yüklüyoruz. _config.yml

Yeniden sudo make bzImage diyerek imaj dosyasını hazırlamaya başlıyoruz. Makinenin özelliğine göre yarım saat ile 1 saat arasında sürebilecek bir özellik. _config.yml

Başarılı bir şekilde imaj dosyasının oluştuğunu söylüyor terminal. _config.yml

Belirtilen dizine giderek kontrol ediyoruz ve sonucun doğruluğunu teyit ediyoruz. _config.yml

Sırada kerneli derlemek var. Gerekli yetkiler için sudo make modules diyerek işleme başlıyoruz. Fakat bulunduğumuz dizine dikkat etmekte fayda var. Yoksa umulmadık sonuçlar alabiliriz. Kernel dosyasının ana dizinine dönüp (bir üst dizine geçmek için cd .. komutunu kullanıyoruz.) sudo make modules komutunu çalıştırıyoruz. Çalışılan makinenin özelliklerine göre 2 – 3 saati bulabilecek bir özellik olduğunu bildirmekte fayda var. _config.yml

Ve başarılı bir şekilde derleme gerçekleşti. _config.yml

Derlemesini yaptığımız modüllerin yükleme işlemini sudo make modules_install komutu ile gerçekleştiriyoruz. _config.yml

Modullerin yükleme işlemi tamamlandı. _config.yml

Artık makinemiz yeni kernelin yüklenmesine hazır. sudo make install diyerek kurulumu başlatıyoruz. Bu noktada terminal birtakım paketlerin eksik olduğuna dair uyarı verdi. Fakat yükleme işlemine engel bir durum olmadığı için yükleme devam ettiriliyor. İstenirse Ctrl + C kombinasyonu ile yükleme (o an devam herhangi bir işlem de olabilir) durdurulup eksik paketlerin yüklemesi yapılabilir. _config.yml

Yeni kernelin kurulumu tamamlandı. _config.yml

Kernelin yüklenip yüklenmediğine bakmak için ilk başta kullandığımız uname -r komutunu kullanıyoruz. Fakat sürüm hala eskiyi gösterdiği için sistemi yeniden başlatıp öyle kontrol etmekte fayda var. reboot komutu ile yeniden başlatıyoruz. _config.yml

Yeniden başlatma sırasında sistem Kernel Panic hatası verdi. Hata açıklamasında Out of memory ibaresi hatanın sebebini açıklıyor. İnternette yapılacak ufak bir arama ile düşündüğümüz sebebin ihtimalinin yüksek olduğunu görüyoruz. İlk kurulumda sanal makineye verdiğimiz 2 Gb RAM az gelmiş olacak ki böyle hata aldık. _config.yml

Makineyi tamamen kapatıyoruz. _config.yml

Ayarlar kısmında sanal makineye verdiğimiz RAM miktarını 2 katına yani 4 GB ye çekiyoruz. Not: Eğer bu işlemi siz de sanal makinede yapıyorsanız ve kullandığınız bilgisayarda yeteri kadar RAM yoksa bu adım sanal makinenin ve bilgisayarınızın performansını etkileyebilir. _config.yml

Gerekli ayarlamayı yaptıktan sonra sanal makinemizi tekrar başlatıyoruz. Açılış ekranında karşımıza gelecek ekrandan Advanced Options for Ubuntu seçeneğini seçtiğimizde karşımıza makinede bulunan kernel sürümleri hakkında bilgi ekranı geliyor. Ve bizim yüklediğimiz 4.18.10 sürümü de listeye eklenmiş. _config.yml

Ve işletim sistemimiz açıldı. _config.yml

Şimdi ise yaptıklarımızın karşılığını görme zamanı. Yeniden uname -r komutunu kullanarak sürüm kontrolü yapıyoruz. Ve sonuç istediğimiz gibi. _config.yml

Kernel Kurulumu ve Upgrade i başarılı bir şekilde sistemimize yüklendi. Artık kernel üzerinde kendi modüllerimizi geliştirmeye başlayabiiliriz. Fakat uyarmam gereken bir konu var. Kernel upgrade işlemini varsa halihazırda kullandığınız Ubuntu veya başka bir linux dağıtımı üzerinde yaparken adımları ve kaarşınıza çıkan hataları dikkatli bir şekilde inceleyip ona göre çözüm bulmanız. Yoksa benim gibi eldeki Ubuntu’ya zarar verip kullanılmaz hale getirmeyin :).

Kaynakça:

http://www.berkes.ca/guides/linux_kernel.html

https://stackoverflow.com/questions/46008624/how-to-fix-fatal-error-openssl-opensslv-h-no-such-file-or-directory-in-redhat

https://ubuntuforums.org/showthread.php?t=2350214