OS: PRAKTIKUM — Custom Kernel Ubuntu

From OnnoWiki
Jump to navigation Jump to search

Tujuan

Praktikum ini bertujuan membawa mahasiswa satu tingkat lebih dekat ke dunia kernel engineer. Mahasiswa tidak hanya meng-compile kernel, tetapi juga:

  • Memberi identitas kernel sendiri
  • Menambahkan dukungan file system Windows
  • Mem-boot sistem menggunakan kernel hasil karyanya

Pada tahap ini, mahasiswa akan menyadari bahwa kernel Linux adalah sistem yang sangat dapat dikustomisasi, sebagaimana ditekankan bahwa kernel bukan artefak statis, melainkan living system yang dapat dibentuk sesuai kebutuhan .

Compile Kernel Sendiri

Konteks Akademik

Kernel Linux merupakan komponen paling kritis dari sistem operasi. Ia mengelola CPU, memori, I/O, filesystem, dan device driver.

Dengan meng-compile kernel sendiri, mahasiswa:

  • Memahami struktur internal kernel
  • Melihat langsung dampak konfigurasi terhadap sistem
  • Menghilangkan persepsi bahwa kernel adalah black box

Persiapan Lingkungan Build (Ubuntu 24.04)

Pastikan semua dependency tersedia.

sudo apt update
sudo apt install -y \
  build-essential \
  libncurses-dev \
  bison \
  flex \
  libssl-dev \
  libelf-dev \
  dwarves \
  bc \
  git

Catatan penting:

Kernel Ubuntu modern mewajibkan dukungan BTF, sehingga paket dwarves harus terpasang, jika tidak proses build akan gagal.

Mengambil Kernel Source

mkdir -p ~/kernel
cd ~/kernel
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.8.tar.xz
tar -xvf linux-6.8.tar.xz
cd linux-6.8

Menggunakan Konfigurasi Kernel Ubuntu Agar aman dan stabil, gunakan konfigurasi kernel yang sedang berjalan.

cp /boot/config-$(uname -r) .config
make oldconfig

Tekan Enter untuk menerima nilai default.

Pendekatan ini dianjurkan dalam untuk menghindari kegagalan boot pada pemula .

Compile Kernel Awal

make -j$(nproc)

Estimasi waktu:

  • VM: 20–40 menit
  • Bare metal: 10–25 menit

Enable / Disable Fitur Kernel

Masuk ke Menu Konfigurasi

make menuconfig

Di sinilah mahasiswa secara aktif “mendesain” kernel-nya sendiri.

Contoh Enable / Disable Fitur (Aman & Edukatif)

Menonaktifkan Sound Driver

Cocok untuk server dan VM.

Device Drivers
 └── Sound card support

Ubah menjadi:

Sound card support = [ ]

Dampak:

  • Kernel lebih kecil
  • Boot lebih cepat
  • Tidak ada driver audio yang dimuat

Memastikan File System Penting Aktif

Masuk ke:

File systems

Pastikan aktif (y):

  • EXT4 filesystem support
  • Pseudo filesystems
  • /proc & /sys filesystem

Filesystem root yang tidak aktif = kernel tidak bisa boot.

Menambahkan Nama Versi Kernel (Identitas Kernel)

Konsep Version Signature

Kernel Linux menyediakan opsi untuk menambahkan string identitas khusus, sangat berguna untuk:

  • Identifikasi kernel custom
  • Debugging
  • Dokumentasi praktikum

Menambahkan Nama Kernel di menuconfig

Masuk ke:

General setup
 └── Local version - append to kernel release

Isi dengan:

-itts-custom-kernel

Contoh hasil:

6.8.0-itts-custom-kernel

Praktik ini sangat dianjurkan dalam pembelajaran, agar mahasiswa tidak tertukar dengan kernel bawaan distro.

Simpan Konfigurasi

  • Simpan dan keluar dari menuconfig.
  • File .config akan diperbarui.

Menambahkan File System Windows (NTFS & FAT)

Konteks Akademik

Dalam lingkungan dual-boot atau data exchange, Linux sering berinteraksi dengan file system Windows. Oleh karena itu, kernel harus memiliki dukungan filesystem yang sesuai.

Mengaktifkan NTFS & FAT di Kernel

Masuk ke:

File systems
 └── DOS/FAT/NT Filesystems

Aktifkan:

  • FAT filesystem support
  • VFAT (Windows-95) fs support
  • NTFS filesystem support
  • NTFS write support (opsional, untuk eksperimen)

Set sebagai:

y (built-in) atau
m (module, disarankan)

Module lebih fleksibel dan aman untuk sistem produksi.

Dampak Praktis

Setelah kernel ter-boot:

lsmod | grep ntfs

Atau mount filesystem Windows:

sudo mount -t ntfs /dev/sdb1 /mnt

Recompile & Install Kernel

Recompile Kernel

make -j$(nproc)

Install Module & Kernel

sudo make modules_install
sudo make install

Secara otomatis:

  • Kernel disalin ke /boot
  • initramfs dibuat
  • GRUB diperbarui

Boot Kernel Hasil Compile

Reboot System

sudo reboot

Saat boot:

  • Tekan Shift / Esc
  • Masuk menu GRUB

Pilih kernel dengan nama:

6.8.0-itts-custom-kernel

Verifikasi Kernel Aktif

uname -r

Contoh output:

6.8.0-itts-custom-kernel

Kernel custom berhasil dijalankan

Troubleshooting Wajib

Kernel Tidak Muncul di GRUB

sudo update-grub

Kernel Gagal Boot

Langkah aman:

  • Pilih kernel lama di GRUB
  • Login normal
  • Perbaiki .config
  • Recompile

Kernel lama adalah “lifeboat” mahasiswa.

Refleksi Akademik & OBE

Praktikum ini secara langsung memenuhi profil lulusan:

  • System Builder → membangun kernel sendiri
  • Kernel Tinkerer → mengatur fitur & filesystem

( Low-Level Engineer Mindset → memahami konsekuensi konfigurasi Filosofi-nya, keberanian menyentuh kernel adalah kunci membangun kepercayaan diri mahasiswa di dunia sistem operasi .

Challenge Mandiri (Fun & Menantang)

  • Tambahkan tag nama sendiri pada kernel
  • Bandingkan ukuran kernel sebelum & sesudah NTFS
  • Uji mount partisi Windows di VM
  • Dokumentasikan perubahan .config


Pranala Menarik