Friday, October 14, 2016

Kompilasi Kernel Linux

Beberapa hari yang lalu ketika saya buka Facebook, saya melihat salah satu dosen membuat status mengenai kompilasi kernel. Menggelitik rasa penasaran saya, akhirnya saya iseng coba kompilasi kernel Linux pada mesin virtual. Sistem Operasi yang saya gunakan adalah Ubuntu 16.04 server karena secara default tidak terinstal Desktop Environmentnya. Versi kernel yang akan dikompilasi adalah versi 4.8.1 (terbaru yang stabil saat ini). Untuk mengkompilasi kernel Linux, dibutuhkan paket-paket yang akan digunakan kerika kompilasi seperti make (tersedia pada paket build-essential), bc, pustaka curses, dan pustaka openssl. Instal terlebih dahulu paket tersebut dengan menggunakan perintah apt.
Sebelum menginstal kernel pastikan ruang penyimpanan Anda lebih dari 40 GB. Pertama kali ketika saya mencoba kompilasi dengan menyediakan ukuran penyimpanan 30 GB ternyata tidak cukup dan proses kompilasi pun saya ulang dengan membuat ulang mesin virtual dengan ukuran penyimpanan 40 GB. Setelah menanyakan ke beberapa rekan, ternyata banyak berkas temporary setelah kompilasi yang menyebabkan semua ruang penyimpanan terpakai.

# apt install build-essential bc libncurses5-dev libncursesw5-dev libssl-dev -y

Kode sumber kernel Linux dapat diunduh pada situs kernel.org. Pada tulisan ini saya menggunakan kernel versi 4.8.1. Setelah diunduh, ekstrak berkas tersebut lalu buat berkas .config dengan menggunakan perintah "make menuconfig".

# wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.8.1.tar.xz
# tar xvf linux-4.8.1.tar.xz
# cd linux-4.8.1
[linux-4.8.1] # make menuconfig

Pilih opsi "Save", lalu pilih "OK" sampai kembali ke menu awal, lalu pilih "Exit". Setelah berkas .config berhasil dibuat, kompilasi kernel dapat dimulai. Gunakan perintah "make" pada direktori kode sumber tersebut, agar kompilasi bekerja secara simultan, saya menambahkan parameter "-j3".

[linux-4.8.1] # make -j3

Tunggu beberapa saat atau beberapa jam (tergantung kecepatan prosesor) karena banyak sekali berkas yang harus dikompilasi. Pada percobaan kala itu, kompilasi kernel pada mesin virtual tersebut memakan waktu sekitar 59 menit (saya menggunakan prosesor dengan kecepatan 3.1 Ghz). Setelah menunggu begitu lama, akhirnya selesai juga. Selanjutnya kompilasi modules dengan menggunakn perintah "make" diikuti "modules".

[linux-4.8.1] # make modules

Kompilasi modules tidak selama ketika kompilasi sebelumnya, kira-kira memakan waktu belasan menit di mesin virtual saya. Setelah selesai, lakukan install modules yang sebelumnya dikompilasi menggunakan perintah "make".

[linux-4.8.1] # make modules_instal

Proses tersebut juga tidak memakan waktu lama. Setelah itu barulah kernel siap diinstal. Gunakan perintah "make" kembali lalu tambahkan opsi "install" setelah perintah tersebut.

[linux-4.8.1] # make install

Ini pun tidak memakan waktu lama. Setelah selesai, silakan reboot sistem operasi. Tidak usah khawatir untuk memperbarui berkas konfigurasi GRUB, karena ketika melakukan instal sudah otomatis memperbarui berkas konfigurasi GRUB agar langsung boot ke kernel yang sudah dikompilasi sebelumnya.

Cukup mudah, bukan? ☺️
Sekian tutorial (atau curhat) mengenai kompilasi kernel Linux ini. Semoga bermanfaat.


Referensi:
  • http://www.thegeekstuff.com/2013/06/compile-linux-kernel

No comments:

Post a Comment