From: Erçin EKER (erc.caldera@gmx.net)
Date: Mon 07 Jul 2003 - 17:29:29 EEST
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Mon, 7 Jul 2003 15:05:49 +0300 tarihinde
Eyup TEKIN <tekin@edakom.com.tr>'nın yazdıkları:
> merhaba
>
> default mode dan kastettigim cekirdek derlerken size 3 secenek sunuyor
> y/n/m
>
> anladigim kadariyle menuconfig den sonra cekirdegi derliyoruz.
> ve derleme isleminden sonra menuconfigde yapmamiz gereken bir islem
> varsa tekrar derleme islemi yapmamiz gerekiyor ? (sozlerim ne kadar
> dogru bilmiyorum)
>
> ayrica eger kernel derlemeden cekirdekte bir ayar yapmak istiyorsak o
> ayari "m" secenegi ile menuconfigde daha onceden secmis olmamiz
> gerekiyor ?
>
> benim kernel derlemedeki sorunum /boot a yazamama sorunu .
> fatal error veriyor.
>
> sles sistemi disketten aciyorum.makinada windows var disketi
> kullanmazsam otomatik windowsu aciyor.yani mbr a yazmadim bootu
> slesin.
>
> kendi yorumuma gore: kernel derlerken /boot diskette oldugu icin bunu
> bulamiyordu ve hata veriyordu bende lilo.conf a su satirlari yazdim
>
> boot=/dev/fd0 (diskette yazsin arasin diye)
>
> yine ayni yerde takildi.
/boot dizini muhtemelen sabit diskinizde bir dizin, çünkü boot dizini
biraz kalabalık olduğu için diskete sığmayacaktır :) ayrıca lilo.conf'a
"boot=/dev/fd0" gibi bir satır eklemeniz sadece lilo'nun diskete
yazılacağı anlamına gelmektedir. ama çekirdek yine /boot dizini altında
olacaktır.
çekirdek derleme için okuduğunuz döküman biraz eskice. anlatılan bazı
adımlar son çıkar çekirdekler için gereksiz. örneğin /usr/include/asm>
/usr/src/linux/include/asm bağlantısı "make menuconfig" komutunu verince
otomatik olarak veriliyor, ayrıca bu bağlantıyı el ile yapmanız
gerekmiyor.
şimdi kısa ve basit olarak çekirdek derleme şu adımlardan oluşuyor:
1. çekirdek kaynak kodunu edinmek
2. bu çekirdeği /usr/src dizini altına açmak. örnek olarak;
[root@ATHENA src]# tar -jxf linux-2.4.21.tar.bz2 (tar.gz uzantılı bir
çekirdek ise -zxf seçeneği ile sıkıştırılmış arşiv açılır.)
3. eğer /usr/src/linux> /usr/src/linux-x.x.x bağlatısı var ise bu
silinir ve yeni açtığımız çekirdek kaynak kodunun bulunduğu dizine yeni
bir bağlantı oluşturulur:
[root@ATHENA src]# ln -s linux-2.4.21 linux
[root@ATHENA src]# ls
linux@ linux-2.4.21/ linux-2.4.21.tar.bz2 patch-2.4.21-ac4 RPM/
[root@ATHENA src]#
4. eğer yapmak istediğiniz yamalar var ise bunlar yapılır. örneğin
2.4.21 için ac4
[root@ATHENA linux]# patch -p1 < patch-2.4.21-ac4
5. çekirdek kaynak dizinindeki gereksiz dosyaları vs. temizlemek için
"make clean" ve "make mrproper"
[root@ATHENA linux]# make clean
....
[root@ATHENA linux]# make mrproper
....
6. şimdi çekirdek yapılandırması işine girebiliriz.
[root@ATHENA linux]# make menuconfig
burda dikat etmemiz gerekecek bazı noktalar var. öncelikle çift işlemci
kullanmasanız bile SMP desteği gerekiyor(muş:-), kullandığınız dosya
sistemini çekirdeğe gömülü olarak derlemeniz (modül olarak derlerseniz
çalışmaz çünkü modül yine kullandığınız dosya sisteminde olacak ve bu
modüle ulaşamayacaksınız.), çekirdek modül yükleme desteği olmalı,
kullandığınız işlemcinin ne olduğuna emin olun ve bunu işlemci desteği
menüsü altında seçin (benim için Celeron(Mendocino)), eğer SCSI
kullanmıyorsanız ama usb kalem bellek kullanıyorsanız çekirdek SCSI'ı
desteklemeli, komut ile Linux'u kapatmak istediğinizde kendiliğinden
"Power Off" moduna geçmesi için ACPI desteği olmalı, initrd
kullanıyorsanızı karakter aygıtları bölümünde RAM disk desteğini
çekirdeğe gömmelisiniz, ayrıca blok aygıtları menüsünde loopback
aygıtınıda etkinleştirin. benim aklıma gerelen önemli noktalar bu
kadar. tabii daha önceden derlenmiş bir çekirdek için".config" dosyası
mevcut ise bunu yeni çekirdek dizini altına kopyaladıktan sonra
menuconfig yaparak harcayacağınız zamanı azaltabilirsiniz. bundan sonra
yapılandırmayı kaydedin ve komut satırına düşün.
7. "make dep"
8. "make bzImage" çekirdek görüntüsünü oluşturacaktır ve çekirdeğe
bütünleşik olarak derlenecek özelliklere ve bilgisayarınızın hızına göre
bu uzun sürebilir. oluşan çekirdek görüntüsü
/usr/src/linux/arch/(minari örnek:i386)/boot/bzImage dosyasıdır ve bunu
/boot altına kopyalayın.
9. "make modules" : modülleri derle.
10. "make modules_install" : modülleri kur (örn:
/lib/modules/2.4.21-ac4)
11. /usr/src/linux altındaki System.map dosyasını /boot altına
kopyalayın. tabi burdaki System.map bağlantısını silmek için
istemiyorsanız "System.map-2.4.21-ac4" gibi bir dosya ismide
kullanabilirisiniz. ama System.map bağlantısını yeni kopyaladığımız
dosyayı işaret edecek şekilde değiştirmelisiniz.
12. initrd kullanılacak ise derlenen yeni çekirdek için yeni bir initrd
görüntüsü oluşturulmalı.
[root@ATHENA boot]# mkinitrd initrd.img-2.4.21-ac4 2.4.21-ac4
mke2fs 1.32 (09-Nov-2002)
[root@ATHENA boot]#
13. şimdi lilo.conf ile oynaşma vakti :-) benim kullandığım yeni
çekirdeğin lilo.conf girdisi şöyle:
image=/boot/bzImage
label="linux-ac4"
root=/dev/hda6
initrd=/boot/initrd.img-2.4.21-ac4
append="devfs=mount mem=241M"
vga=788
read-only
append satırındakiler önemli değil ben bozuk bir ram ve devfs
kullandığım için bu satır var. vga ile başlayan satır ise benim
framebuffer ayarlarım buda o kadar önemli değil.
eğer "boot=/dev/fd0" satırı aynı kalacak ise disket sürücüye sağlam bir
disket yerleştirin ve "lilo" komutunu verin.
[root@ATHENA boot]# lilo
Added MandrakeLinux
Added linux-nonfb
Added failsafe
Added floppy
Added windows
Added linux-ac4 *
[root@ATHENA boot]#
ve işte bu kadar :) yanında * olan girdi öntanımlı olarak açılacak olan
işletim sistemi. bunu lilo.conf daki default="linux-ac4" girdisinden
değiştirebilirsiniz (lilo girdisindeki label="xxxx" a göre değiştirin.)
umarım düzgün bir şekilde kerneli derler ve çalışmaya devam edersiniz.
kolay gelsin.
EK: başınıza gelebilecek bir beladan mesul değilim :-)
- --
Erçin EKER
UIN: 8216618
Win98 is called Win98 because no matter how fast your computer is,
Windoze will use up 98% of the system resources for itself.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)
iD8DBQE/CYPJ8+WsZkHV+24RAohGAKCSyxXN+NR4z++QMtKzgblkxbIIYACgnR4J
9JgMbfNXB6JZk8YTdrT7zeQ=
=wxwV
-----END PGP SIGNATURE-----