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

Herkes için Debian

anonim

debian-user-turkish posta listesine gönderilmiş bir metni sizinle paylaşmak istedim:" Merhaba. Sizi bilmem ama benim bir hayalim var. GNU/Linux'un herkesin istekle ve sahiplenerek kullandığı özgür yazılımlar için bir platform olmasını istiyorum. Hayata yeni atılmış girişimcinin ödemek zorunda bırakıldığı yazılım lisans ücretleri ile sermayesinin azalmadığı, ilkokuldaki öğrencinin ilerde kendisine ve topluma faydalı olacak bilgisayar yazılımlarını kullandığı, 60'lı yaşlarındaki yakın gözlüklü amca ve teyzelerin virüs tehlikesi olmadan internetin faydalarından yararlanabildiği, üniversitelerde öğrencilerin ve akademisyenlerin kaynak kodunu inceleyip değiştirerek bilginin yayılması ve artmasına katkıda bulunabildiği, evindeki zorlukla bulabildiği 486 işlemcili PC bilgisayarı ile geleceğin bilgisayar uzmanları olmak yolundaki yeni yetmelerin temelleri öğrenebildiği, Anadolu'nun ücra köşesindeki insanların dünya ile iletişim kurmasını sağlayan ve her şeyden önemlisi bunları yaparken tüketici rolü ile sınırlanmadan, üretici bireyler olarak, gelecekte ve bugün yaşamamızın vazgeçilemez parçası bilgisayarları kullanabilmeyi hayal ediyorum.

Debian GNU/Linux Türkçeleştirme Çalışmasında Yeni Soluk

FZ

Türkiye´deki Debian camiasının önemli isimlerinden Recai Oktaş hocamızın Debian Türkçe yerelleştirme listesine gönderdiği son e-posta mesajını sizinle paylaşmak istiyorum:

``Herkese merhaba,
`d-i´ çevirilerindeki aciliyetten ve birtakım gecikmelerden dolayı bu duyuruyu zamanından önce yapmak durumundayım.

Debian Türkçe yerelleştirme faaliyetlerini koordine etmek amacıyla bir hafta kadar önce resmi Debian sunucularından Alioth üzerinde bir proje talebinde bulundum. Bu talep kısa sürede kabul edildi. Projenin hayli taslak düzeyde olan Web sayfalarına:

http://l10n-turkish.alioth.debian.org

bağından ulaşabilirsiniz. Şu an birçok hata içermekle birlikte özellikle "Ceviri-NASIL" sayfasını okumanızı öneririm; zira bu belge proje koordinasyonu ile ilgili -en azindan önerinize sunulmus- detaylı bilgiler sunuyor:

http://l10n-turkish.alioth.debian.org/howto.html

Alioth'da bir proje sayfasına sahip olmak güzel. Fakat o sayfalarda yazılıp çizilenler uygulamaya konulmaksızın sadece okunmakla kalacaksa vay halimize!

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.

DebConf5 Videoları Kamuya Açıldı

FZ

Efsanevi yazılım organizasyonu Debian'ın bu seneki konferansı DebConf5 sona erdi. Konferans videolarına buradan, DebCamp5 videolarına ise buradan erişebilirsiniz.

Bolca CD ya da birkaç DVD hazırlasanız iyi olur, dosyaların toplam boyu 6.5 GB'dan büyük.

Kaynak: http://gezegen.debian.org.tr

ATI Sonunda Becerdi :)

darkhunter

Debian GNU/Linux temelli bir işletim sisteminiz ve modern bir ATI grafik kartınız varsa size güzel bir haberim var :) Artık kurulum ve konfigürasyon için işkence çekmeyeceksiniz.