Sistem operasi atau distro — distro linux menggunakan kernel linux sebagai kernelnya, kernel sendiri merupakan salah satu bagian wajib dalam sebuah sistem operasi dimana fungsinya adalah agar hardware dapat berkomunikasi dengan software. Setiap distro linux memiliki caranya masing — masing dalam memilih kernel versi apa yang akan digunakan pada sistem operasinya, kernel dengan versi long term support maupun versi latest release.
Sebagai pengguna dari sistem operasi open-source tersebut, pengguna tentu juga diberi kebebasan untuk mengganti kernel yang digunakan, terdapat 2 cara untuk melakukannya yaitu dengan menginstall pre-compiled kernel dengan versi berbeda atau dengan cara compile manual kernel linux dari sumbernya langsung.
Pre-compiled adalah versi binari dimana pengguna tidak perlu melakukan compile langsung dari sumbernya lagi, salah satu kekurangannya adalah pengguna harus puas dengan konfigurasi default yang diberikan. Sedangkan jika melakukan compile sendiri, pengguna memiliki kebebasan untuk mengatur konfigurasi dari kernelnya.
Berikut adalah cara mengganti versi kernel linux dengan install versi pre-compiled dan dengan compile sendiri langsung dari sumbernya.
Install pre-compiled kernel
Di arch linux pengguna dapat menginstall langsung kernel pre-compiled dari repositori resmi maupun dari AUR, dan juga dengan melakukan compile manual. Sebagai contoh versi yang akan di install dan di compile adalah kernel dengan versi 5.10.
Terdapat 2 package yang akan di install untuk mengganti versi kernel, yaitu package linux*
dan linux*-headers
.
sudo pacman -S linux510 linux510-headers
Setelah selesai di download dan di install, selanjutnya adalah dengan mengenerate file image yang akan di gunakan untuk booting.
sudo mkinitcpio -p
Compile Kernel Secara Manual
Mulai melakukan compile kernel pada arch linux, sebagai contoh compile akan dilakukan dengan menggunakan versi 5.10. Pertama buat direktori baru yang akan dijadikan tempat untuk melakukan compile.
mkdir ~/kernel
Kemudian masuk ke direktori tersebut dan download versi kernel yang di inginkan dengan langsung mengunjungi website kernel.org atau dengan mendownloadnya dengan menggunakan wget, sebagai contoh disini kernel yang akan di compile adalah versi 5.10 dimana merupakan kernel versi LTS.
wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-5.10.tar.xz
Setelah download selesai, ekstrak file kernel yang baru saja didownload.
tar xvf linux-5.10.xz
Masuk ke direktori dari file yang baru saja di ekstrak, dan gunakan mrproper
untuk menghapus semua file yang dihasilkan, konfigurasi dan juga beberapa file backup.
mrproper
Mengkonfigurasi kernel yang ingin di install dengan menggunakan konfigurasi default dari arch linux.
zcat /proc/config.gz > .config
Selain dengan membuat konfigurasi yang ingin di install dengan menggunakan konfigurasi default dari arch linux, pengguna juga dapat melakukan konfigurasi manual dengan menggunakan.
make menuconfig
Metode ini tidak disarankan untuk pemula yang belum mengerti tentang cara mengkonfigurasi kernel, lebih baik menggunakan konfigurasi default dari arch linux.
Setelah proses konfigurasi selesai, dapat dilanjutkan dengan proses compile, proses ini akan memakan waktu tergantung dengan spesifikasi processor.
make -$(nproc)
Setelah proses compile selesai, step berikutnya dapat dengan menginstall kernel modules.
make modules_install
Compile kernel akan menghasilkan file dengan kompresi bzImage (big zImage), yang mana harus di copy ke direktori /boot/
, dengan nama yang diganti nama baru kernel yang di awali dengan vmlinuz-
, sebagai contoh karena kernel yang digunakan adalah 5.10 maka nama nya akan dibuat menjadi vmlinuz-linux510
.
sudo cp -v arch/x86_64/boot/bzImage /boot/vmlinuz-linux510
Proses berikutnya adalah dengan copy file mkinitcpio
preset kemudian rename agar sesuai dengan nama kernel yang ditetapkan sebelumnya ketika menyalin bzImage dengan nama yang di awali dengan vmlinuz-
, dalam kasus sekarang linux510
.
sudo cp /etc/mkinitcpio.d/linux.preset /etc/mkinitcpio.d/linux510.preset
Kemudian, edit file /etc/mkinitcpio.d/linux510.preset
dengan text editor apapun sebagai root dan ubah isinya sesuai dengan kernel yang baru saja di compile. Parameter ALL_kver
harus bernilai sama dengan bzImage yang disalin ke /boot
.
ALL_kver="/boot/vmlinuz-linux510"
...
default_image="/boot/initramfs-linux510.img"
...
fallback_image="/boot/initramfs-linux510-fallback.img"
Kemudian jalankan mkinitcpio
.
mkinitcpio -p linux510
Dan reboot, kemudian periksa versi kernel yang digunakan saat ini.
uname -r
Jika versi kernel yang tampil sudah sesuai dengan yang baru saja di compile, maka proses compile kernel telah selesai. Itulah proses install dan compile kernel di arch linux.