Kompilasi Kernel

Kompilasi Kernel

Kernel berfungsi sebagai perantara antara program-program dengan hardware, tugasnya antara lain:
  • Mengatur memori bagi seluruh proses yang berjalan
  • Memastikan proses tersebut memperoleh pembagian siklus prosesor yang adil
  • Menyediakan interface yang portabel bagi program-program untuk berbicara ke hardware
Versi kernel ini ada 2 macam, yaitu versi stabil dan versi pengembangan. Versi stabil ditandai dengan penomoran versi yang genap, contoh 2.4.x atau 2.6.x. Sedangkan kernel yang merupakan versi pengembangan ditandai dengan nomor gaji, contoh 2.5.x atau 2.7.x. Kernel-kernel pengembangan ini bisa dibilang ada versi beta sebelum versi finalnya dikeluarkan.


Kernel sendiri dibagi 2 macam, yaitu:
  1. Kernel monolitik adalah kernel yang semua di-compile dari awal dan dimuat saat sistem boot. Kelebihannya adalah stabil, tetapi kelemahannya adalah kernel monolitik ini harus di-compile terlebih dahulu sebelum digunakan.
  2. Kernel modular adalah kernel yang dapat diinstall dan diuninstall. Kernel ini akan dimuat saat saat diperlukan. Salah satu contoh kernel modular ini adalah driver, seperti driver printer, VGA, dsb. Kelebihan kernel modular ini adalah lebih mudah diinstall/uninstall tetapi kelemahannya adalah kurang stabil.
Lalu apa keuntungan melakukan kompilasi kernel? Berikut alasannya:
  1. Kernel monolitik akan dimuat saat booting, artinya semakin banyak kernel monolitik yang dimuat, maka memori yang digunakan pun semakin besar, padahal belum tentu semua kernel monolitik tersebut kita perlukan. Ada beberapa yang cuma perlu dijadikan kernel modular saja. Dengan merampingkan ukuran kernel, maka kecepatan booting dapat ditingkatkan dan memperkecil pemakaian memori.
  2. Dengan kompilasi kernel, Kita dapat menyeting sistem PC kita agar bekerja lebih maksimal lagi. Karena umumnya kernel yang disertakan bekerja untuk PC secara umum, artinya tidak seluruh kemampuan PC kita dikeluarkan karena kernel diset untuk bekerja secara umum. Contohnya adalah CPU, setting standar kernel adalah menggunakan CPU Pentium I, padahal kita menggunakan CPU Dual Core. Nah, dengan kompilasi kernel ini Kita bisa mengoptimalkan kerja dari kernel ini agar optimal di CPU Dual Core.
  3. Kita dapat memasukkan feature lainnya yang tidak ada di kernel standar.
  4. Upgrade kernel. Kernel baru umumnya menawarkan kemampuan untuk mendukung lebih banyak hardware, memperbaiki bug yang ada di kernel sebelumnya, lebih stabil dibanding versi sebelumnya, memiliki dukungan manajemen proses yang lebih baik, yang berjalan lebih cepat dari versi sebelumnya.
Langkah-langkah yang perlu disiapkan sebelum melakukan kompilasi kernel adalah:
  1. Menyiapkan source code kernel. Kernel sendiri bisa didownload di www.kernel.org atau mirror lainnya
  2. GNU C Compiler (GCC) untuk mengcompile kernel
  3. Program Make untuk membantu kompilasi program.
Asumsi di post ini adalah menggunakan kernel 2.6.21.5.


