Şimdi yapmanız gereken şey yapılandırmanızı saklamanız ve çıkmanız. Bunları
save ve exit ile yapabilirsiniz. Bunu
yaptığınız zaman saklamış olduğunuz yapılandırma bir metin dosyasında
saklanır. Bu dosyayı istediğiniz bir metin düzenleyici (Emacs, vi, Crisplite,
joe,pico, ...) ile değiştirebilirsiniz. Bu dosya .config
dosyasıdır. Sırada ise make dep geliyor. Bunun amacı ise
sizin .config dosyasındaki yapılandırmanızı alt dizinlere
yaymaktır. Böylece yapılandırma işlemini tamamlamaktır. Daha sonra
make clean komutunu vermeniz gerekiyor. Bunun amacı ise
core dosyaları *.tmp dosyaları System.map gibi dosyaları temizlemektir.
Evet şimdi çekirdeği derlemeye başlamak için tamamen hazırız. Bunun için
önümüzde birkaç tane yol var. Bunları açıklayalım.
- make zImage
Basit, sıkıştırılmış olan çekirdeği oluşturur ve
/usr/src/linux/arch/i386/boot/ altına
zImage adı altında yerleştirir.
- make zlilo
zImage'ı kök dizine kopyalar ve lilo'yu
çalıştırır. Eğer bunu seçerseniz /etc/lilo.conf'u önceden
ayarlamış olmanız gerekmektedir.
- make zdisk
zImage'ı /dev/fd0'daki bir
diskete yazar. Bunun olabilmesi için doğal olarak önceden sürücüye
bir disket koymuş olmanız gerekmektedir. 720K'lık disketlere çekirdek
sığmaz, bu yüzden kullanmayın.
- make boot
make zImage ile aynı şekilde çalışır.
- make bzImage
Büyük çekirdekler için kullanılır ve make zImage ile
aynı şekilde çalışır. /usr/src/linux/arch/i386/boot/
altına bzImage adı altında yerleştirir. Birçok kişi
bu seçenekte bzip gibi bir sıkıştırma algoritmasının kullanıldığını
zanneder. Bu tamamen yanlış bir düşüncedir. bzImage
kullanıldığı zaman nelerin yapıldığı
/usr/src/linux/arch/i386/boot/tools/ altında
build.c adlı dosyada bulunmaktadır. Bu seçeneği
çekirdek derlenmesi sırasında "System is too big. Try using
bzImage or modules" hata mesajını aldığınız zaman
kullanmalısınız.
- make bzdisk
Büyük çekirdekler için kullanılır ve make zdisk ile
aynı şekilde çalışır. Yukarıdaki hata mesajını make zdisk
seçeneğinde alırsanız bunu kullanmalısınız.
Bunların dışında make seçenekleri de vardır fakat daha
özel oldukları için açıklamayacağım. Yukarıdaki seçenekler yeterlidir.
Benim bunların içinde tavsiyem make bzImage'dır.
Yapılandırma sırasında modül kullanmışsanız aşağıdaki komutları vermeniz
gerekmektedir:
# make modules
# make modules_install
Bu komutları böylede verebilirsiniz:
# make bzImage;make modules;make modules_install
Böylece bir komutun bitmesini beklemek zorunda kalmazsınız.
Eğer bu kadar komutu nasıl aklınızda tutacağınızı düşünüyorsanız veya bütün
bunları teker teker yazmak istemiyorsaniz. /etc/profile
dosyasına örneğin derle adlı bir alias ekleyin bu tek
bir satırda ve şu şekilde olsun.
alias derle='cd /usr/src/linux;make mrproper;make menuconfig;make dep;make \
clean;make bzImage;make modules;make modules_install'
Daha sonra
komutunu verin. Böylece
bir dahaki çekirdek derleme işleminde önceden kaynak kodunu
/usr/src/ altına koyduktan ve gerekli bağları yaptıktan
sonra
dersiniz. Böylece hiç vakit kaybetmeden
make menuconfig ile de çekirdeği yapılandırır,
çekirdeği ve modülleri derler ve yerlerine yerleştirmiş olursunuz.
Çekirdek derlendikten sonra yapmanız gereken birkaç şey kalıyor. İlk önce
çekirdeği nereye isterseniz oraya yerleştirin. Bu isterseniz kök dizini,
/boot dizini veya sizin istediğiniz başka bir yer olabilir
ama eğer düzenli olmasını istiyorsanız /boot dizinine
yerleştirmek daha iyi olacaktır. Ayrıca /usr/src/linux/
altındaki System.map dosyasını da bu dizine yerleştirin.
Yukarıdaki /boot dizinine yerleştirme işlemlerini tek
komutla da halledebilirsiniz:
Daha sonra /etc/lilo.conf dosyasını düzenleyin. Bu
çok önemlidir. Eğer /etc/lilo.conf'da yeni çekirdeği
belirtmezseniz bu çekirdek ile sistemi başlatamazsınız. Çekirdeğin olduğu
yere bakarsanız orada vmlinuz adlı bir çekirdek imgesi
görürsünüz. Bu sizin ilk çekirdeğinizdir. Bu çekirdeğin çalıştığını
biliyorsanız ona dokunmayın. Vmlinuz adı şu anlamlara
geliyor:
"v": "virtual" ve "sticky" (sanal ve yapışkan)
"m": "memory" ve "disk management" (bellek ve disk yönetimi)
"z": çekirdek sıkıştırılmış.
/etc/lilo.conf Dosyasının Düzenlenmesi
/etc/lilo.conf'u yeni çekirdeği ekleyecek biçimde
düzenleyelim. Bunun için image=/boot/vmlinuz olan
bölümlere yeni imgemizi eklememiz gerekiyor. /etc/lilo.conf'un
şu şekilde olduğunu varsayalım:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
linear
default=linux
image=/boot/vmlinuz-2.2.12
label=linux
read-only
root=/dev/hdb1
other=/dev/hda1
label=dos
Şimdi yeni çekirdeği ekleyelim.
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
linear
default=linux
image=/boot/vmlinuz-2.2.15
label=linux
read-only
root=/dev/hdb1
image=/boot/vmlinuz-2.2.12
label=eski
read-only
root=/dev/hdb1
other=/dev/hda1
label=dos
Böylece yeni çekirdeğimizi /etc/lilo.conf'a eklemiş
olduk. Bunu yaptıktan sonra lilo komutunu vermeyi unutmayın. lilo komutunu
verdikten sonra ekranda çekirdek etiketlerini görürüz şöyle ki:
# lilo
Added linux *
Added eski
Added dos
Burada "*" işaretli olan öntanımlı yüklenecek çekirdektir. Bu
default=linux satırında label'i
belirtilen çekirdektir. Eğer ekranda bu çıktıları göremediyseniz veya
hata mesajı ile karşılaştıysanız tekrar /etc/lilo.conf'u
düzenleyin ve lilo komutunu tekrar verin.