2.6.3 ten beri debian da kendi kernelimi derleyip kullanýyorum iþin tek
zor kýsmý 'config'. Eðer config dosyanýzda eksik biþi varsa kerneli
derlemeyebilirsiniz, boot ettiðiniz zaman açýlmayabilir vs vs bu gibi
sorunlarýn hepsi config aþamasýndan kaynaklanýyor. önce sana nasýl kernel
derlemen gerektiðini anlatayým.
apt-get install kernel-source-2.6.10 komutuyla 2.6.10 için debian a göre
patchlenmiþ sürümü indirin. (bootsplash için bu sürümde bir sorun vardý
vesafb.c dosyasýnýn orjinali ile deðiþtirmek gerekiyordu diye hatýrlýyorum
belki düzeltilmiþtir.) daha sonra
cd /usr/src
tar xjf kernel-source-2.6.10
ln -s kernel-source-2.6.10 linux
cd linux
komutlarýný vererek kernel-source paketini açýn linux ismiyle bir symlink
yaratýn ve içine girin.
þimdi gelelim patch leri uygulamaya.
bootsplash için www.bootsplash.de adresinden kernelinize uygun patch
dosyasýný çekin .diff uzantýlý olacaktýr daha sonra /usr/src/linux dizinin
içindeyken
patch -p1 < bootsplash..diff komutuyla patch i uygulayýn. baþka uygulamak
istediðiniz patch varsa ayný bu þekilde uygulayýn.
Þimdi En zor ve saç baþ yolduran kýsým 'config' isterseniz
cp /boot/config-2.6.8-386 .config
make oldconfig
komutlarýný vererek daha önce kullandýðýnýz kernel konfigurasyonun
uygulanmasýný saðlayabilirsiniz. Ya da
make menuconfig (framebuffer)
make xconfig (qt)
make gconfig(gtk)
komutlarýndan herhangi biri ile kernel konfigurasyonuna baþlayabilirsiniz.
bunlarýn her biri çalýþabilmek için bazý kütüphanelere ihtiyaç duyarlar
hatýrladýklarýmý yazýyým menuconfig ---- libncurses5-dev
xconfig ----- libqt3-mt-dev
gconfig ---- libgtk2.0-dev
Kernel konfigurasyonu kernel derlemenin %85 i dir diyebilirim. kernel
config yaparken bazýlarýn modül bazýlarýný da built-in olarak
derleyebiliriz. Module olarak derlediðinizde siz istediðiniz zaman kernele
dahil olur istemediðiniz zaman dahil olmaz built-in ise kernel açýldýðýndan
itibaren yüklenir(kötü bir cümle oldu) kernel konfigurasyonunu yaparken
dikkat etmeniz gerekenler "help" bölümleri her opsiyonun help bölümünde ne
iþe yaradýðý yazar öncelikle burda "if unsure say y" "if unsure say n"
"if u dont know what it is you dont need it"
gibi kalýplara dikkat edin ve açýklamalarý düzgün okuyun. Konfig de
insanlarýn takýldýðý bir diðer nokta ise initrd.img kullanmamalarýndan
dolayý oluþan sorunlar ; initrd.img kullanmak istemiyorsanýz bazý
bölümleri built-in olarak derlemeniz gerekiyor. Mesela kullandýðýnýz dosya
sistemini builtin olarak derlemeniz gerekiyor. ya da ide-generic ide host
controllerlar gibi. builtin olarak belirlerken dikkat etmeniz gereken
nokta builtin derlemek istediðiniz bölümün üst bölümlerini de builtin
derlemeniz gerekiyor mesela ses kartýnýz alsa modülünü builtin
yapacaksýnýz.
bunun için sound-card-support u da builtin olarak iþaretlemeniz gerekiyor
aksi halde sadece modül olarak iþaretleyebilirsiniz. config olayý bazen
çýldýrtýbilir. emin olmadýðýnýz yerler ile oynamayýn.
config bölümünü hallettikten sonra
make-kpkg --append-to-version=-kernelversiyonu buildpackage -rev Custom.1
kernel_image
komutu ile kernel-headers kernel-source ve kernel-image paketlerini
oluþturabilirsiniz eðer initrd.img kullanacaksanýz. (açýlýþta unable mount
root gibi bir hata alýyorsanýz initrd.img kullanmamanýzdan kaynaklanýr)
make-kpkg --initrd --append-to-version=-kernelversiyonu buildpackage -rev
Custom.1 kernel_image
komutunu verin bu sefer kerneliniz initrd.img ile birlikte oluþacaktýr
bu arada config de filesystemsde compressed rom file system (cramfs)
mutlaka builtin olmalý.
umarým düzgün anlatabilmiþimdir.
pencuse wrote:
Ben de tam bu iþ üzerinde çalýþýyordum. Oðuz'la hemen hemen ayný
durumdayýz. Ben de daha önce hiç kernel derlemememiþtim. Ancak benim
sebebim daha keyfice, caným debian boot ederken hareketli bootsplash
görmek istedi. Allem ettik, kallem ettik, hala bir kerneli doðru
dürüst derleyemedim. Bahse konu dökümanlarda geçen tüm yönergeleri
teker teker, harmanlayarak, üzerine katarak denedim, ancak muvaffak
olamadým.
En son make-kpkg --revision=blabla kernel-image komutunu saatlerce
bekledikten sonra, Error 2 mesajýyla ansýzýn komut satýrýnda beni
yapayalnýz býrakan bir beraberliðimiz oldu. Benim de aklýmda sorularým
var:
1. Size sorunumu daha iyi anlatabilmem için, nereden log bulup, neyi
göndermem gerekiyor? Yani en sonda bir mesaj çýkmýþtý ama ben sabahýn
05:30'unun gerginliði ile bilgisayarýn fiþini çektiðimden, yeniden o
mesaja nasý ulaþýrým bilmiyorum.
2. Ben de kernel'im hem küçük olsun, hem de sadece benim ihtiyacým
olan donanýmý desteklesin, hafiflesin, daha hýzlý daha verimli
çalýþsýn, çok güzel olsun istiyorum. Ama make xconfig ettiðimde, bir
ton paremetre çýkýyor. Þimdi, hiç kaçar yolu yok, bilgisayarýmýn
donanýmýnýn tüm detaylarýný öðrendikten sonra, o listede sadece onlarý
býrakýp, diðerlerini teker teker kaldýracak mýyým? yoksa daha kestirme
bir yolu var mý? Bu kernel sadece tecrübesi olmayanlara mý bu kadar
karmaþýk geliyor?
3. cp /boot/config-2.6.8-2-686 /usr/src/.config olarak kopyaladýðýmda,
yukarýdaki soruma çözüm olabilir mi? Yoksa, þimdiki config dosyasýnda
da donanýmýmýn aslýnda hiç ihtiyacý olmayacak bir sürü parça yüklü
olmasý olasý mý?
4. bir de þu patchler konusu kafamý karýþtýrýyor. 2.6.10 ile baþladým,
kernel derleme sevdasýna, sonra, malumunuz 2.6.11.4 çýktý. Ben en son,
2.6.11.3 source'nu indirmiþtim. Þimdi, sadece 2.6.11.4'ün patchini
indirsem, sonra /usr/src/patch -p1 <2.6.11.4.yamasý komutunu versem,
sonra, make mrproper/make xconfig/make-kpkg desem 2.6.11.4 mü olacak,
daha bunun debian spesific yamalarý yok mu? Nerden bulurum, nasýl
yaparým..
Gördüðünüz üzere bu kernel konusunda oldukça karmaþýðýz.