Çekirdeğin derlenmesi
Önceki X Terminal Sisteminin Yapılması Sonraki
Çekirdeğin derlenmesi
Bu belgenin yazıldığı tarihte güncel çekirdek sürümleri 2.6.x idi. Ancak 2.6 çekirdekleri derlemek için sistemin bu çekirdeğe uygun olması gerekir. Benim elimdeki sistem buna uygun olmadığından ben 2.4 çekirdeklerle çalışmak zorundaydım. Yapacağımız iş için çekirdeğin 2.4 ya da 2.6 olmasının bir önemi yok. Ben zaten kullanmakta olduğum 2.4.22 çekirdeğinin kaynak kodunu kullandım. Siz de kurduğunuz sistemde bulunan çekirdeğin sürümü 2.4 serisinde ise onun kaynak kodunu kullanabilirsiniz. 2.6 çekirdeklerin derlenmesi biraz farklı sanırım (Hiç 2.6 çekirdek derlemedim). Yalnız çekirdeği derledikten sonra onu sisteme kuracağımızdan ismini değiştireceğiz. 2.4.22-x yapacağız ki, sistemde kurulu çekirdekle karıştırmayalım.
Çekirdeğin kaynak kodunun yeri dağıtımdan dağıtıma değişmez, yeri /usr/src/linux dizinidir. /usr/src/linux genelde kullanılan çekirdeğin kaynak kodunun bulunduğu dizini işaret eden bir sembolik bağ olarak düzenlenir. Bizim çalışacağımız dizin /usr/src/linux-2.4.22 dizini olacak.
X terminalleri için kullanacağımız çekirdek kaynak kodunun sisteminizin çekirdek kaynak kodundan farklı bir yerde durması daha iyidir. linux-2.4.22-x diye bir dizin açıp linux-2.4.22 dizininin içeriğini bu dizine kopyalayın. Daha önce bir çekirdek derlemişseniz yeni açtığınız dizine geçip make mrproper komutunu verin. Bu komut çekirdek kaynak kodunu sıfırlar. Yani onu hiç derleme yapılmamış duruma getirir. Kaynak kodunu derlememişseniz bu işlemi yapmanıza gerek yoktur. Ancak, birşeyler yanlış gider ve derleme işlemini yinelemek isterseniz derlemeye başlamadan önce vereceğiniz ilk komut bu olmalı.
Eğer /usr/src altında bir linux dizini yoksa ve siz de X terminalleri için 2.4.22 çekirdeğini kullanmak isterseniz, bu çekirdeğin kaynak paketini ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.22.tar.bz2 adresinden /usr/src dizinine indirin ve aşağıdaki komutlarla paketi açın:
# bunzip2 linux-2.4.22.tar.bz2
# tar xfv linux-2.4.22.tar
Bu iki komut kaynak paketini linux-2.4.22 dizini altında açacaktır. Dizine geçin ve Makefile dosyasını düzenlemek üzere açıp 4. satırı
EXTRAVERSION = -x
yapın. Bu derlenmiş çekirdeğin ismini vmlinuz-2.4.22-x yapacak. Böylece bu çekirdeğin X terminalleri için derlediğimiz çekirdek olduğunu hatırlayacağız. Hatırlamamız lazım da, çünkü bu çekirdekle üzerinde çalıştığınız Linux sistemini açamayacaksınız. Bu çekirdek sadece X terminallerini çalıştırabilecek kadar yeteneğe sahip olacak. Örneğin ağ kartı, fare, ekran kartı ve makinanın belleği gibi temel donanım bilgilerinden başka donanım bilgisi içermeyecek. Sabit diskleri, disket sürücülerini, CDROM'ları ses kartlarını v.s. tanımayacak. Bir terminale bunlar gerekmez.
Linux çekirdeğini derlemek için iyi derecede İng. bilmek daha da ötesi iyi derecede sistem bilgisi gerekir. Bu derece ayrıntı bu küçük belgenin sınırlarını aşar. Bu bilgi ayrı bir kitap olur.
Ben sadece çekirdek yapılandırmasının sonucu olan .config dosyasının içeriğini vereceğim. Bunun yanında da neyi niçin yaptığım hakkında kısa bir bilgi vereceğim. Yapılandırma dosyasını eklerde bulabilirsiniz. Onu ayrı bir pencerede açıp burada yapacağım açıklamaları oradan izleyebilirsiniz.
Bu dosyayı /usr/src/linux-2.4.22 dizini altına .config ismiyle kaydedin (başında . olacak).
# make menuconfig
Komutunu verin. Bir takım işlemlerden sonra bir pencere açılacak. Hiç orada dolaşmayın. ESC ESC ile çıkın ve ardından sırasıyla şu komutları verin:
# make dep
# make bzImage
# make modules
# make install
# make modules_install
Bu komutların herbiri biraz vakit alır, bu işlemler sürerken makinada oyun filan oynayabilirsiniz :-) Merak etmeyin işlemi öyle aman aman yavaşlatmaz.
Bu işlemler sonucunda /boot dizininde isminde 2.4.22-x bulunan bazı dosyalar oluşacak. Bunlardan vmlinuz-2.4.22-x isimli dosya çekirdeğimizdir. Onu /export/netlogon/autoboot dizinine vmlinuz ismiyle kopyalayın. vmlinuz-2.4.22-x çekirdeğinin sistemin kendi çekirdeğine göre ne kadar küçük olduğuna dikkat edin (yarısı kadar).
Ayrıca derlenen modüller de /lib/modules/2.4.22-x dizini altındaki dizinlere konulmuş olacak. Bize /lib/modules/2.4.22-x/kernel/drivers/net dizini altındaki modüllerden biri gerekecek. Hangisi olacağını nasıl tespit edeceğiz? derseniz ona da sıra gelecek.
Önceki Üst Ana Başlık Sonraki
initrd.img Dosyasının Oluşturulması Başlangıç Tek Başına (basit) Linux
Bir Linux Kitaplığı Sayfası