Upgrade dan kompilasi kernel

1. Pendahuluan
Artikel ini menerangkan secara singkat bagaimana meginstall kernel pada sistem komputer kelas intel. Tulisan ini disusun berdasarkan pengalaman penulis sendiri dalam menginstal kernel ditambah dengan sumber / referensi dokumen lain yan berkaitan. Penulis telah menginstal kernel 2.2.10 pada Redhat linux 6.0, yang merupakan versi kernel terakhir pada saat tulisan ini dibuat.

2. Apa itu Kernel ?
Kernel adalah program yang dimuat saat boot yang berfungsi sebagai interfaces antara user-level program dengan hardware. Fungsinya seperti layaknya sistem operasi, menangani task switching dalam multitasking, menangani permintaan membaca atau menulis peralatan disk, melakukan tugas-tugas network serta mengatur penggunaan memori.
Pada prinsipnya Linux hanyalah sebuah kernel. Program lain seperti kompiler, editor, window manager dan sebagainya yang disertakan dalam paket hanyalah sebuah distribusi (Redhat, SuSE, Mandrake, Debian, Slackware, dll) yang melengkapi kernel menjadi sebuah sistem operasi yang lengkap.

3. Versi Kernel
Source kernel memiliki format linux-X.Y.Z.tar.gz, seperti linux-2.2.10.tar.gz. X.Y.Z menunjukkan nomor versi kernel misalnya 2.2.10. Nomor versi kernel tersebut terdiri dari 3 bagian yaitu: nomor mayor, nomor minor dan nomor revisi yang masing-masing dipisahkan dengan titik.
Angka 2 pertama pada kernel 2.2.10 menunjukkan nomor mayor. Angka ini akan jarang berubah untuk waktu yang lama. Jika terjadi perubahan pada nomor ini berarti telah terjadi perubahan yang besar terhadap kernel. Seperti perubahan 1.Y.Z ke 2.Y.Z.
Angka 2 kedua pada kernel 2.2.10 menunjukkan nomor minor. Angka ini menginformasikan stabilitas kernel. Angka genap (0, 2, 4, dst) menandakan kernel stabil. Sedangkan angka ganjil (1, 3, 5, dst) menandakan kernel dalam tahap pengembangan atau development. Kernel bernomor minor ganjil dikenal juga dengan kernel versi alpha. Pada versi ini kernel mengandung kode-kode eksperimental dan feature-fetaure terbaru yang ditambahkan oleh developernya. Kadang-kadang kernel ganjil ini malah stabil dan biasanya dipakai oleh mereka yang sedang melakukan percobaan terhadap feature-feature baru tersebut. Tetapi penulis tidak merekomendasikan Anda menggunakan kernel versi alpha ini.
Angka terakhir, 10 menunjukkan nomor revisi. Ini menandakan current patch versi tersebut. Selama tahap pengembangan versi baru bisa dirilis hingga dua kali seminggu.
Kernel juga memberikan versi patch yang terpisah dari full-version (linux-X.Y.Z.tar.gz) dan dapat digunakan untuk mengupgrade kernel satu tingkat di atas nomor patch-nya. Misalnya patch-2.2.10.gz dipakai untuk mengupgrade kernel 2.2.9, bukan kernel 2.2.5 atau yang lainnya.

4. Mengapa Harus Mengupgrade dan Mengkompilasi Kernel?
Upgrade kernel dilakukan karena kernel versi terbaru biasanya memiliki kemampuan yang lebih baik dalam berinteraksi dengan hardware, memiliki lebih banyak device drivers, mempunyai management proses yang lebih baik, berjalan lebih cepat, lebih stabil dan merupakan perbaikan kesalahan-kesalahan (bug-fixes) dari versi terdahulunya.
Jika Anda tidak mengupgrade kernel tetapi merasa cukup dengan hanya mengkompilasi ulang kernel yang telah terinstal pada sistem Anda, maka langkah ini sangat penting dilakukan untuk menyesuaikan dengan kondisi hardware yang Anda miliki.

