Debian GNU/Linux Usulü Çekirdek Derleme

0
realist
Fazlamesai kanalının müdavimlerinden Realist/Decaf arkadaşımız Debian usulü çekirdek çıtlanması (derlenmesi ;) ile ilgili çok güzel bir makale hazırlamış. Hem de tam da benim Bilgi'de Linux Eğitiminde Çekirdek Derleme konusunu işlediğim gün :)) Ellerine sağlık diyoruz...

Debian sürümünün kendine özgü araçlarını kullaranak çekirdek derlenmesi ve kullanımı.
Öncelikle neye ihtiyacınız olduğuna bakalım. sisteminizi bf24 seçeneği ile kurduysanız uname -a komutunun çıktısı linux-2.4.18-bf24 olmalı. Bir disketi tam dolduracak kadar şişirilmiş bir çekirdektir. Kurulumda kolaylık olması için disk denetleyicilerin neredeyse tümü, network kartlarının çoğu kernelin içine gömülmüştür. Dağıtıma dahil olan binary paketleri kullanarak tam modüler bir çekirdeğe sahip olabiliriz.

2.4.18 sürüm çekirdek için çeşitlerimiz şöyle:

kernel-image-2.4.18-k7 AMD Athlon ve Duron
kernel-image-2.4.18-k6 AMD K6 serisi (ve k7)
kernel-image-2.4.18-686 Intel PentiumPro P 2,3,4 Celeron (ve k7 ve VIA Cyrix)
kernel-image-2.4.18-686-smp Birden fazla işlemcili makineler için
kernel-image-2.4.18-586tsc Sadece intel pentium (1)
kernel-image-2.4.18-386 Tüm intel ve uyumlu işlemciler


Apt her zamanki gibi en büyük yardımcımız:

apt-get install kernel-image-2.4.18-686

Yalnız bu komutu vermeden önce bir kaç küçük ayara ihtiyacımız var. (evet baştan söylemeliydim :) Yükleyeceğimiz çekirdek "initrd" kullanıyor. Initrd (initial ramdisk) açılışta çekirdeğin ram'e aktarıp içinden modül yükleyebileceği, ihtayaca göre kurtarma konsolu da sağlayabilen bir dosya. Bizim initrd dosyamızın bulunduğu yeri lilo.conf'ta çekirdeğe bildirmemiz gerek. /etc/lilo.conf dosyanızı herhangi bir metin editörü ile açın. image=/vmlinuz'un altına doğru initrd=/initrd.img satırını ekleyin. Sonuç şöyle bir şey olmalı:

image=/vmlinuz
label=linux
read-only
initrd=/initrd.img
#restricted
#alias=1

Ayrıca paket yüklenirken initrd oluşturması gerektiğini de belirtmeliyiz. Onu da şöyle yapabiliriz:

echo "do_initrd = Yes " > /etc/kernel-img.conf

Şimdi uygun gördüğünüz çekirdeği yükleyebilirsiniz. Hayırlısı olsun. Olur ya yeniden başlattınız, makine açılmadı. Basın reset'e, parmağınız "shift"te dursun bir süre, çıkacak menüde LinuxOLD'u seçin, sağ salim önceki çekirdeğinize dönün.

uname -a ile baktığınızda bf24 yerine seçtiğiniz çekirdeğin sürüm numarasını görüyorsanız işlem tamam demektir.

Yalnız daha sonra aniden "kernel include files" ihtiyacı baş gösterebilir. Nvidia sürücüsü, derlemek isteyeceğiniz ek modüller, "bana kernel source lazım! include/linux/version.h nerde? Onsuz olmaz bu işler," diyebilirler. Tüm bu dertlerin dermanı kernel-headers paketleridir. kernel-image paketi version numarasını tutturun yeterli.

apt-get install kernel-headers-2.4.18-686
cd /usr/src
ln -s kernel-headers-2.4.18-686 linux

Diyelim ki bu kadarı sizi kesmedi. P4'ünüze özel kernel istiyorsunuz. Ya da sizin için bazı modüllerin kernelin içinde olması şart (soft-RAID gibi). O da mümkün tabii:

