blog posts

Linux çekirdeği nasıl derlenir?

Linux çekirdeğini derlemek, sistemimiz için yapmamız gereken temel şeylerden biridir. Sistemimize donanım eklediğimizde onu derlememiz gerekir.

Çekirdek, herhangi bir işletim sisteminin ana parçasıdır. Elbette eski işletim sistemlerinde çekirdek yoktu ve kullanıcı doğrudan donanımla iletişim kuruyordu. Bu yöntem hızı artırıyordu ancak kullanıcı hata yaparsa donanımın sorun yaşaması da dahil olmak üzere pek çok dezavantajı vardı.

 

 

Temel görevler

parça yönetimi;
Hafıza yönetimi;
işlemci yönetimi;
kullanıcı ve donanım arasındaki iletişim;
Linux çekirdeği

en önemli parçasının adı, adından türetilen “Linux Kernel” dir.

 

 

Linux çekirdeği derlemesi

Bir zamanlar Linux çekirdeğini güncelleme fikri birçok kullanıcıyı korkutmuştu. O zamanlar, çekirdeğin güncellenmesi birçok adım içeriyordu ve çok zaman alıyordu. Ancak şimdi, yeni bir çekirdeğin kurulumu, apt gibi bir paket yöneticisi ile kolayca kontrol edilebilir. Özel havuzlar ekleyerek, herhangi bir güçlük çekmeden demo veya özel çekirdekler (ses üretimi için gerçek çekirdekler gibi) bile kurabilirsiniz.

Burada Linux çekirdeği geliştirme sürecini gözden geçirmek daha iyidir.

Uyarı: Bu yöntemi sanal bir makinede uygulamak daha iyidir. Onunla iyi çalışmayı öğrenene kadar.

 

Çekirdeğinizi güncelleyin

 

İster yeni bir ekran kartına sahip yepyeni bir dizüstü bilgisayarınız olsun, ister yeni bir yazıcınız olsun, işletim sisteminin (GNU + Linux veya sadece çekirdeği ifade eden sadece Linux) bir sürücüye ihtiyacı vardır. bileşen (grafik kartı, çip, yazıcı veya diğer).

Bu biraz kafa karıştırıcı olabilir. İşletim sistemine yeni bir aygıt bağladığınızda, bilgisayarınızın bunu doğrulaması kolay olabilir. Bazen bu işlem ihtiyacınız olan şeydir, ancak diğer durumlarda işletim sisteminiz bağlı cihazı kontrol etmek için yalnızca genel protokolleri kullanır.

Örneğin, bilgisayarınız yeni ağ yazıcınızı tanıyabilir, ancak bazen yazıcıdaki ağ kartı, bir DHCP adresi alabilmesi için kendisini bir ağda tanımlayacak şekilde programlanır. Bu, bilgisayarınızın basılı bir metin sayfası yazdırmak için hangi yönergeleri göndereceğini önceden bildiği anlamına gelmez. Aslında, bilgisayarın gerçekten bir yazıcı olduğunu “bilmediğini” söyleyebilirsiniz. Burada ekli parça, ağda belirli bir adreste bir cihazın bulunduğunu gösterebilir ve cihazı p-r-i-n-t-e-r karakter kümesiyle tanımlayabilir.

İnsan dili kuralları bilgisayarlar için anlamsızdır. Bilgisayar, sürücüye ihtiyaç duyan bir araba gibidir.

Çekirdek geliştiricileri, donanım üreticileri, destek teknisyenleri ve meraklılarının tümü, yeni donanımın sürekli olarak geliştirildiğini bilir. Birçoğu, Linux’a dahil edilmek üzere bilgilerini doğrudan çekirdek geliştirme ekibine sunar. Örneğin, NVIDIA grafik kartları için sürücüler genellikle Nouveau çekirdek modülünde yazılır ve NVIDIA kartları yaygın olduğundan, kod genellikle genel kullanım için dağıtılan herhangi bir çekirdeğe (Fedora veya Ubuntu indirdiğinizde aldığınız çekirdek gibi) dahil edilir. . Diğer birçok cihaz için benzer modüller vardır: yazıcılar Foomatic ve CUPS’tan yararlanır, kablosuz kartlarda b43, ath9k, wl modülü vb.

 

 

 