5. Langkah Kompilasi
Langkah kompilasi yang akan dijelaskan pada bagian bawah mengasumsikan Anda hanya memperoleh kernel full version bukan patch version.
Apabila Anda hanya ingin mengkompilasi ulang kernel yang telah ada (2.2.5 pada Redhat 6.0), maka langkah 5.1 dan 5.2 di bawah ini dapat dilewatkan.
5.1. Download Kernel
Kernel versi terbaru atau patch version-nya dapat diperoleh pada beberapa sumber di internet, seperti:
http://www.kernel.org
ftp://ftp.cdrom/pub/linux/sunsite/kernel
ftp://sunsite.unc.edu/pub/Linux/kernel

5.2. Unpacking Kernel
Sebelum unpacking kernel, lakukan langkah berikut :
login sebagai root atau jadilah superuser (su)
"cd /usr/src"
"ls -l" # perhatikan bahwa terdapat file linux yang melink ke file soruce kernel existing Anda
"rm linux" # hapus link tersebut
Kemudian unpack kernel pada direktori /usr/src dengan cara berikut:
Copy kernel yang telah Anda download ke direktori /usr/src
Unpack dengan cara:
"tar -zxvf linux-2.2.10.tar.gz"
Unpacking kernel yang dilakukan pada langkah di atas akan menyusun file-file source kernel di bawah direktori /usr/src/linux. Rename direktori linux tersebut dengan linux-2.2.10 dengan cara:
"mv linux linux-2.2.10"
Kemudian buat soft link dengan cara:
"ln -s linux-2.2.10 linux"
Pindah ke direktori linux dengan cara:
"cd /usr/src/linux"
Tetaplah pada direktori ini karena langkah konfigurasi kernel dan seterusnya dilakukan di sini.

5.3. Konfigurasi Kernel
Sebelum Anda melakukan konfigurasi kernel, pastikan bahwa tidak terdapat file .o dan dependensi dengan mengetikkan command berikut pada direktori /usr/src/linux:
"make mrproper"
Selanjutnya Anda dapat melakukan konfigurasi kernel dengan mengetiikan command berikut pada direktori /usr/src/linux
"make xconfig" # jika Anda bekerja dalam lingkungan X-windows.
Cara lain untuk mengkonfigurasi kernel adalah dengan command:
"make config" # jika Anda bekerja dalam lingkungan text-based.
"make menuconfig" #Text-based dengan tampilan menu berwarna, radiolists & dialogs.
"make oldconfig" # cara ini akan mengkonfigurasi kernel dengan isi konfigurasi default yang diberikan oleh file .config.

Langkah konfigurasi merupakan langkah yang paling penting karena pada langkah ini Anda akan menyusun item-item pilihan kernel. Pilihan yang salah akan membuat Linux Anda tidak dapat bekerja dengan semestinya. Sebagai referensi Anda dapat membaca artikel penulis yang berjudul Agar Linux Berjalan Lebih Gegas. Artikel tersebut menjelaskan pilihan-pilihan item yang memberikan performansi optimal pada sistem llinux Anda.

5.4. Cleaning dan Depending
Setelah konfigurasi selesai, pada direktori /usr/src/linux lakukan langkah berikut untuk membangun dependesi dengan benar dari hasil konfigurasi (depending):
"make dep"
Kemudian ketikkan command berikut untuk menghapus jejak kompilasi terdahulu yang pernah ada (cleaning):
"make clean"
Cleaning sangat penting jika Anda mengkompilasi ulang kernel yang pernah ada.