apt-get install kernel-source-2.4.18 bzip2 libncurses-dev kernel-package

Debian kurulumunuzda eksik olması riskine karşı:

apt-get install build-essentials

Şimdi kaynak kodumuz /usr/src altında bzip2 ile sıkıştırılmış halde duruyor.

cd /usr/src
tar jxvf kernel-source-2.4.18.tar.bz2

"linux" linkini de yeni yerine alalım:

rm linux && ln -s kernel-source-2.4.18 linux

cd linux

Yüklemiş olduğumuz çekirdeğin tüm ayarları /boot altında bir dosyada duruyor. Aynen derleyeceğimiz koda alıyoruz.

cp /boot/config-2.4.18-686 .config

Şimdi make menuconfig komutunu verdiğinizde her şey çalışmakta olan çekirdeğinizdeki gibidir. Üzerinde istediğiniz değişikliği yapabilirsiniz. Celeron sahiplerinin işlemci türü seçerken kararsız kaldığını duyuyorum. 533A ve üstü için Coppermine, daha düşük hızdaki Celeronlar için P2 tercih edin. menuconfig çıkarken "kaydedeyim mi" diye soruyor. "tabii ki" diyoruz.

Bu dizindeki Makefile dosyasını işleyerek çekirdek sürüm numarasını zevkinize göre değiştirebilirsiniz. EXTRAVERSION değişkenini "-decaf" yaparsanız sürüm "uname -r" çıktınız 2.4.18-decaf olur.

şimdi olaya girebiliriz:

make-kpkg clean # şu an için şart değil ama bir sonraki derleyişinizde çok önemli

make-kpkg --initrd --revision=kastim1.0 kernel_image

Buradaki kastim1.0 da istediğiniz gibi değişebilir. Ama sonunun rakam olması zorunlu. Eğer derleme sırasında makinenizi bırakıp gitmeyecekseniz, kullanmaya devam etmek istiyorsanız son komutun başına "nice 10" ekleyebilirsiniz. Böylece işlemin önceliğini düşürerek sizi rahatsız etmeden geri planda çalışmasını sağlarız. Tabii normalden uzun sürecektir.

Sisteminizin hızına göre 5-10 ya 70-80 dakika sonra çekirdeğiniz /usr/src altında debian paketi olarak hazırdır. Yalnız burada önemli bir nokta var. Peketi yüklediğimizde root (/) dizinindeki initrd.img sembolik linki /boot altında yeni çekirdeğimizin initrd'sine işaret edecek. Şu anki ise LinuxOLD konumuna düşecek. Öyleyse sorun çıkması durumunda 2.4.18-686'yı (ya da sizinki neyse) devreye sokabilmek için lilo.conf'da initrd'nin tam yerini belirtmeliyiz. Aşağıdaki gibi:

image=/vmlinuz
label=Linux
read-only
initrd=/initrd.img
# restricted
# alias=1

image=/vmlinuz.old
label=LinuxOLD
read-only
initrd=/boot/initrd.img-2.4.18-686
optional
# restricted
# alias=2

Haydi bakalım:
dpkg -i kernel-image-2.4.18-decaf_kastim1.0_i386.deb


Bu yöntemle indireceğiniz herhangi bir çekirdeği de derleyebilirsiniz

/usr/src altına açıp linux linkini yönlendirin yeterli. Debian Woody ile gelen binutils sürümü yeni çekirdekleri linkleyemeyecektir. Binutils kurulumu sırasında tavsiye edilen yöntem de işe yaramıyor. Sid'den binary güncelleme ise stable unstable arası farklar şu aralar fecii boyutta olduğu için pek mümkün görünmüyor. Yine tüm sorumluluk size ait olmak üzere "simple sid backport" yöntemini kullanabiliriz.

/etc/apt/sources.list dosyanıza deb-src sid satırı ekleyin.Örnek olarak bendeki şöyle:

deb-src ftp://ftp.linux.org.tr/pub/debian unstable main non-free contrib

Sonra da apt'nin üstün yeteneklerinden faydalanalım:

apt-get update
apt-get build-dep binutils
cd /tmp
apt-get -b source binutils

