[Linux] Compile Kernel Linux 2.6 pada Ubuntu 10.04


Pehatian! Cara ini sudah pernah diuji dan berhasil. Kesalahan mungkin dapat terjadi, read at your own risk.

Berikut ini adalah cara untuk meng-compile kernel linux 2.6.39.4 pada Ubuntu 10.04. Untuk kernel 2.6.x yang diinstall pada distro Linux berbasis kernel 2.x dapat mengikuti langkah ini tetapi dengan beberapa perbedaan yang perlu disesuaikan.

Persiapan

  1. Download kernel linux 2.6.39.4 di sini.
  2. Ekstrak file linux-2.6.39.4.tar.gz hasil download tadi ke direktori baru. Misalnya kita akan meletakan di dalam folder ~/kernel/
    $ tar zxvf linux-2.6.39.4.tar.gz -C ~/kernel/

    Maka akan terdapat direktori ~/kernel/linux-2.6.39.4

  3. Download paket yang dibutuhkan untuk mengompilasi kernel dengan apt-get
    $ sudo apt-get update
    $ sudo apt-get install build-essential initramfs-tools
    $ sudo apt-get install ncurses-dev

    Perintah ketiga tidak wajib untuk dijalankan. Paket ini digunakan untuk mengonfigurasi kernel sebelum dikompilasi dengan mode grafik pada terminal.

  4. Masuk ke dalam direktori hasil peng-ekstrak-an kernel tadi
    $ cd ~/kernel/linux-2.6.39.4
  5. Jalankan konfigurasi untuk mengompilasi kernel.
    $ make --jobs=`getconf _NPROCESSORS_ONLN` O=~/linux-build menuconfig

    Parameter --jobs=`getconf _NPROCESSORS_ONLN` digunakan untuk menjalankan proses konfigurasi secara multi-job untuk memaksimalkan jumlah proses yang bisa ditangani oleh prosesor sekaligus
    Parameter menuconfig digunakan untuk membuka menu konfigurasi grafik berbasis text (memerlukan ncurses-dev). Selain itu terdapat konfigurasi lainnya (baca file README).

    "make config"      Plain text interface.
    "make menuconfig"  Text based color menus, radiolists & dialogs.
    "make nconfig"     Enhanced text based color menus.
    "make xconfig"     X windows (Qt) based configuration tool.
    "make gconfig"     X windows (Gtk) based configuration tool.
    "make oldconfig"   Default all questions based on the contents of
    	your existing ./.config file and asking about
    	new config symbols.
    "make silentoldconfig"
    	Like above, but avoids cluttering the screen
    	with questions already answered.
    	Additionally updates the dependencies.
    "make defconfig"   Create a ./.config file by using the default
    	symbol values from either arch/$ARCH/defconfig
    	or arch/$ARCH/configs/${PLATFORM}_defconfig,
    	depending on the architecture.
    "make ${PLATFORM}_defconfig"
    	Create a ./.config file by using the default
    	symbol values from
    	arch/$ARCH/configs/${PLATFORM}_defconfig.
    	Use "make help" to get a list of all available
    	platforms of your architecture.
    "make allyesconfig"
    	Create a ./.config file by setting symbol
    	values to 'y' as much as possible.
    "make allmodconfig"
    	Create a ./.config file by setting symbol
    	values to 'm' as much as possible.
    "make allnoconfig" Create a ./.config file by setting symbol
    	values to 'n' as much as possible.
    "make randconfig"  Create a ./.config file by setting symbol
    	values to random values.

Compile Kernel

Setelah melakukan konfigurasi untuk compile kernel, sekarang saatnya untuk melakukan compile. Berikut diberikan dua cara untuk melakukan kompilasi kernel, yaitu dengan hanya menggunakan Makefile standar dan menggunakan Kernel Package (make-kpkg). Anda cukup mengikuti salah satu dari cara berikut.

Compile menggunakan Makefile standar

  1. Buat direktori output, misalnya di direktori ~/linux-build
    Direktori ini merupakan tempat output dari hasil compile

    $ mkdir ~/linux-build
  2. Jika berhasil, lakukan peng-compile-an.
    $ sudo make --jobs=`getconf _NPROCESSORS_ONLN` O=~/linux-build
  3. Jika berhasil, lakukan peng-install-an module.
    $ sudo make --jobs=`getconf _NPROCESSORS_ONLN` O=~/linux-build modules_install
  4. Jika berhasil, lakukan peng-install-an kernel ke komputer.
    $ sudo make --jobs=`getconf _NPROCESSORS_ONLN` O=~/linux-build install
  5. Masuk ke direktori /boot
    $ cd /boot
  6. Buat initramfs image untuk kernel yang baru ini. Initramfs merupakan arsip cpio terkompresi yang di-loadpertama kali ke RAM saat masuk ke sistem operasi.
    $ sudo mkinitramfs -o initrd.img-2.6.39.4 2.6.39.4
  7. Lakukan peng-update-an grub.Grub merupakan sebuah program bootloader.
    $ sudo update-grub
  8. Lakukan reboot dan masuk ke kernel baru yang telah di buat.

Compile menggunakan Kernel Package (make-kpkg)

  1. Download aplikasi yang dibutuhkan untuk mengompilasi kernel
  2. $ sudo apt-get install kernel-package
  3. Lakukan cleaning make-kpkg
    $ sudo make-kpkg clean
  4. Buat package yang berisi kernel image dan kernel header
    $ sudo fakeroot make-kpkg --initrd --append-to-version=-tubes kernel-image kernel-headers

    Pada bagian --append-to-version, Anda dapat mengganti teks -tubes menjadi nama versi yang mengikuti versi kernel. Tujuannya adalah untuk memberikan versi yang berbeda jika Anda mengupdate kernel sehingga kernel dengan versi yang sama tidak akan dirusak.

  5. Install paket yang telah dibuat pada langkah sebelumnya
    $ cd ..
    $ sudo dpkg -i linux-image-2.6.32-custom_2.6.32-custom-10.00.Custom_i386.deb
    $ sudo dpkg -i linux-headers-2.6.32-custom_2.6.32-custom-10.00.Custom_i386.deb
  6. Masuk ke direktori /boot
    $ cd /boot
  7. Buat initramfs image untuk kernel yang baru ini. Initramfs merupakan arsip cpio terkompresi yang di-loadpertama kali ke RAM saat masuk ke sistem operasi.
    $ sudo mkinitramfs -o initrd.img-2.6.39.4 2.6.39.4
  8. Lakukan peng-update-an grub.Grub merupakan sebuah program bootloader.
    $ sudo update-grub
  9. Lakukan reboot dan masuk ke kernel baru yang telah di buat.
Advertisements

One thought on “[Linux] Compile Kernel Linux 2.6 pada Ubuntu 10.04

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s