IRC ve mIRC Kullanıcılarının Buluşma Noktası
  Mobil Sohbet, Sohbet ve Sohbet Odaları




Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 31 Aralık 2005, 11:16   #1
Caistlin
Guest
Caistlin - ait Kullanıcı Resmi (Avatar)
Linux'ta Çekirdek (kernel) Nasıl Derlenir ?




Linux'ta Çekirdek (kernel) Nasıl Derlenir ?

Linux altında çekirdek derlemek sabir ve azim gerektiyor. Biraz zahmetli bir iş çünkü. Burada anlattıklarımda mümkün olduğu kadar hata yapmamaya dikkat edicem. Ama olursa kaza bela hata yaparsam özürlerimi kabul ediniz. Hatta yazıyı okuyan ve hatamı bulan arkadaşlar olursa lütfen bana mesaj atsınlar.

İlk işimiz "Açılış Disketi"

Kerneli derlemeden önce kesinlikle bir açılış disketi oluşturmakta fayda vardır. Eğer bir yerde hata yaparsak bu disket bizim yardımımıza koşacaktır. Floppy'e boş disketinizi yerleştirin ve aşağıdaki komutu konsondan yazıp entera basın.

# mkbootdisk --device /dev/fd0 2.6.x

Buradaki 2.6.x sisteminizdeki çekirdek sürüm numarasini göstermektedir. Bu numarayi bilgisayarınızdaki yüklü çekirdeğin sürüm numarası ile mutlaka değiştirin. Örneğin bende şuan kernel 2.6.8 var.

Kerneli nereden temin edicem ?

Linux Çekirdegini ->
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] adresinden temin edebilirsiniz.
/home/kullanici_adi/tmp dizinine kaydettiniz. Bütün yazdığım yazılarda genelde bu dizini örnek veriyorum çünkü ben Firefox web browser kullanıyorum. Firefox, indireceğim dosyaya tıkladığım zaman dosyayı default olarak /home/kullanici_adi/tmp dizinine kaydediyor. Herneyse şimdi devam ediyoruz. Önce bir root olalım dimi
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Kurulum Başlıyor

$ su - root
password : şifrenizi giriniz

sonra aşağıdaki komutu yazarak kernel dosyasını /usr/src/ dizini altına taşıyoruz.
# mv /home/kullanici_adi/tmp/linux-2.6.9.tar.gz /usr/src/

şimdide eski kernele ait kısayolu siliyoruz
# rm /usr/src/linux

şimdi kerneli taşıdığımız klasöre gidelim bakalım.
# cd /usr/src/

ve hemen sıkıştırılmış dosyamızı oraya açalım.
# tar -zxvf linux-2.6.9.tar.gz

şıkıştırılmış dosya nasıl açılır daha fazla bilgi almak isteyen arkadaşlar şunu okusunlar
-> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Şimdi aşağıdaki komutu yazarak
# mv linux linux-2.6.9
dizinin adını değiştiriyoruz.

şimdide az önce sildiğimiz kısayolu yeni kerneli için yeniden oluşturuyoruz.
# ln -s /usr/src/linux-2.6.9 linux

yani sonuçta /usr/src/ dizini altında linux-2.6.9 diye bir klasör ve bu klasörü gösteren linux isimli bir kısayol olmalıdır. yukarıdaki son iki komutu ona göre ayarlayın.

# cd linux-2.6.9
yeni linux dizinin içine girin.

kerneli derlemeden önce konsoldan
make menuconfig

yada X ortamindayasanız
make xconfig

komutlarından birini kullanarak derleme menüsünü oluşturun.

Menüden çekirdeğe eklemek istediğiniz yada çıkarmak istediğiniz şeyler varsa bunları belirleyin. Bu arada menü size her yaptığınız işlem sırasında bilgiler sunacaktır bence bunların tümünü okuyun ve ondan sonra "Yes" deyin. Herşeyi hallettikten sonra
Save
Exit
ile menüden çıkın.Sonra aşağıdaki komutları sırayla yazıyoruz.

# make dep
- 2.4.x kerneller için