Sonra da oluşacak paketlerden sadece binutils'in kendisini yükleriz. (dev ya da multiarch değil)


Kolay gelsin.




Mehmet Köse aka decaf
31 Mayıs 2003

Yayın Hakları: Belgenin tüm hakları yazara aittir. Bu belgenin en güncel hali www.ozguryazilim.org adresinde bulunacaktır. Değiştirilmemesi kaydıyla elektronik ortamda yayınlanabilir.

Feragatname: Bu makalede bahsedilen yöntemleri kendi ortamınızda uygulamanız sonucu meydana gelebilecek hasarlardan yazar veya yayınlayan kuruluş sorumlu değildir.

Görüşler

0
roktas
Ellerine bin sağlık, bu yazı gerekiyordu. Tabii böyle bir yazının beni ne kadar kışkırttığı tahmin edilebilir. Ayranı kabarmış bir halde hasbel-kader birkaç ekleme/tavsiye de ben yapayım:

- `initrd'li imajlar çeşitlilik arzeden donanımlar için her derde deva nevinden bir çözüm sunuyor. Fakat açıkçası ben pek haz etmiyorum. Şöyle biraz daha ufak tefek `initrd'siz kernel'lar kişisel kullanım için kanaatimce daha hoş oluyor. Tabii initrd desteği kaldırıldığında önceden modül olagelen bazı sürücüleri çekirdeğe gömmek gerekiyor. Bunların en önemlisi fs (filesystem). Çıktığı günden beridir reiserfs kullanmaktayım. Hans Reiser'ın DFSG uyumlu fakat fazlaca tantana eden bir lisansı olması dışında bir olumsuzluğundan da bahsedemem. ext3 sanıyorum daha yaygın bir tercih (bir de methini çokça duyduğum kernel-patch halinde derlenebilir xfs var, fakat alışkanlıkların değişmesi zor.)

- "Kastim" revizyon güzel, EXTRAVERSION ile oynamak ise biraz tehlikelice. EXTRAVERSION'u yani şu "2.4.18"e gelen eki değiştirmek için "append-to-version" anahtarı kullanılabiliyor fakat bana kalırsa buna hiç dokunulmasa daha iyi olur. İlla "uname"de farklı versiyon görmek istiyorsanız şunu yapmaya dikkat etmek durumundasınız: make menuconfig'den sonra "include/linux/version.h" dosyasını silin. "make-kpkg --append-to-version xxx ..." bunu tekrar (ve doğru şekilde) oluşturacaktır. (README'lerde gerekçeleri açıklanıyor. Ha bir de "uname" çıktısında derleyen kişi yerine "unknown" isminin çıkması sorunu var. Birkaç defa bunu becerdim fakat hangi trick'lerin uygulandığını not etmedim. Son yaptığım derlemelerde detaylı howto okumalarına rağmen bunu başaramamaktayım. Reçetesi olan varsa bunu çok duymak isterim.) EXTRAVERSION'a bir kere bulaşmışsanız dikkat, sair bir gün yapmak zorunda kalacağınız bir "modul_images" derlemesinde de EXTRAVERSION'a dikkat etmek durumundasınız.

