Intro..
Postingan ini berisi dokumentasi tentang kompilasi dan installasi kernel Linux versi 3 yang telah saya coba di distro Slackware Linux, yang secara garis besar tidak ada perbedaan dengan kompilasi Linux kernel 2.x. Saat tulisan ini dibuat Slackware Linux (13.37) masih menggunakan kernel Linux versi 2.6.37.6, sedangkan untuk Slackware-current (28 Sept 2011) masih memakai kernel Linux versi 2.6.38.7.

Background..
Belum lama ini Linus Torvalds memutuskan untuk me-release kernel Linux terbaru yaitu versi 3 yang merupakan succesor dari kernel Linux versi 2.6.39. Momen ini didukung seiring dengan ulang tahun yang ke-20 semenjak dirilisnya Linux versi 0.01.

Objectif..
Sebenarnya tidak ada perubahan yang revolusioner dari kernel terbaru ini, khususnya untuk hardware di laptop saya, ataupun security hole yang mesti ditambal :) Jadi bisa dibilang kalau kompilasi ini adalah uji coba :D . Jika dilihat dari release date kernel sistem operasi berlogo pinguin ini, yang notabene perubahan dari versi 1.0 ke versi 2.0 yang hanya memakan waktu dua tahun, yaitu tahun 1994 versi 1.0 kemudian versi 2.0 pada tahun 1996, maka pergantian ini semestinya dirayakan oleh Linuxer.

Implementasi..
Download source kernel Linux, gunakan last stable version, (saat tulisan ini dibuat v3.0.4 ):

bowo@pcxthinkslack:~/Downloads$ aria2c -cs4 http://ftp.ticklers.org/pub/linux/kernel/v3.0/linux-3.0.4.tar.bz2

Setelah proses download selesai, extract di direktori /usr/src:

bowo@pcxthinkslack:~/Downloads$ cd /usr/src/; tar -xf /home/bowo/Downloads/linux-3.0.4.tar.bz2
bowo@pcxthinkslack:/usr/src$ ls -l
total 8
lrwxrwxrwx  1 root root   11 sept. 28 08:25 linux - > linux-2.6.38.7
drwxr-xr-x 24 root root 4096 mai   22 09:38 linux-2.6.38.7/
drwxrwxr-x 23 root root 4096 août  30 03:56 linux-3.0.4/
lrwxrwxrwx  1 root root   28 juin  17 22:42 vboxhost-4.0.8 - > /opt/VirtualBox/src/vboxhost/

Hapus symlink linux yang mengacu ke direktori linux-2.6.38.7, dan buat symlink baru linux yang mengacu ke direktori linux-3.0.4:

bowo@pcxthinkslack:/usr/src$ rm linux
bowo@pcxthinkslack:/usr/src$ ln -s linux-3.0.4 linux

Selanjutnya pindah direktori kerja ke /usr/src/linux, kemudian memulai konfigurasi kernel yang akan dikompile, berikut perintah-perintahnya:

bowo@pcxthinkslack:/usr/src$ cd linux
bowo@pcxthinkslack:/usr/src/linux$ mkdir -p ~/Build/linux-3.0.4
bowo@pcxthinkslack:/usr/src/linux$ zcat /proc/config.gz > /home/bowo/Build/linux-3.0.4/.config
bowo@pcxthinkslack:/usr/src/linux$ make O=/home/bowo/Build/linux-3.0.4/ oldconfig
bowo@pcxthinkslack:/usr/src/linux$ make O=/home/bowo/Build/linux-3.0.4/ menuconfig
bowo@pcxthinkslack:/usr/src/linux$ make -j4 O=/home/bowo/Build/linux-3.0.4/ all
bowo@pcxthinkslack:/usr/src/linux$ sudo make -j4 O=/home/bowo/Build/linux-3.0.4/ modules_install
bowo@pcxthinkslack:/usr/src/linux$ sudo make -j4 O=/home/bowo/Build/linux-3.0.4/ install

Penjelasan:
(cd linux): memindah direktori kerja ke /usr/src/linux
(mkdir ~/Build/linux-3.0.4): membuat direktori baru yang lokasinya adalah /home/bowo/Build/linux-3.0.4, untuk apa? Personally, saya lebih memilih menaruh output kompilasi di dalam direktori home saya agar memudahkan saya dalam file management.
(zcat /proc/config.gz > /home/bowo/Build/linux-3.0.4/.config): membuat config kernel baru dari config kernel OS linux yang saat ini sedang dijalankan.
(make O=/home/bowo/Build/linux-3.0.4/ oldconfig): membaca config kernel yang telah kita buat sebelumnya, dan menambahkan konfigurasi baru yang belum ada pada config kernel yang lama.
(make O=/home/bowo/Build/linux-3.0.4/ menuconfig): menampilkan terminal based dialog, untuk mengkonfigurasi kernel linux (optional). Perintah ini dijalankan jika kita ingin mengubah parameter-parameter di kernel config. Misalnya untuk laptop saya, saya ubah beberapa konfigurasi default dari kernel Slackware generic, yaitu di Processor type and features->Processor family->Core 2/newer Xeon, kemudian di File systems, saya ubah ext3, ext4,reiserfs menjadi built-in kernel.
(make -j4 O=/home/bowo/Build/linux-3.0.4/ all): memulai proses kompilasi kernel image dan kernel module.
(sudo make -j4 O=/home/bowo/Build/linux-3.0.4/ modules_install): menginstall kernel module ke system (/lib/modules/3.0.4), memerlukan akses root.
(sudo make -j4 O=/home/bowo/Build/linux-3.0.4/ install): menginstall kernel image ke system /boot/vmlinuz, memerlukan akses root.
Jika proses kompilasi dan installasi berjalan sukses, langkah selanjutnya adalah konfigurasi boot loader linux agar mengenali kernel yang baru saja kita pasang. Berikut langkah-langkah nya:

bowo@pcxthinkslack:/usr/src$ cd /etc/rc.d/
bowo@pcxthinkslack:/etc/rc.d$ cp rc.modules rc.modules-3.0.4
bowo@pcxthinkslack:/etc/rc.d$ rm rc.modules
bowo@pcxthinkslack:/etc/rc.d$ ln -s rc.modules-3.0.4 rc.modules
bowo@pcxthinkslack:/etc/rc.d$ mv /boot/vmlinuz /boot/vmlinuz-3.0.4
bowo@pcxthinkslack:/etc/rc.d$ ln -s /boot/vmlinuz-3.0.4 /boot/vmlinuz
bowo@pcxthinkslack:/etc/rc.d$ mv /boot/System.map /boot/System.map-3.0.4
bowo@pcxthinkslack:/etc/rc.d$ ln -s /boot/System.map-3.0.4 /boot/System.map
bowo@pcxthinkslack:/etc/rc.d$ cp /home/bowo/Build/linux-3.0.4/.config /boot/config-3.0.4
bowo@pcxthinkslack:/etc/rc.d$ rm /boot/config
bowo@pcxthinkslack:/etc/rc.d$ ln -s /boot/config-3.0.4 /boot/config

Terakhir, edit file /etc/lilo.conf dan tambahkan item seperti contoh berikut ini:

image = /boot/vmlinuz
root = /dev/sda1
label = Linux_3.0.4
read-only
append="vt.default_utf8=1"

dan jangan lupa jalankan perintah lilo di terminal, setelah memodifikasi file /etc/lilo.conf untuk mengupdate boot loader dan terakhir reboot.

Result..
Untuk melihat versi kernel pada OS linux, gunakan perintah uname:

bowo@pcxthinkslack:~$ uname -a
Linux pcxthinkslack 3.0.4pcx #1 SMP Wed Sep 28 09:17:46 WIT 2011 x86_64 Intel(R) Core(TM)
i3-2310M CPU @ 2.10GHz GenuineIntel GNU/Linux

=-=-=-=-=
Powered by Blogilo