NASIL Archlinux'ta ABS ile kernel derlemek

From Lapis Wiki

Jump to: navigation, search

Geliştirme Aşamasında

Bu sayfa henüz Xarturkhann 16:37, 13 Aralık 2006 (EET) tarafından geliştirme aşamasındadır

Bu sayfa size {{{2}}} amaçlıyor.

Lütfen bu NOT kaldırılıncaya kadar bu sayfayı düzenlemeyin.Teşekkürler.

Merak ettikleriniz ya da tavsiyeleriniz? lütfen Tartışma bölümünü kullanın.

Bu makale NASIL bölümü serisinin bir parçasıdır
MasaÜstü Donanım Dağıtımlar
Tarayıcılar Programlama Linux ve Oyunlar

ABS ile Kernel derlemek

-ABS ağacı sisteminizde mevcut değilse aşşağıdaki komutu verin.

Not: Bu komutu root hakları ile veriniz.
# abs

-Şimdi Kernel derlemek için gereken dosyaları derleme yapacağımız dizine kopyalayalım.

Not: Bundan sonrasındaki komutları kullanıcı olarak verebilirsiniz.
$ cp /var/abs/kernels/kernel26 /var/abs/local/

Önemli bir adımdayız. Burda gereken şey kernel'ınıza bir isim vermeniz.belirlediğimiz isimi abs ağacından edindiğimiz dosyalardaki bazı yerlere ekleyip, mevcut olan bazı isimleride değiştirmemiz gerekmektedir. Mesela ben vanilla ismini uygun gördüm.Tabiki siz istediğiniz ismi verebilirsiniz. Archlinux'un deposundaki kernel'ın bütün yamalarını ayıklayıp sağde bir kernel paketlemek istediğim için vanilla ismini verdim.

-İlk olarak klasörün ve dosyaların isimlerini değiştiriyoruz.

Orjinal Hali Değiştirilmiş Hali
kernel26 kernel26vanilla (ABS'den kopyaladığımız klasör)
kernel26.install kernel26vanilla.install
kernel26.preset kernel26vanilla.preset
mkinitcpio-kernel26.conf mkinitcpio-kernel26vanilla.conf

-Sıra geldi dosyaların içeriklerini değiştirmeye. Metin editörü ile yapılacak değişiklikler :

PKGBUILD:

Orjinal Hali Değiştirilmiş Hali
pkgname=kernel26 pkgname=kernel26vanilla
install=kernel26.install install=kernel26vanilla.install
source=( kernel26.preset ) source=( kernel26vanilla.preset )
cp System.map $startdir/pkg/boot/System.map26 System.map26vanilla
cp arch/$KARCH/boot/bzImage $startdir/pkg/boot/vmlinuz26 vmlinuz26vanilla
install -D -m644 .config $startdir/pkg/boot/kconfig26 kconfig26vanilla
sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" $startdir/kernel26.install kernel26vanilla.install

kernel26vanilla.install:

KERNEL_VERSION=2.6.19-ARCH -> KERNEL_VERSION=2.6.19-vanilla

/sbin/mkinitcpio -p kernel26 -m "ATTENTION:\nIf you get a kernel panic below -> -p kernel26vanilla -m Not:Bu satırdan 2 tane olabilir. Lütfen ikisinede yukardaki gibi değiştiriniz.

Orjinal Hali Değiştirilmiş Hali
echo "| - initrd26.img to kernel26.img               |"
echo "| - initrd26-full.img to kernel26-fallback.img |"
echo "| - initrd26.img to kernel26vanilla.img               |"
echo "| - initrd26-full.img to kernel26vanilla-fallback.img |"
# mkinitcpio preset file for kernel26

########################################
# DO NEVER EDIT THIS LINE:
source /etc/mkinitcpio.d/kernel26.kver
########################################

PRESETS=('default' 'fallback')

default_config="/etc/mkinitcpio.conf"
default_image="/boot/kernel26.img"

fallback_config="/etc/mkinitcpio.d/kernel26-fallback.conf"
fallback_image="/boot/kernel26-fallback.img"
# mkinitcpio preset file for kernel26vanilla

########################################
# DO NEVER EDIT THIS LINE:
source /etc/mkinitcpio.d/kernel26vanilla.kver
########################################

PRESETS=('default' 'fallback')

default_config="/etc/mkinitcpio.conf"
default_image="/boot/kernel26vanilla.img"

fallback_config="/etc/mkinitcpio.d/kernel26vanilla-fallback.conf"
fallback_image="/boot/kernel26vanilla-fallback.img"


Yamaların ayıklanması

Kernel'ımıza vanilla dediğimize göre Archlinux geliştiricilerinin pakete eklediği yamalarıda silebiliriz.Ben bütün yamaları kaldırdım ve hiç bir sorun yaşamadım.Sisteminizin bu yamalara ihtiyaç duyup duymadığına kanaat getirdiyseniz kaldırın .

 # add acpi custom dsdt patch
 patch -Np1 -i ../acpi-dsdt-initrd-v0.8.1-2.6.16.patch || return 1
 # fix enabling of bluetooth on some toshiba notebooks
 patch -Np1 -i ../toshiba-bluetooth.patch || return 1
 # fix early irq ata problem to detect all devices
 patch -Np1 -i ../ata-early-irq.patch || return 1
 # add new fuse subsystem
 patch -Np1 -i ../fuse-2.6.1.patch || return 1

- Ağ kartınız Realtek değilse bu satırlarıda silebilirsiniz.

 # install r1000 driver for newer realtek network cards
 cd $startdir/src/r1000_v1.05/
 #patch -Np0 -i $startdir/src/r1000-build.patch || return 1
 make KDIR=$startdir/src/linux-$basekernel modules
  install -D -m644 $startdir/src/r1000_v1.05/src/r1000.ko $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/net/r1000.ko

Ben şahsen bu satırlarıda kaldırdım. Vanilla kernel derlediğim için (yani yamasız orjinal kernel) orjinal logosu olmasını istedim.

 # Arch logo!
 cp ../logo_linux_clut224.ppm drivers/video/logo/
 cp ../logo_linux_mono.pbm drivers/video/logo/
 cp ../logo_linux_vga16.ppm drivers/video/logo/

Sıra geldi en can alıcı noktaya. Kernel'ı kendi gereksinimlerimize göre yapılandırmaya. Bu aşamada yapıcağımızı kısaca özetlersek ;

  1. Kernel'ı indirip klasöre çıkartmak,
  2. Kernel'ı çıkarttığımız dizine girip make xconfig (yada herneyle yapılandıracaksanız) komutunu vermek,
  3. ABS ağacından edindiğimiz config dosyasını açıp ,değiştirip ,yeni ayarlarımızı tekrar config dosyasının üzerine yazmak.

Kernel'ı indirmek : Bunun birsürü yolu var tabi.Ben aşşağıdakini seçtim. $ makepkg -o (bakınız : makepkg --help veya man makepkg )

Kernel'ın çıkartılması :"Resim gelecek"

Kernel'ın bulunduğu klasöre girip make xconfig komutunun çalıştırılması:"Resim gelecek"

ABS ağacından edindiğimiz config dosyasını açıp ,değiştirip ,yeni ayarlarımızı tekrar config dosyasının üzerine yazmak :

resim:Open.jpg

resim:Open_config.jpg


Bu değişiklikleri yaptıktan sonra dosyalarımızın PKGBUILD'de bulunan Md5sum değerlerini düzeltelim.

resim:Md5sum.jpg

#makepkg -g >>PKGBUILD