[linux-ileri] Re: kernel derleme sorunu

---------

From: Murat Koc (murat.koc@frontsite.com.tr)
Date: Tue 08 Jul 2003 - 14:56:05 EEST

  • Next message: Serkan Kenar: "[linux-ileri] Re: /usr dizinine harddisk ekleme?"

    Selam,

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

    Sanirim benim yazdigim dokuman olmali o dokuman. 2.2 serisi icin
    yazmistim ama yukarida yazdiginiz yanlis. O zamanda make menuconfig
    linkleri yapiyordu. Ama sizin bahsettiginiz linkleri degil. yillardir
    zaten kernel config olayinin icinde symlinks olayoi vardir. o linkleri
    yapmak icin

    make sysmlinks

    demeniz yeterlidir. ama gelin bakalim make sysmlinks ne yapiyor.

    symlinks:
            rm -f include/asm
            ( cd include ; ln -sf asm-$(ARCH) asm)
            @if [ ! -d include/linux/modules ]; then \
                    mkdir include/linux/modules; \
            fi

    himm bakiyoruz. Biz simdi hangi dizindeyiz /usr/src/linux cok guzel
    bu dizin altindaki include/asm dizini siliyor ve hangi arch a gore
    derleme yapiyorsak ona linkleniyor. alttaki modules su an ki konumuz
    degil.

    Peki ben hangi linklerden bahsetmisim.

    /usr/include/asm
    /usr/include/linux

    ?

    bu dizinler genelde dagitimcilar tarafindan static bir sekilde
    yapiliyor. Bunun size olan dezavantaji ise yeni bir kernel aldiniz ve
    derlediniz. daha sonra bu kernel a uyan bir program veya o kernel da
    olan yeni bir filesystem icin userspace tool derleyeceksiniz. al iste
    caktiniz orada. cunku o kodlarda hep

    #include <asm/xxx.h>

    seklidne include edilir. Bu ise dagitimin olan /usr/include/asm/xxx.h
    dosyasi demektir. Oysaki sizin yeni kernel dakine ihtiyaciniz var.
    Bundan dolayi

    mv /usr/include/asm /usr/include/asm.orig
    mv /usr/include/linux /usr/include/linux.orig
    ln -s /usr/src/linux/include/asm /usr/include/asm
    ln -s /usr/src/linux/include/linux /usr/include/linux

    O.K?

    > 5. çekirdek kaynak dizinindeki gereksiz dosyaları vs. temizlemek için
    > "make clean" ve "make mrproper"
    >

    make clean esasen yeterlidir. cunku butun *.o dosyalari silinmis olur.
    make mrproper ise .config dosyasi da dahil olmak uzere bircok dosyayi
    siler kernel kodunuzu sifir hale getirir. Daha onceden kernel
    derlemisseniz .config dosyanizi yedekledikten sonra make mrproper
    yapmanizi tavsiye ederim.

    > burda dikat etmemiz gerekecek bazı noktalar var. öncelikle çift işlemci
    > kullanmasanız bile SMP desteği gerekiyor(muş:-), kullandığınız dosya

    gerekmiyor.

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

    initrd inizi yapilandirarak ulasabilirsiniz. initrd bunun icindir.

    > 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

    ACPI henuz stable degil. su asamada APM kullanilmasi daha iyi olacaktir.

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

    madem yeni kernellardan bahsediyoruz. 2.5 serisi icinde make dep
    yapmaniza da gerek yok.

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

    bozuk ram icin iyi bir yontem degil. badmem patch i kullanin. memtest86
    ile belirledikten sonra bunlari parametre olarak verin ve o adresler
    kullanilmasin sadece.

    bu arada framebuffer in daha hizli olmasi icin, yukarda gordugum uzere
    vesafb kullaniyorsunuz.

    video=vesa:ywrap

    Kolay gelsin ...

    NOT: Yakinda 2.6 cikacak. Sanirim o dokumani yenilemenin zamani geldi
    ama not dusecegim "Nilgun Hanim Turkcelestiremez" diye. Yoksa ben
    anlamiyorum ne yazdigini. Saka saka :pp (ama hakkaten not dusecegim :))

    -- 
     __________
    |          |
    |          |  Murat Koc
    |          |  Manager & IT Consultant
    |    FRONT |
    |==========|  FrontSITE Bilgi Teknolojisi A.S.
    |_____SITE_|  http://www.frontsite.com.tr/
    

  • Next message: Serkan Kenar: "[linux-ileri] Re: /usr dizinine harddisk ekleme?"

    ---------

    Bu arsiv hypermail 2.1.6 tarafindan uretilmistir.