From: Murat Koc (murat.koc@frontsite.com.tr)
Date: Tue 08 Jul 2003 - 14:56:05 EEST
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/