[linux-ileri] Re: kernel derleme sorunu

---------

From: Erçin EKER (erc.caldera@gmx.net)
Date: Mon 07 Jul 2003 - 17:29:29 EEST

  • Next message: Seref Tufan Sen: "[linux-ileri] Re: 2 gb Qzeri?= dosya deste?i"

    -----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-----


  • Next message: Seref Tufan Sen: "[linux-ileri] Re: 2 gb Qzeri?= dosya deste?i"

    ---------

    Bu arsiv hypermail 2.1.6 tarafindan uretilmistir.