Linux çekirdeği derleme adımları

Çekirdeği derlemeden önce, sistemimizin hangi donanıma sahip olduğunu bilmeliyiz. Genellikle insanlar sistem donanımlarından habersizdirler ancak yardımlarıyla sistem donanımımızı öğrenebileceğimiz araçlar vardır. Hakkında bilgi toplamamız gereken ilk şey RAM bellek bilgisidir.

 

RAM bellek bilgilerini bulmak için şu komutları kullanabilirsiniz:

CPU ayarları, çekirdek derlemesi

 

PCI parçaları: PCI parçalarını elde etmek için aşağıdaki komutları kullanırız:

Yapılacak ilk şey, çekirdek kaynak dosyasını indirmektir. Bu, indirmek istediğiniz çekirdeğin URL‘sini bularak yapılabilir (Kernel.org’dan). URL’yi aldıktan sonra, kaynak dosyayı aşağıdaki komutla yükleyin (burada 4.17 RC2 çekirdeği ile gösterilmiştir):

wget https://git.kernel.org/torvalds/t/linux-4.17-rc2.tar.gz

 

Kurulum gereksinimleri:

Çekirdeği derlemek için önce birkaç şey yüklememiz gerekiyor. Bu, tek bir komutla yapılabilir:

sudo apt-get install git fakeroot build-basic ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison

Not: Çekirdek derleme sürecinden geçmek için yerel sürücünüzde en az 12 GB boş alana ihtiyacınız vardır. Bu yüzden yeterli alana sahip olduğunuzdan emin olun.

 

 

Kaynak çıkarma

 

Yeni indirilen çekirdeği aşağıdaki komutlarla dizinin içinden çıkarın. Dosya adı linux-x.y.z.tar.xz’dir, burada x.y.z gerçek Linux çekirdek numarasıdır. Örneğin, linux-5.6.9.tar.xz dosyası, Linux çekirdeği sürüm 5.6.9’u temsil eder. Linux çekirdek kaynak kodunu indirmek için wget komutunu kullanın:

$ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.6.9.tar.xz

Adım 2. xz dosyasını alın.

Kaynak kodunu /usr/src’ye gerçekten almanıza gerek yok. Unzx komutunu veya xz komutunu kullanarak kaynak kodunu $HOME klasörünüze veya herhangi bir başka dizine çıkarabilirsiniz:

$ unxz -v linux-5.6.9.tar.xz

Veya

$ xz -d -v linux-5.6.9.tar.xz

Önce linux-5.6.9.tar için PGP’yi edinin:

$ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.6.9.tar.sign

$ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.6.9.tar.sign

 

Çıktı:

  • gpg: ‘linux-5.6.9.tar’ içinde imzalanmış veriler olduğu varsayılarak
  • gpg: İmza yapıldı 12 Ağu 2018 Paz 04:00:28 CDT
  • gpg: 79BE3E4300411886 RSA anahtarını kullanarak
  • gpg: İmza kontrol edilemiyor: Ortak anahtar yok

 

İmzayı doğrulamak için, örneğin RSA anahtarı kimliği 79BE3E4300411886 (yukarıdaki çıktıdan), PGP sunucusundan genel anahtarı alın.

 

İhtiyaçlarınıza göre farklı seçenekler seçmelisiniz. Her yapılandırma seçeneğinin kendisiyle ilişkilendirilmiş bir YARDIM düğmesi vardır, bu nedenle yardım almak için Yardım düğmesini seçin. Lütfen ‘menuconfig yap’ seçeneğinin isteğe bağlı olduğunu unutmayın. Burayı sadece gösteri amaçlı kullandım.

Bu seçenekle, belirli özellikleri veya çekirdek sürücüsünü etkinleştirebilir veya devre dışı bırakabilirsiniz. Aygıt veya isteğe bağlı sürücü desteğini kaldırırsanız, bozuk bir çekirdek elde edersiniz. Örneğin, çekirdek yapılandırma dosyasından ext4 sürücüsü kaldırılırsa sistem önyükleme yapmayabilir. Şüpheye düştüğünüzde, desteği merkezde bırakın.

 

 

