LINUX KERNEL DERLEME
Bilindiği üzere linux türevleri linux çekirdek yapısı üzerine konumlandırılmış mimarilerdir.Bu yazımda sizlere çekirdeğin nasıl derleneceğinden bahsedicem.
Avantaj olarak gördüğüm bir husus ise çekirdeğin desteklemesini istediğimiz aygıtlarımızı veya ağ desteğinin türünü belirleyerek ayarları kendimize has
özelleştirme imkanımız bulunuyor.Bu sayede işletim sistemimizin desteklemesi gereken özellikleri üzerinde daha etkin söz sahibi olabiliriz.Öncelikle
linux çekirdeğinin en güncel sürümünün yer aldığı adresi verelim;
www.kernel.org
-
w3.linuxhg.com
Bu iki adres üzerinden güncel çekirdek kodlarını elde etmeniz mümkün..
Bir uyarı yapmak istiyorum şimdi;
Şayet bir sıkıştırılmış arşiv paketini indiriyorsak paketimizi
/usr/src dizini altında açmamız gerekir.Paket açıldığında
/usr/src/linux şeklinde dizin
yolu meydana gelecektir.
/usr/include dizin yolundaki mevcut dizin bağları
/usr/src/linux yoluna bağlıdır.Eğer farklı bir dizin altında açılmış olsaydı bağ
sağlanamayacaktı.
Kaynak kurulduktan sonra yapılandırmamız gerekecek.Bunu özetlersek ses kartı,SCSI aygıtları gibi çeşitli aygıtlara ait sürücülerin konfigürasyonları çekirdeğin
yapılandırılma aşaması olarak adlandırılır.Konfigürasyon aracı seçmemiz gerekecek.Aynı görevi üstlenen ancak farklı arabirim ile çalışan araçlar var.Bunlar;
config
menuconfig
xconfig
olarak sıralayabiliriz sanırım.En basiti config dir.Menuconfig imleç tabanı barındırır.Belirlediğiniz ve istediğiniz bir özelliğin çekirdek tarafından kapsanmasını
istediğiniz zaman özelliğin üzerine gelerek space(boşluk) tuşuna 1 kez basmanız yeterli olacaktır.Hemen girişin sol tarafında boş parantezler mevcuttur.Bunların
içinde asterisk yani * sembolü vardır.(*) şeklinde.Eğer seçtiğiniz özelliği modül yapmak isterseniz M tuşuna basın parantez içi (M) olarak değişecektir.Modül
yapmanın artısı ise daha kolay güncellenebilir olmasıdır.Xconfig arabirimindende bahsetmek gerekirse pencere sistematiği üzerinden çalışır.Menü ve düğmelere
sahip bir arabirimdir.Sanırım en kolay yapılandırmayı bu arabirim ile yapabilirsiniz.
Arabirim seçmek için şu komutları kullanıyoruz;
CODE:
make confg
make menuconfig
make xconfig
xconfig arabirimi içerisinde anlayamadığınız bir komut dizisi veya bir işlem seçmeniz gerektiğinde help düğmesi yardımıyla açıklamasını rahatlıkla görebilirsiniz..
Not: Tavsiyem ağ ve dosya sistemi desteklerini direk çekirdek içerisinde derleyin.Ses kartı gibi istendiğinde değiştirebileceğiniz ekleyebileceğiniz özellikleri
modüller halinde derleyin..
Linux Kernel Configuration isimli (xcongif baz alıyorum) pencere arabirimi ile karşılaşacaksınız.Burada
Loadable module support seçeneği yer alıyor.Bu seçeneği atladığınızda modüllerinizin çekirdek tarafından desteklenip desteklenmediğinden emin olamassınız.Bu seçenek bir modul yönetimidir.Bu sayede modüllerinizi
çekirdek tarafından desteklenebilir hale getirebilirsiniz..
Diğer bir ayar ise
Kernel Module Loader seçeneği.Bu özelliğide Yes olarak ayarlamalıyız.Dolayısıyla modüllerin çekirdek tarafından yüklenmesi gerekecektir.Bu
işleme izin vermemiz gerekir.Bu adımda bu izni tanımlamış oluyoruz.
[IMG SRC="http://www.zdnet.com.au/shared/images/newstech/TR_LinuxComp_698x290.gif" ALIGN="CENTER"]http://www.zdnet.com.au/shared/images/newstech/TR_LinuxComp_698x290.gif[/IMG]
Şİmdi biraz bu seçeneklerden ve ne gibi konfigürasyonlar yaptıklarını incleyelim..
GENERAL SETUP : ELF ve a.out binary dosyalarına ait destek,ayrıca ağ çalışması,matematik işlemci emülasyonu,PCI BIOS gibi genel özellikleri seçmemize imkan tanıyor.
BLOCK DEVİCES : IDE distek sürücü ve sabit sürücümüze ait destekleri etkinleştiren girişler var bu seçenek girişleri listeler.
NETWORKING OPTIONS : Ağ çalışması ile ilgili ayrıntılı seçenekleri sunar size.TCP/IP girişi,İnternet ağ çalışmalarının bütün şekillerde varolanları etkinleştirilmelidir.Eğer ağınızda bir mac sistemi barınıyorsa ve siz bu sisteme erişmek istiyorsanız,AppleTalk seçeneğini işaretlemeniz yeterlidir.
Sistemde SCSI aygıt mevcut ise SCSI Support seçeneğini YES olarak işaretlemeniz gerekiyor.
CD-ROM Drivers penceresinde cd-rom larınıza ait driver ları seçiyorsunuz.
FILE SYSTEMS : Linux sisteminin desteklediği farklı dosya ssten tiplerini listeler.DOS,95 gibi..
CHARACTER DEVICES : Bu pencere klavye,mouse ve seri portlar gibi aygıtlara ait özellikleri listeliyor.Sound penceresinde çekirdeğin desteklediği ses kartlarını
listelemektedir.
KERNEL HACKİNG :Çekirdek kodunu değiştirmek ile uğraşan programcı kısmını ilgilendiren bazı özellikleri barındırıyor.Bu kısımda çekirdeğin hata ayıklama bilgisi
içermesinide isteyebilirsiniz.
Bu işlemler sonucunda konfigürasyon tamamlanmış oluyor.Ayarlarımızı yaptıktan sonra Save To File düğmesine basarak ayarlarımızı kaydediyoruz.Kaynak kodumuzun hangi parçası yaptığımız konfigürasyona bağlı olarak derlenecekse bir bağımlılık ağacı oluşturmamız gerekir.
Komut : CODE:
make dep
Eskiden derlediğiniz bir çekirdek ile ilgili bağımlılık ağacını temizlemek için ise ;
Komut : CODE:
make mrproper
Şİmdi derleme işlemindeki bazı parametrelerden söz edelim..
zImage : zImage olarak adlandırılmış çekirdek dosyası oluşturur.
/usr/src/linuxSürüm/arch dizinine yerleştirir.
install : Bu parametre çekirdek dosyasını hem oluşturur hemde vblinuz ya da zImage olarak sistemimize yükler.
zlilo : Çekirdeği kurmasının yanı sıra LILO'yu güncellemek için LILO'yu çalıştırır.LILO'yu çalıştıran sistemlerin kullanımı için tasarlanmış.
Derlemede kullanılan parametreler indirdiğiniz dağıtım çekirdek paketine göre değişebiliyor.OpenLinux çekirdek kaynağı install-zlilo parametrelerinin her ikisi içnde çekirdek dosyanızı
/vmlinux dosyasına yüklemektedir.RedHat da ise olay biraz daha farklı..
RedHat çekirdek kaynağı çekirdek dosyasını boot dizinine yükler.install ve zlilo parametrelerinin ikisi içinde
/boot/vmlinux dosyasına bağ kurar.
Not: Çekirdeğinizin çok büyük olduğu yönünde bir hata alıyorsanız b ön eki ile birlikte bzImage isimli bir çekirdek dosyası yaratıp,bzlilo parametresini kullanabilirsiniz.
Çekirdeği derleyip sisteme kurup liloyu çalıştırma görevlerini üstelenen komutumuz ise
Komut: CODE:
make zlilo
/etc/lilo.conf dizini altında mevcut barınan lilo konfigürasyonundan bahsedelim.Sİsteminizde bir çekirdek sürümü yüklü fakat yeni bir sürüm yüklemek istiyorsunuz.Aynı anda kullandığınız çekirdek sürümünü değiştirmeden istediğiniz sürümü yüklemeniz mümkün.Liloda her çekirdeğe göre giriş atanabilir.
Windows ve linux çekirdeklerine ait girişlerimizin yer aldığı örnek bir lilo.conf içeriği verelim..
/etc/lilo.conf
CODE:
boot = /dev/hda
install = /boot/boot.b
message = /boot/messeage
promt
timeout
default = 200
default = win
image = /boot/vmlinux-2.2.5-15
label = linux
root = /dev/hda3
read-only
image = /boot/vmlinux-2.0-36
label= linux-2.0
root = /dev/hda3
read-only
other = win
table = /dev/hda
Not:resim alıntıdır..
just code it!