# make bzImage
- 2.4.x için

# make clean
- 2.4.x için
aşağıda dig 'in yazısını okuyunuz!

# make modules

# make install

# make modules_install

sonra
# cp /usr/src/linux/arch/i386/boot/bzImage /boot/linux-2.6.9

daha sonrada system.map dosyasını gerekli yere taşıyoruz
# cp /usr/src/linux-2.6.9/System.map /boot/System.map-2.6.9

şimdi /boot dizinine geçin

# cd /boot

# rm /boot/vmlinux

# rm /boot/System.map

# ln -s /boot/System.map-2.6.9 /boot/System.map

# ln -s /boot/vmlinux-2.6.9 /boot/vmlinux


LILO'ya yeni kernelin yerini gösteriyoruz

/etc/lilo.conf dosyasini harhangi bir text editör ile açın.

# mcedit /etc/lilo.conf

lio.conf dosyanızda aşağı yukarı bunlar yazacaktır. (Ben Mandrake 10.1 kullanıyorum)

default="linux"
boot=/dev/hda
map=/boot/map
prompt
nowarn
timeout=100
image=/boot/vmlinuz

label="linux"
root=/dev/hda8
vs vs ve en son
read-only

yazıyor değilm ? şimdi kendinize göre yapacağınız değişiklik sonunda dosya aşağı yukarı şöyle olmalı :

default="linux-kernel-yeni"
boot=/dev/hda
map=/boot/map
prompt
nowarn
timeout=100
image=/boot/vmlinuz-2.6.9

label="linux-kernel-yeni"
root=/dev/hda8
vs. vs. ve en son
read-only

image=/boot/vmlinuz

label="linux-kernel-eski"
root=/dev/hda8
vs. vs. ve en son
read-only

böylelikle yeni derlediğimiz kerneli önseçimli yaptık.

# /sbin/lilo
ile liloyu yeniden yüklüyoruz.

LILO'' yu yeniden çalistirinca asagidaki mesaji almalısınız

Added linux-kernel-yeni *
Added linux-kernel-eski
yıldız * isareti bulunan çekirdek önseçimli olandır. Yani açılışta başka birşey seçmezseniz bu yüklenecek demektir.

Olay bitmiştir. Bilgisayarınızı artık yeni derlediğimiz çekirdek ile açabilirsiniz. Eğer açılışta bir sorun olursa o zaman çekirdeği yeniden derlemeniz gerekeçektir. O yüzden bilgisayarınızı eski çekirdek ile açmayı deneyin olmadı açılış disketinizi kullanın.


Arkadaşlar /usr/src dizin altında aşağıdaki komut ile
# rm /usr/src/linux
linux dosyasını silmeden önce "linux" bir sembolik bağ olup olmadığını kontrol ediniz. Örneğim ben benim linuxtan örnek vericem şimdi.
benim /usr/src/ dizini altında
linux (sembolik bağ -> linux-2.6.8.1-10mdk dosyasını gösteriyor) linux-2.6.8.1-10mdk (kernel dosyam -orjinal dosya-) var tamam mı.
o yüzden ben linux sembolik bağı silebilirim. Ama silmeden önce linux isimli dosyanın sembolik bir bağmı yoksa orjinal linux dosyasımı lütfen kontrol edin.
Linux'ta Çekirdek (kernel) Nasıl Derlenir ?

Linux altında çekirdek derlemek sabir ve azim gerektiyor. Biraz zahmetli bir iş çünkü. Burada anlattıklarımda mümkün olduğu kadar hata yapmamaya dikkat edicem. Ama olursa kaza bela hata yaparsam özürlerimi kabul ediniz. Hatta yazıyı okuyan ve hatamı bulan arkadaşlar olursa lütfen bana mesaj atsınlar.

İlk işimiz "Açılış Disketi"

Kerneli derlemeden önce kesinlikle bir açılış disketi oluşturmakta fayda vardır. Eğer bir yerde hata yaparsak bu disket bizim yardımımıza koşacaktır. Floppy'e boş disketinizi yerleştirin ve aşağıdaki komutu konsondan yazıp entera basın.

