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.