- Fazlaca patch uygulamak da pek doğru bulmadığım bir hadise. Maamafih insan şu karizmatik Debian swirl'ünü de istemiyor değil hani :) Bu tip patch'lemeler de çok çeşitli şekillerde yapılabiliyor. PATCH_THE_KERNEL çevre değişkeni, "added-patches" anahtarı vesaire... Tecrübem odur ki bu kernel derlemesi zaten çok uzun bir işlemdir, işin sonunda patchlenmemiş bir imajla karşılaşıp al baştan yapması insana çok koyar; bu itibarla yamayı manuel şekilde sonuçlarını görerek uygulamak en doğrusudur. Yöntemi de basit: kernel-patch-* serisi "/usr/src/kernel-patches" dizinine kurulduğuna göre "falanca" yaması için bulunduğunuz yerden "../kernel-patches/all/apply/falanca" komutunu işletmek herşeyden emin olmanızı sağlayacaktır. Yalnız yama adımını doğru sırada icra etmek lâzım: yani "make menuconfig" öncesi (ki yamayla gelen olası yeni option'ları görelim.)

- Çekirdekle çokça haşır neşir olan -bendeniz gibi- bir yaratık iseniz -başka tonla gerekçe bir yana, sadece bu sebeple- LILO'yu terkedin ve GRUB kullanın. Paket dokümanlarında anlatılan birkaç ufak tefek ayardan sonra derleme ayinleriniz çok daha lezzetli bir hâl alacaktır :)

- Derleme sırasında lütfen yoldan geçen arabaların plâkalarını sayan bir takım meczuplar gibi ekrana basılan dosya isimleri ve türlü teferruatı sayarak kendinizi telef etmeyin (evet, bunu yapanlar var ;) Esasında derleme süresi ortalama bir egzersiz seansı için bulunmaz bir fırsattır. Bence bu öneriyi dikkate alın...
0
conan
[Quote]
- Derleme sırasında lütfen yoldan geçen arabaların plâkalarını sayan bir takım meczuplar gibi ekrana basılan dosya isimleri ve türlü teferruatı sayarak kendinizi telef etmeyin (evet, bunu yapanlar var ;) Esasında derleme süresi ortalama bir egzersiz seansı için bulunmaz bir fırsattır. Bence bu öneriyi dikkate alın...
[/Quote]

Egdrop compile'indan:
Go make a pizza or something
Görüş belirtmek için giriş yapın...

İlgili Yazılar

debian-l10n-turkish -- Debian Türkçe Yerelleştirme Projesi

roktas

"FM Çeviri - Son Değişiklikler" sütununda da farkedileceği üzere bir süredir Debian web sayfalarının çevirisiyle uğraşmaktayız. Çeviriler için -sağolsunlar- Fazlamesai harika bir ortam sunuyor. (Bu iş bundan daha pratik nasıl olurdu bilemiyorum doğrusu ;-) Bütün bu faaliyetlerdeki koordinasyon çeviri dışındaki her türlü yerelleştirme etkinliğini de kapsayan "debian-l10n-turkish" eposta listesi üzerinden sürdürülüyor. Listeye üye olmak için basitçe üyelik formuna email adresi giriliyor. Liste hakkında çok kısa bir tanıtım da mevcut.

Şapkasız Çıkmam! Debian Şapkalar Geldi

anonim

Merhaba.

Özgür Yazılım ve Açık Kaynak Günleri 2005'e yetiştiremediğimiz Debian Şapkalar nihayet geldi.

Bedeli 6 YTL olan şapkaların laciver ve krem rengi mevcuttur. Sipariş vermek isteyen arkadaşlar linux34.com sitesini ziyaret edebilir.

fazlamesai.net'e soralım: Hangi e-posta sunucusu?

e2e

Merhaba,
Debian GNU/Linux üzerine ilk mail sunucumu kurmak istiyorum. Debian ile default olarak exim geliyor. Fakat exim hakkında çok fazla materyal bulamadım. Buradaki sonuçlara bakılırsa postfix'in popüleritesi daha fazla Debian'cılar içinde.

Siz hangi mail sunucuyu, neden kullanıyorsunuz? Bana ne önerirsiniz?

mICQ - Bir Garip Hikaye

m1a2

mICQ talihsiz bir programdır. Matthew D. Smith tarafından yazılan program, bildigim kadarıyla GNU/Linux'un ilk ICQ istemcisidir. Matthew D. Smith'in 2001`de bir trafik kazasında vefat etmesi mICQ'nun sonu anlamına geliyordu. Fakat programın sadık kullanıcıları buna müsaade etmedi ve yeni bir geliştirici: Rüdiger Kuhlmann proje'nin sorumluluğunu alarak mICQ'yu kaldığı yerden geliştirmeye devam etti.

AMD x86 64 için Debian

yuxel

Chris Cheney, Debian'ın AMD64 bit için hazır olduğunu duyurdu. 7972 paketin yaklaşık %97'sinin bu mimari için derlenmiş bulunuyor. ia32 emülasyonunda kullanılamayan bazı işlemci özellikleri bu paketler ile kullanılarak işlemciden daha fazla verim alınması sağlanıyor.
Debian Planet
OS News
Lwn