Tweet

Ana Sayfa   Forum   Linux Yazılımları
Yeni Başlık Cevap Ekle
white_bullet Linux Kernel Derleme (15/04/2009 05:18)
profil Oguzz
 offline OFFLINE
 Senior Coder

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!

Üye Profili

white_bullet Re:Linux Kernel Derleme (07/07/2009 14:34)
profil seyhan
 offline OFFLINE
 Junior Coder

Paylaşım için teşekkürler.Eline sağlık Oğuz:)

[IMG SRC="http://img225.imageshack.us/img225/2408/seyhanzt2.jpg" ALIGN="oğuz"]seyhan[/IMG]

profil
 
1 /
 
Ana Sayfa   Forum   Linux Yazılımları
Yeni Başlık Cevap Ekle
 

MENÜ » FORUM
Menü » Takip et
RSS Facebook Twitter Friendfeed
Sık Kullanılanlar Google Yahoo Live
Menü » Paylaş
E-Posta ile gönder Twitter Facebook Friendfeed
Buzz Stumbleupon Delicious Digg