Thursday, April 8, 2010

Cara Compile Kernel di Ubuntu 9.10



Pertama masuk super user pada console :
#sudo su
kemudian masukan pasword user anda.
1.update kernel anda dengan perintah :
#sudo apt-get update

Set supaya /bin/sh menjadi /bin/bash jika di perlukan
# rm -f /bin/sh
# ln -s /bin/bash /bin/sh
2. Ok pertama kali anda siapkan dulu paket-paket yang dibutuhkan:
#apt-get install kernel-package libncurses5-dev build-essential fakeroot
Copy source code kernel
# cd /usr/src
Terus ambil deh kernel linux yang mau di compile. Bisa aja sih ambil dari paketnya Ubuntu, tapi saya lebih suka ambil langsung dari kernel.org :
#wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.2.tar.bz2

Anda bisa saja mengambil dari mirror lokal (kambing & komo), tapi kalau anda adalah orang yang nggak sabaran seperti saya, mending langsung ambil dari www.kernel.org karna kedua mirror tersebut suka rada lama updatenya.
Kemudian extract source kernel tersebut:
# tar -jxf linux-2.6.33.2.tar.bz2

# ln -s linux-2.6.33.2 linux
Compile kernel 2.6 di Linux
# cd /usr/src/linux
kemudian masuk ke folder hasil extraknya :
# cd linux-2.6.33.2
kemudian copy file boot yang tadi kita extrak :
# cp /boot/config-......... ./.config
contoh :
# cp /boot/config-2.6.31-20-generic ./.config
Langkah cp /boot/config* dibutuhkan jika kita ingin konfigurasi kernel yang digunakan sama dengan konfigurasi kernel dari system operasi yang sedang kita gunakan.

Setelah itu jalankan perintah berikut untuk menyesuaikan konfigurasi yang lama dengan konfigurasi yang baru, karna di kernel baru biasanya ada tambahan modul-modul baru.
$ make oldconfig

Setelah itu akan ditanya modul-modul yang baru, untuk amannya sih tekan saja enter terus kecuali mau lihatin satu-satu

Nah kalau sudah selesai, baru deh kita utak atik konfigurasinya:
#make menuconfig

Pilih load alternate configuration file untuk meload file konfigurasi yang kita copy sebelumnya
Setelah itu keluar dari menuconfig dan simpan konfigurasi kernel barunya

# make-kpkg clean
Mungkin akan lebih mudah untuk memaksa compile semua code melalui perintah
# make all
Langkah selanjutnya adalah mengkopile kernel baru yang sudah kita konfigurasi
# fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers

Penjelasan perintah :
*fakeroot untuk menjalankan suatu perintah dengan berpura-pura sebagai root, karena perintah make-kpkg harus dijalankan dalam mode super user, tapi bisa kita tipu sama fakeroot he he he
*make-kpkg untuk membuat paket kernel dari source kernel linux
*initrd adalah switch untuk membuat file initrd.img
*bzimage adalah switch untuk membuat kernel yang terkompresi dengan bzip2
*kernel_image adalah perintah untuk make-kpkg supaya membuat image kernel
Setelah proses kompilasi kernel berhasil akan menghasilkan 2 file .deb pada /usr/src
linux-headers-2.6.33.2-custom_2.6.33.2-custom-10.00.Custom_i386.deb
linux-image-2.6.33.2-custom_2.6.33.2-custom-10.00.cCstom_i386.deb
Install 2 paket tersebut
dpkg –I linux-headers-2.6.30.10-custom_2.6.30.10-custom-10.00.Custom_i386.deb
dpkg –I linux-image-2.6.30.10-custom_2.6.30.10-custom-10.00.cCstom_i386.deb
Ubah GRUB untuk menambahkan menu untuk booting
# gedit /boot/grub/menu.lst
Pastikan ada menu untuk booting dari kernel yang baru seperti contoh dibawah ini ( samakan uuid dengan UUID kernel yang lama)
title Ubuntu 9.04, kernel 2.6.30.1-custom
uuid d0a32d6c-3176-4b92-8cac-6e75acc4348a
kernel /boot/vmlinuz-2.6.29.2-custom root=UUID=d0a32d6c-3176-4b92-8cac-6e75acc4348a ro quiet splash
initrd /boot/initrd.img-2.6.29.2-custom
quiet
title Ubuntu 9.04, kernel 2.6.29.2-custom (recovery mode)
uuid d0a32d6c-3176-4b92-8cac-6e75acc4348a
kernel /boot/vmlinuz-2.6.30.1-custom root=UUID=d0a32d6c-3176-4b92-8cac-6e75acc4348a ro single
initrd /boot/initrd.img-2.6.30.1-custom
Shutdown dan Reboot komputer
# shutdown -r now
Setelah reboot & masuk lagi ke shell lakukan ..
# uname -r

No comments:

Post a Comment