# mkbootdisk --device /dev/fd0 2.6.x

Buradaki 2.6.x sisteminizdeki çekirdek sürüm numarasini göstermektedir. Bu numarayi bilgisayarınızdaki yüklü çekirdeğin sürüm numarası ile mutlaka değiştirin. Örneğin bende şuan kernel 2.6.8 var.

Kerneli nereden temin edicem ?

Linux Çekirdegini ->
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] adresinden temin edebilirsiniz.
/home/kullanici_adi/tmp dizinine kaydettiniz. Bütün yazdığım yazılarda genelde bu dizini örnek veriyorum çünkü ben Firefox web browser kullanıyorum. Firefox, indireceğim dosyaya tıkladığım zaman dosyayı default olarak /home/kullanici_adi/tmp dizinine kaydediyor. Herneyse şimdi devam ediyoruz. Önce bir root olalım dimi
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Kurulum Başlıyor

$ su - root
password : şifrenizi giriniz

sonra aşağıdaki komutu yazarak kernel dosyasını /usr/src/ dizini altına taşıyoruz.
# mv /home/kullanici_adi/tmp/linux-2.6.9.tar.gz /usr/src/

şimdide eski kernele ait kısayolu siliyoruz
# rm /usr/src/linux

şimdi kerneli taşıdığımız klasöre gidelim bakalım.
# cd /usr/src/

ve hemen sıkıştırılmış dosyamızı oraya açalım.
# tar -zxvf linux-2.6.9.tar.gz

şıkıştırılmış dosya nasıl açılır daha fazla bilgi almak isteyen arkadaşlar şunu okusunlar
-> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Şimdi aşağıdaki komutu yazarak
# mv linux linux-2.6.9
dizinin adını değiştiriyoruz.

şimdide az önce sildiğimiz kısayolu yeni kerneli için yeniden oluşturuyoruz.
# ln -s /usr/src/linux-2.6.9 linux

yani sonuçta /usr/src/ dizini altında linux-2.6.9 diye bir klasör ve bu klasörü gösteren linux isimli bir kısayol olmalıdır. yukarıdaki son iki komutu ona göre ayarlayın.

# cd linux-2.6.9
yeni linux dizinin içine girin.

kerneli derlemeden önce konsoldan
make menuconfig

yada X ortamindayasanız
make xconfig

komutlarından birini kullanarak derleme menüsünü oluşturun.

Menüden çekirdeğe eklemek istediğiniz yada çıkarmak istediğiniz şeyler varsa bunları belirleyin. Bu arada menü size her yaptığınız işlem sırasında bilgiler sunacaktır bence bunların tümünü okuyun ve ondan sonra "Yes" deyin. Herşeyi hallettikten sonra
Save
Exit
ile menüden çıkın.Sonra aşağıdaki komutları sırayla yazıyoruz.

# make dep
- 2.4.x kerneller için

# make bzImage
- 2.4.x için

# make clean
- 2.4.x için
aşağıda dig 'in yazısını okuyunuz!

# make modules

# make install

# make modules_install

sonra
# cp /usr/src/linux/arch/i386/boot/bzImage /boot/linux-2.6.9

daha sonrada system.map dosyasını gerekli yere taşıyoruz
# cp /usr/src/linux-2.6.9/System.map /boot/System.map-2.6.9

şimdi /boot dizinine geçin

# cd /boot

# rm /boot/vmlinux

# rm /boot/System.map

# ln -s /boot/System.map-2.6.9 /boot/System.map

# ln -s /boot/vmlinux-2.6.9 /boot/vmlinux


LILO'ya yeni kernelin yerini gösteriyoruz

/etc/lilo.conf dosyasini harhangi bir text editör ile açın.

# mcedit /etc/lilo.conf

lio.conf dosyanızda aşağı yukarı bunlar yazacaktır. (Ben Mandrake 10.1 kullanıyorum)

default="linux"
boot=/dev/hda
map=/boot/map
prompt
nowarn
timeout=100
image=/boot/vmlinuz

