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 SID Kurma Kılavuzu

demonic

Sarge'a yaklaştığımız şu günlerde IRC kanalında bir çok kişiden gelen debian paketleri niye bu kadar eski şeklindeki şikayetler üzerine onlara benim de kullanmakta olduğum SID sürümünü önermiş bulunmaktayım. Fakat SID kurmakta yaşanan zorluklardan dolayı oturdum yazı yazdım.

Yazdığım belgeyi sitemde bulabilirsiniz:http://un4gotten.linux-sevenler.org/deb/debsidinsttr.html

Belge ile ilgili önerileri olanlar yazının sonundaki mail adreslerinden ve IRC kanalından bana ulaşabilirler.

Debian OpenSSL PRNG Hatası ve Güncelleme Paketi

caNavar

Debian OpenSSL paketindeki md_rand.c dosyasında hata Luciano Bello tarafından 13 Mayıs 2008 tarihinde duyuruldu ve hata 2006'dan bu yana oluşturulmuş tüm SSL ve SSH anahtarlarını etkiliyor. Sonuç olarak kriptolanmış anahtarlar tahmin edilebiliyor.

Debian 3.0´da Türkçe -1

m1a2

Zaman makinasıyla harf inkılâbını tasarlayan teknik komiteye duhul edebilsek -bir programcı olarak- ne yapardık? Hmmm... Bir kere bütün çengelli karakterleri çift harf şeklinde: ş:sh, ç:ch vb. önermekle başlardım işe. Veya bundan vazgeçip ayrıntılı bir araştırmayla belirleyeceğim bir tarihe kendimi ışınlayarak ASCII karakter setini oluşturmakla mükellef elemanların başına silâh dayardım. (Ha bu arada yanımda bir anda beliren öfkeli bir japon arkadaşa da "siz önden buyurun" inceliğini göstermekte tereddüt etmezdim.) Her linux kurulumu sonrasında cebelleştiğimiz bu türkçeleme mevzuu işte böyle tuhaf hayallere sevkediyor insanı. Okuduğunuz dokümanın uzunluğu da yeterince anlamlı değil mi?

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.

Birkaç tıklama ile size özel Debian!

zekeriya_akyildiz

http://euronode.com adresine kayıt olduktan sonra istediğiniz özellikleri ve ayarlarınızı belirtiyorsunuz size birkaç dakika içinde size özel bir Debian ISO imajı yaratıyorlar.