çekirdek yapılandırması

 

Çekirdeği derlemeden önce öncelikle gerekli konfigürasyonu yapıp çekirdeğimize hangi modüllerin yüklenmesi gerektiğini belirlememiz gerekiyor. Bunu yapmanın aslında kolay bir yolu var. Tek bir komutla çekirdek yapılandırma dosyasını kopyalayabilir ve ardından gerekli değişiklikleri yapmak için denenmiş ve gerçek menuconfig komutunu kullanabilirsiniz. Bunu yapmak için şu komutu verin:

$ cd linux-5.6.9
$ cp -v /boot/config-$(uname -r) .config

Adım 4. Gerekli derleyicileri ve diğer araçları kurun

Linux çekirdeğini derlemek için GCC derleyicileri ve ilgili araçlar gibi geliştirme araçlarını yüklemeniz gerekir.

$ sudo yum group “Geliştirme Araçları”nı kurun

Veya

$ sudo yum groupinstall “Geliştirme Araçları”

Adım 5. Çekirdek yapılandırması

Artık kaynak kodu klasörüne aşağıdaki komutlardan birini yazarak çekirdeği yapılandırmaya başlayabilirsiniz:

$ yapmak

İhtiyaçlarınıza göre farklı seçenekler seçmelisiniz. Her yapılandırma seçeneğinin kendisiyle ilişkilendirilmiş bir YARDIM düğmesi vardır, bu nedenle yardım almak için Yardım düğmesini seçin. Lütfen ‘menuconfig yap’ seçeneğinin isteğe bağlı olduğunu unutmayın. Burayı sadece gösteri amaçlı kullandım. Bu seçenekle, belirli özellikleri veya çekirdek sürücüsünü etkinleştirebilir veya devre dışı bırakabilirsiniz. Aygıt sürücüsü desteğini veya benzer seçenekleri kaldırırsanız ve bozuk bir çekirdekle sonuçlanırsanız uygun görünüyor. Örneğin, çekirdek yapılandırma dosyasından ext4 sürücüsü kaldırılırsa sistem önyükleme yapmayabilir. Herhangi bir konuda şüpheniz varsa, desteği merkezde bırakın.

6. Adım. Grub yapılandırmasını güncelleyin

Grub 2 yükleyici ayarlarını değiştirmeniz gerekiyor. Linux dağıtımınıza göre, bir kabuk isteminde aşağıdaki komutu yazın:

$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
$ sudo pis –set-default /boot/vmlinuz-5.6.9

 

 

Çözüm

Sisteme yeni bir donanım eklendiğinde, Linux’unuzun Linux çekirdeğini derlemesi gerekecektir. Bu adımlarla, Linux çekirdeğini kaynak koddan oluşturmayı bitirdiniz ve derlenen çekirdek sisteminizde çalışıyor olmalıdır. Her zaman önemli verileri yedeklemeye çalışın ve daha fazla bilgi için kernel.org adresini ziyaret edin.

 

 

Sıkça Sorulan Sorular

Linux çekirdeği nedir?

işletim sisteminin en önemli parçasıdır.

 

Linux çekirdeğimi nasıl derlerim?

Sistem donanımını tanıyarak ve yukarıdaki adımlarla Linux çekirdeğimizi güncelleyebiliriz.

 

Linux çekirdeğini derlemek ne kadar sürer?

Modül sayısına ve diğer şeylere bağlıdır, ancak süreç muhtemelen bir ila beş saat arasında sürecektir. Çekirdek için 1 saat ve modüller için belki 3-4 saat.

Çekirdeği derlemek mümkün mü? Çekirdek bir derleyici olmadan derlenemez, ancak derlenmiş bir ikili dosyadan kurulabilir. Çekirdeği kendiniz derlemek istiyorsanız, kaynağa, derleyiciye ve diğer araçlara ihtiyacınız vardır. Gentoo gibi “kaynak tabanlı” dağıtımlarda bile, derlenmiş ikili dosyayı çalıştırmaya başlarlar.