label="linux"
root=/dev/hda8
vs vs ve en son
read-only

yazıyor değilm ? şimdi kendinize göre yapacağınız değişiklik sonunda dosya aşağı yukarı şöyle olmalı :

default="linux-kernel-yeni"
boot=/dev/hda
map=/boot/map
prompt
nowarn
timeout=100
image=/boot/vmlinuz-2.6.9

label="linux-kernel-yeni"
root=/dev/hda8
vs. vs. ve en son
read-only

image=/boot/vmlinuz

label="linux-kernel-eski"
root=/dev/hda8
vs. vs. ve en son
read-only

böylelikle yeni derlediğimiz kerneli önseçimli yaptık.

# /sbin/lilo
ile liloyu yeniden yüklüyoruz.

LILO'' yu yeniden çalistirinca asagidaki mesaji almalısınız

Added linux-kernel-yeni *
Added linux-kernel-eski
yıldız * isareti bulunan çekirdek önseçimli olandır. Yani açılışta başka birşey seçmezseniz bu yüklenecek demektir.

Olay bitmiştir. Bilgisayarınızı artık yeni derlediğimiz çekirdek ile açabilirsiniz. Eğer açılışta bir sorun olursa o zaman çekirdeği yeniden derlemeniz gerekeçektir. O yüzden bilgisayarınızı eski çekirdek ile açmayı deneyin olmadı açılış disketinizi kullanın.


Arkadaşlar /usr/src dizin altında aşağıdaki komut ile
# rm /usr/src/linux
linux dosyasını silmeden önce "linux" bir sembolik bağ olup olmadığını kontrol ediniz. Örneğim ben benim linuxtan örnek vericem şimdi.
benim /usr/src/ dizini altında
linux (sembolik bağ -> linux-2.6.8.1-10mdk dosyasını gösteriyor) linux-2.6.8.1-10mdk (kernel dosyam -orjinal dosya-) var tamam mı.
o yüzden ben linux sembolik bağı silebilirim. Ama silmeden önce linux isimli dosyanın sembolik bir bağmı yoksa orjinal linux dosyasımı lütfen kontrol edin.
  Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
radyo44.com.tr
Alt 31 Aralık 2005, 12:27   #2
Çevrimdışı



syn, RAİSTLİN
sizin paylaşımlarınızı takip ediyorum da, insanlara gerçekten yararlı bilgiler vermeye çalışıyorsunuz.
bu tür forumların gerçekten sizin gibi insanlara ihtiyacları var. umarım her geçen gün sayınız artar da, bu işlerle uğraşan kişiler, birşeyleri daha düzgün yapabilirler. bu sayede bilgisayar ve internet kirliliğinden de kurtulmuş oluruz. teşekkürler;oki


Konu samutuna tarafından (31 Aralık 2005 Saat 12:50 ) değiştirilmiştir.
  Alıntı ile Cevapla

Alt 07 Ağustos 2006, 18:58   #3
Çevrimdışı
Yanıt: Linux'ta Çekirdek (kernel) Nasıl Derlenir ?




Alıntıyı yazmamışsın..

Kullandığınız bir makinada derlemenizi önermiyorum. Bu işin eri olan birinden yardım alarak yapmanızı tavsiye ederim.. Yanlış derleme sonucunda çekirdekte oluşan bir error bile makinanın kendiliğinden kapanmasına, makinanın kitlenmesine veya lag oluşmasına kadar büyük sebeplerde doğurabilir. Makinanın tekrardan reinstall yapılması gerekebilir

Saygılar

  Alıntı ile Cevapla

Cevapla

Etiketler
cekirdek, derlenir, kernel, linuxta, nasil, nasıl

Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
C# Kodları Nasıl Derlenir aSpeNDos C# 0 08 Mart 2013 16:08
Linux Kernel 3.0-rc4 duyuruldu! Ocean GNU, Linux ve UNIX 0 24 Haziran 2011 01:01
Linux Kernel 2.6.31.4 Ocean GNU, Linux ve UNIX 0 18 Ekim 2009 11:58