5.5. Kompilasi Kernel
Pastikan Anda memiliki gcc-2.7.2 atau yang lebih baru. Jangan khawatir jika Anda memilki Redhat 5.2, Redhat 6.0, SuSE 6.0, atau SuSE 6.1, karena persyaratan itu terpenuhi pada distribusi tersebut. Terhadap distribusi lainnya silahkan Anda periksa dengan command "gcc –version".
Kompilasi kernel dilakukan dengan mengetikkan command berikut pada direktori /usr/src/linux:
"make bzImage"
Command alternatif dapat dilakukan dengan:
"make zImage # jika Anda menginginkan image kernel terkompresi
Siapkan kesabaran Anda. Langkah ini membutuhkan waktu yang relatif lama. Pada prosesor pentium dibutuhkan waktu sekitar 10 menit, dan sekitar 1,5 jam jika Anda memakai i386. Waktu kompilasi juga akan bertambah kalau Anda menjalankan proses lainnya.
Apabila kompilasi selesai, Anda dapat memeriksa file bzImage pada direktori /usr/src/linux/arch/i386/boot. Jika tidak ada, maka Anda telah melakukan kesalahan. Ulangi lagi langkah kompilasi kernel pada point 5.

5.6. Kompilasi Modul
Jika Anda memilih pilihan (M), modul pada langkah konfigurasi kernel, maka Anda harus melakukan kompilasi modul pada direktori /usr/src/linux dengan cara berikut:
"make modules"
Pastikan tidak ada kesalahan.

5.7. Instalasi Kernel
Instalasi kernel dilakukan dengan mengcopy file bzImage hasil kompilasi ke direktori /boot dengan cara berikut:
"cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.2.10"
Jangan Anda gunakan nama vmlinuz pada direktori /boot karena akan menghapus file vmlinuz existing.
Kemudian copykan pula file System.map pada direktori /usr/src/linux dengan cara:
"cp /usr/src/linux/System.map /boot/System.map-2.2.10"
Lakukan langkah berikut untuk mengamankan file System.map existing dengan cara:
"rm System.map"
"ln -s System.map-2.2.10 System.map"

5.8. Instalasi Modul
Jika Anda hanya mengkompilasi ulang kernel, maka Anda harus mengamankan file-file modul existing Anda terlebih dahulu dengan cara:
"cd /lib/modules"
"mv 2.2.5-15 2.2.5-backup"
Keuntungan mengamankan modul existing Anda adalah bila ternyata nanti modul baru tidak berjalan baik, maka modul lama bisa digunakan kembali dengan merename modul baru (2.2.10) menjadi 2.2.10-backup dan merename modul lama 2.2.5-backup dengan 2.2.5-15 kembali.
Tetapi apabila Anda mengupgrade dengan kernel versi yang lebih baru, maka abaikan langkah di atas. Instalasi modul dilakukan dengan cara:
"cd /usr/src/linux"
"make modules_install"

5.9. Konfigurasi Ulang LILO
Langkah terakhir yang Anda lakukan adalah mengkonfigurasi ulang LILO, sehingga dapat membaca file image kernel yang baru saja Anda install. Langkah-langkah yang Anda lakukan adalah:
"vi /etc/lilo.conf" # Anda dapat juga mengedit file lilo.conf dengan editor lainnya seperti mc
tambahkan baris berikut pada file lilo.conf:
image = /boot/vmlinuz-2.2.10
label = linux2210
root = /dev/hda2 # Diasumsikan partisi /dev/hda2 berisi mounting /
"/sbin/lilo"
5.10. Restart Komputer
Untuk mencoba kernel versi baru Anda, restart komputer dan ketikkan "linux2210" pada prompt LILO boot:

6. Penutup
Upgrade dan kompilasi kernel perlu dilakukan agar sistem Linux Anda dapat bekerja lebih optimal. Langkah-langkah yang dijelaskan di atas belum memberikan kebenaran mutlak. Tetapi sejauh ini penulis telah mencoba dan berhasil. Jika terdapat koreksi terhadap artikel ini, penulis sampaikan penghargaan dan terima kasih.

Admiral Dasrin
miral@divnet.tellkom.co.id

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *