NASIL Archlinux'ta ABS ile kernel derlemek
From Lapis Wiki
Bu makale NASIL bölümü serisinin bir parçasıdır
|
| MasaÜstü • Donanım • Ağ • 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 ;
- Kernel'ı indirip klasöre çıkartmak,
- Kernel'ı çıkarttığımız dizine girip make xconfig (yada herneyle yapılandıracaksanız) komutunu vermek,
- 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 :
Bu değişiklikleri yaptıktan sonra dosyalarımızın PKGBUILD'de bulunan Md5sum değerlerini düzeltelim.
#makepkg -g >>PKGBUILD