Berikut langkah-langkah kompilasi kernel:
  1. Ektrak file kernel yang biasanya terkompresi dalam format .tar.bz2 dengan perintah
    Quote:
    $ tar xjvf linux-2.6.21.5.tar.bz2
  2. Pindah ke direktori hasil ekstrak file kernel tadi
  3. Bila Anda merasa perlu untuk membersihkan source kernel dari sisa kompilasi sebelumnya, lakukan dengan perintah
    Quote:
    $ make clean
  4. Untuk memulai memilih kernel mana yang akan di-compile, ketik
    Quote:
    $ make menuconfig
    Pilihlah kernel yang akan dijadikan kernel monolitik (ditandai dengan
  5. ) atau kernel modular (ditandai dengan [M]), atau malah akan dihapus (ditandai dengan []). Untuk memilih tekan spasi, untuk kembali ke menu sebelumnya tekan ESC, untuk masuk ke sub menu tekan ENTER. Harap pilih tipe kernel (monolitik atau modular) dengan cermat, agar sistem Anda menjadi lebih optimal dan tidak sebaliknya. Setelah selesai memilih, maka keluarlah dari menu config tersebut (dengan memilih exit).
  6. Kompile kernel dengan perintah
    Untuk kernel 2.4.x lakukan dengan perintah:
    Quote:
    $ make
    $ make bzImage
    $ make vmlinuz
    $ make modules
    $ make modules_install
    Perintah make bzImage untuk membuat image kernel utama saat booting
    Perintah make vmlinux untuk image kernel versi tidak terkompresi
    Perintah make modules untuk meng-kompile kernel modular.
    Perintah make modules_install akan membuat direktori sesuai versi kernel di bawah direktori /lib/modules

    Untuk kernel 2.6.x lakukan dengan perintah:
    Quote:
    # make all && make modules_install && make install
    Tunggu proses kompilasi sampai selesai, karena proses dapat berlansung lama tergantung dari spesifikasi komputer.

Bagi yang menggunakan kernel 2.6.x, langkah di bawah ini bisa dilewatkan.
  1. Selanjutnya, adalah mengkonfigurasi bootloader Anda. Ada baiknya Anda meng-copy beberapa file ini ke /boot. Beberapa file tersebut adalah bzImage (ada di direktori arch/i386/boot), vmlinuz (ada di direktori utama), .config dan system.map (untuk debugging). Copy semua file tersebut ke direktori baru di /boot, misalnya /boot/kernelbaru.
  2. Login sebagai root, dan edit file grub.conf (bila menggunakan grub sebagai boot loader). Tambahkan entri sebagai berikut (jangan hapus file dan entry kernel yang lama, untuk berjaga-jaga bila kernel baru tidak bisa berjalan):
    Quote:
    title New Kernel (2.6.21.5)
    root(hd1,0)
    kernel /boot/kernelbaru/bzImage ro root=/dev/hda1
    initrd /boot/kernelbaru/initrd-2.6.21.5.img
    Bila file initrd ini tidak ada, file ini dapat dibuat dengan perintah
    Quote:
    # mkinitrd /boot/kernelbaru/initrd-2.6.21.5.img 2.6.21.5
  3. Bila Anda menggunakan LILO, maka entry yang perlu dimasukkan adalah
    Quote:
    image=/boot/kernelbaru/vmlinuz-2.6.21.5
    label=New Kernel
    root=/dev/hda1
    read-only
    Setelah diedit, jangan lupa ketik perintah berikut
    Quote:
    # lilo
  4. Kompilasi kernel telah selesai, restart komputer Anda dan pilihlah kernel yang baru tersebut.
tambahin ya langkah-langkah compile kernel yang belum dituliskan diatas..

usahakan extract kernel baru di folder /usr/src kemudian unlink linux link ke kernel lama dan ganti dengan link ke folder baru. langkah ini akan mempermudah installasi aplikasi yang memerlukan kernel source dikemudian hari.

make clean hanya dilakukan ketika recompile jadi kalo compile dari awal make clean gak perlu dilakukan.

cara compile yang bro beri cukup oldiest biasa dipake untuk kernel 2.4 kebawah... berhubung kernel linux dari 2.6 keatas udah susah (kalo ngga gak mungkin) dibikin kecil (kurang dari 1.44Mb) jadi beberapa command bisa dilewat lagian sekarang compile kernel gak sebanyak itu command nya udah disederhanakan.. setelah make menuconfig cukup ketik segini saja

Code:
make && make modules && make modules_install && make install
make & make modules bisa disingkat dengan mengetikan make all

terus mkinitrd lebih baik selalu dilakukan setelah compile kernel jaga-jaga jangan sampe gagal boot dulu baru repot bikin initrd

No comments: