Compile Kernel
Ahmad Munif
munifpro@diffy.com
Pendahuluan
Tulisan ini diharapkan menjadi panduan praktis untuk pemula yang baru kenal linux dan ingin melakukan recompile kernel. Saya hanya menuliskan apa yang saya ketahui dan berhasil diterapkan di komputer saya. Bila langkah-langkah kompilasi telah di lakukan dengan benar (sesuai dengan petunjuk) dan ternyata masih terjadi kesalahan, saya tidak bertanggung jawab atas kesalahan tersebut ;-D 
Sekilas tentang Kernel dan Module
Kernel merupakan inti dari Operating System berisikan instruksi- instruksi yang bertindak sebagai mediator antara hardware dengan software. Kernel baru pada umumnya menawarkan dukungan yang lebih banyak terhadap ber bagai jenis hardware,memiliki manajemen proses yang lebih baik, berjalan lebih baik dari versi sebelumnya, dan lebih stabil karena adanya perbaikan pada bug-bug yang ditemukan pada versi sebelumnya. 
Module merupakan bagian dari code kernel yang tidak secara langsung dimasukan kedalam kernel. Module dapat di masukan atau dihilangkan kedalam kernel yang sedang berjalan kapanpun diperlukan. Module biasanya digunakan untuk mendukung pekerjaan yg tidak di gunakan terus-menerus. misal, jika kita tidak membutuhkan dukungan networking sepanjang waktu, seperti ppp,maka lebih baik ppp dijadikan sebagai module. ketika kita memerlukannya (untuk koneksi ke isp) module kita panggil dan setelah selesai koneksi module dapat kita matikan. penerapan module seperti ini akan mengurangi jumlah memori yang di butuhkan kernel sehingga mempercepat operasi. 
Configurasi Kernel
Ada 3 command yang dapat digunakan untuk mengkonfigurasi kernel 
1.	config (text-based) 
2.	menuconfig (text-based menu) 
3.	xconfig (under X ) 
Diantara ketiga cara tersebut, saya menyarankan untuk menggunakan "menuconfig". karena memiliki tampilan yang lebih menarik dan lebih fleksibel dalam konfigurasi daripada cara pertama (config). 
Untuk memilih module dalam menuconfig di tunjukan dengan tanda (dengan menekan tombol m pada keyboard), jika <> menandakan module ini tidak digunakan. tanda <*> atau [*] (dengan menekan tombol y) digunakan untuk menyertakannya secara langsung kedalam kernel. Selama melakukan konfigurasi tidak banyak perubahan yang saya lakukan, apa yang telah ditandakan atau diberi tanda [*] tidak saya rubah. Kecuali hal-hal tertentu yang memang benar-benar tidak dibutuhkan oleh komputer saya, tanda bintangnya di hapus (biar ngak ikut di compile). 
Selain itu saya melakukan penambahan penandaan sesuai kebutuhan saya, misal [*] untuk menggunakan module, penandaan untuk ppp atau <*> untuk sb16 saya. ini tentu sesuai dengan kebutuhan anda. 
Note: Pastikan pemilihan dilakukan sesuai dengan kebutuhan komputer anda, dan pemilihan menjadi module di lakukan karena penggunaannya dilakukan hanya pada waktu-waktu tertentu saja. 
Utility Module
Berikut ini adalah utility yang saya gunakan dalam menangani module 
1.	lsmod digunakan untuk melihat module yang telah di load.
contoh: # lsmod 
2.	depmod digunakan untuk membuat dependency list module-module yang ada kepada sistem.
contoh: # depmod -a
Bila anda tidak menjalankan perintah ini anda tidak dapat meload module. perinatah "depmod -a" menghasilkan file /lib/modules/2.0.xx/modules.dep yang berisi daftar keterkatian module terhadap module yang lainnya. 
3.	modprobe digunakan untuk load/unload module
contoh: # modprobe -r msdos.o -->untuk unload module (menghapus)
contoh: # modprobe msdos.o -->untuk load module
command "modprobe msdos.o" bila dilihat dengan "lsmod" akan nampak seperti:
4.	       Module   Pages    Used    by
5.	       msdos        2		  0
6.	       fat          6   [msdos]   0
Perhatikan module fat juga diload, padahal perintah modprobe hanya diperin tahkan untuk meload module msdos. hal ini terjadi karena adanya ketergan tungan module, module msdos memerlukan module fat. 
File-file (module) seperti msdos.o bisa dilihat di /lib/modules/2.0.xx/ 
7.	kerneld merupakan daemon yang secara automatis meload dan unload module. dengan menggunakan kerneld kita tidak perlu lagi menggunakan modprobe (untuk load/unload module) secara manual karena daemon ini telah mena nganinya secara automatis.
Anda dapat mengecek apakah "kerneld" telah bekerja dengan baik. Misalnya anda memilih ppp sebagai module (ketika konfigurasi kernel), kemudian anda ketik command "lsmod", anda akan melihat bahwa module ppp belum di load, hal ini terjadi karena "kernel" belum membutuhkannya sehingga "kernel" tidak meminta "kerneld" meload module ppp. Kemudian anda melakukan proses koneksi ke isp (seperti yang biasa anda lakukan), setelah koneksi berhasil anda ketik "lsmod", kini anda dapat melihat bahwa module ppp telah diload. 
Note: bila anda menginginkan menggunakan kerneld pastikan system startup script anda berisi baris /sbin/kerneld (atau check dengan command "ps ax", jika terdapat /sbin/kerneld berarti kerneld telah aktif). bila anda menggunakan RedHat 5.1 jalankan perintah "setup", kemudian pilih "ntsyssv" dan beri tanda [*] pada kerneld. dan jangan lupa sewaktu configurasi kernel (menuconfig) beri tanda [*] pada kernel daemon support. 
Langkah-langkah compile kernel
1.	cd /usr/src 
2.	tar -zxvf linux-2.0.zz.tar.gz (bila source belum di extract) 
3.	cd /usr/src/linux 
4.	make mrproper 
5.	make menuconfig (bisa dengan config atau xconfig) 
6.	make dep 
7.	make clean 
8.	make zImage (biasanya lama) 
9.	make modules 
10.	make modules_install 
11.	cp arch/i386/boot/zImage /boot/vmlinuz-2.0.xx 
12.	depmod -a 
13.	(edit /etc/lilo.conf untuk menulis kernel yang baru dengan mengisi image=/boot/vmlinuz-2.0.xx, ikuti prosedur penulisan seperti yang telah ada) 
14.	lilo (ketik lilo) 
15.	shutdown -r now (reboot) 
Good Luck