Difference between revisions of "OS: PRAKTIKUM — Custom Kernel Ubuntu"

From OnnoWiki
Jump to navigation Jump to search
(Created page with "PRAKTIKUM 4 — Custom Kernel Ubuntu Tujuan Praktikum ini bertujuan membawa mahasiswa satu tingkat lebih dekat ke dunia kernel engineer. Mahasiswa tidak hanya meng-compile ker...")
 
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
PRAKTIKUM 4 — Custom Kernel Ubuntu
+
==Tujuan==
Tujuan
 
 
Praktikum ini bertujuan membawa mahasiswa satu tingkat lebih dekat ke dunia kernel engineer. Mahasiswa tidak hanya meng-compile kernel, tetapi juga:
 
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
+
* Memberi identitas kernel sendiri
Menambahkan dukungan file system Windows
+
* Menambahkan dukungan file system Windows
Mem-boot sistem menggunakan kernel hasil karyanya
+
* Mem-boot sistem menggunakan kernel hasil karyanya
Pada tahap ini, mahasiswa akan menyadari bahwa kernel Linux adalah sistem yang sangat dapat dikustomisasi, sebagaimana ditekankan dalam sistem-operasi-3.pdf bahwa kernel bukan artefak statis, melainkan living system yang dapat dibentuk sesuai kebutuhan .
+
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
+
==Compile Kernel Sendiri==
 +
===Konteks Akademik===
 
Kernel Linux merupakan komponen paling kritis dari sistem operasi. Ia mengelola CPU, memori, I/O, filesystem, dan device driver.
 
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:
 
Dengan meng-compile kernel sendiri, mahasiswa:
Memahami struktur internal kernel
+
* Memahami struktur internal kernel
Melihat langsung dampak konfigurasi terhadap sistem
+
* Melihat langsung dampak konfigurasi terhadap sistem
Menghilangkan persepsi bahwa kernel adalah black box
+
* Menghilangkan persepsi bahwa kernel adalah black box
Persiapan Lingkungan Build (Ubuntu 24.04)
+
 
 +
===Persiapan Lingkungan Build (Ubuntu 24.04)===
 
Pastikan semua dependency tersedia.
 
Pastikan semua dependency tersedia.
sudo apt update
+
sudo apt update
sudo apt install -y \
+
sudo apt install -y \
  build-essential \
+
  build-essential \
  libncurses-dev \
+
  libncurses-dev \
  bison \
+
  bison \
  flex \
+
  flex \
  libssl-dev \
+
  libssl-dev \
  libelf-dev \
+
  libelf-dev \
  dwarves \
+
  dwarves \
  bc \
+
  bc \
  git
+
  git
 +
 
 
Catatan penting:
 
Catatan penting:
Kernel Ubuntu modern mewajibkan dukungan BTF, sehingga paket dwarves harus terpasang, jika tidak proses build akan gagal.
+
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
  
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
 
Menggunakan Konfigurasi Kernel Ubuntu
 
Agar aman dan stabil, gunakan konfigurasi kernel yang sedang berjalan.
 
Agar aman dan stabil, gunakan konfigurasi kernel yang sedang berjalan.
cp /boot/config-$(uname -r) .config
+
cp /boot/config-$(uname -r) .config
make oldconfig
+
make oldconfig
 +
 
 
Tekan Enter untuk menerima nilai default.
 
Tekan Enter untuk menerima nilai default.
Pendekatan ini dianjurkan dalam sistem-operasi-3.pdf untuk menghindari kegagalan boot pada pemula .
+
 
Compile Kernel Awal
+
Pendekatan ini dianjurkan dalam untuk menghindari kegagalan boot pada pemula .
make -j$(nproc)
+
 
Estimasi waktu:
+
===Compile Kernel Awal===
VM: 20–40 menit
+
 
Bare metal: 10–25 menit
+
make -j$(nproc)
Enable / Disable Fitur Kernel
+
 
Masuk ke Menu Konfigurasi
+
Estimasi waktu:
make menuconfig
+
* 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.
 
Di sinilah mahasiswa secara aktif “mendesain” kernel-nya sendiri.
Contoh Enable / Disable Fitur (Aman & Edukatif)
+
 
Menonaktifkan Sound Driver
+
===Contoh Enable / Disable Fitur (Aman & Edukatif)===
 +
====Menonaktifkan Sound Driver====
 
Cocok untuk server dan VM.
 
Cocok untuk server dan VM.
Device Drivers
+
Device Drivers
└── Sound card support
+
  └── Sound card support
 
Ubah menjadi:
 
Ubah menjadi:
Sound card support = [ ]
+
Sound card support = [ ]
 
Dampak:
 
Dampak:
Kernel lebih kecil
+
* Kernel lebih kecil
Boot lebih cepat
+
* Boot lebih cepat
Tidak ada driver audio yang dimuat
+
* Tidak ada driver audio yang dimuat
Memastikan File System Penting Aktif
+
 
 +
====Memastikan File System Penting Aktif====
 
Masuk ke:
 
Masuk ke:
File systems
+
File systems
 
Pastikan aktif (y):
 
Pastikan aktif (y):
EXT4 filesystem support
+
* EXT4 filesystem support
Pseudo filesystems
+
* Pseudo filesystems
/proc & /sys filesystem
+
* /proc & /sys filesystem
 
Filesystem root yang tidak aktif = kernel tidak bisa boot.
 
Filesystem root yang tidak aktif = kernel tidak bisa boot.
Menambahkan Nama Versi Kernel (Identitas Kernel)
+
 
Konsep Version Signature
+
==Menambahkan Nama Versi Kernel (Identitas Kernel)==
 +
===Konsep Version Signature===
 
Kernel Linux menyediakan opsi untuk menambahkan string identitas khusus, sangat berguna untuk:
 
Kernel Linux menyediakan opsi untuk menambahkan string identitas khusus, sangat berguna untuk:
Identifikasi kernel custom
+
* Identifikasi kernel custom
Debugging
+
* Debugging
Dokumentasi praktikum
+
* Dokumentasi praktikum
Menambahkan Nama Kernel di menuconfig
+
 
 +
===Menambahkan Nama Kernel di menuconfig===
 
Masuk ke:
 
Masuk ke:
General setup
+
General setup
└── Local version - append to kernel release
+
  └── Local version - append to kernel release
 
Isi dengan:
 
Isi dengan:
-itts-custom-kernel
+
-itts-custom-kernel
 
Contoh hasil:
 
Contoh hasil:
6.8.0-itts-custom-kernel
+
6.8.0-itts-custom-kernel
 
Praktik ini sangat dianjurkan dalam pembelajaran, agar mahasiswa tidak tertukar dengan kernel bawaan distro.
 
Praktik ini sangat dianjurkan dalam pembelajaran, agar mahasiswa tidak tertukar dengan kernel bawaan distro.
  
Simpan Konfigurasi
+
===Simpan Konfigurasi===
Simpan dan keluar dari menuconfig.
+
* Simpan dan keluar dari menuconfig.
File .config akan diperbarui.
+
* File .config akan diperbarui.
Menambahkan File System Windows (NTFS & FAT)
+
 
Konteks Akademik
+
==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.
 
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
+
 
 +
===Mengaktifkan NTFS & FAT di Kernel===
 
Masuk ke:
 
Masuk ke:
File systems
+
File systems
└── DOS/FAT/NT Filesystems
+
  └── DOS/FAT/NT Filesystems
 
Aktifkan:
 
Aktifkan:
FAT filesystem support
+
* FAT filesystem support
VFAT (Windows-95) fs support
+
* VFAT (Windows-95) fs support
NTFS filesystem support
+
* NTFS filesystem support
NTFS write support (opsional, untuk eksperimen)
+
* NTFS write support (opsional, untuk eksperimen)
 
Set sebagai:
 
Set sebagai:
y (built-in) atau
+
y (built-in) atau
m (module, disarankan)
+
m (module, disarankan)
 
Module lebih fleksibel dan aman untuk sistem produksi.
 
Module lebih fleksibel dan aman untuk sistem produksi.
Dampak Praktis
+
 
 +
===Dampak Praktis===
 
Setelah kernel ter-boot:
 
Setelah kernel ter-boot:
lsmod | grep ntfs
+
lsmod | grep ntfs
 
Atau mount filesystem Windows:
 
Atau mount filesystem Windows:
sudo mount -t ntfs /dev/sdb1 /mnt
+
sudo mount -t ntfs /dev/sdb1 /mnt
  
Recompile & Install Kernel
+
==Recompile & Install Kernel==
Recompile Kernel
+
===Recompile Kernel===
make -j$(nproc)
+
make -j$(nproc)
Install Module & Kernel
 
  
sudo make modules_install
+
===Install Module & Kernel===
sudo make install
+
sudo make modules_install
 +
sudo make install
 
Secara otomatis:
 
Secara otomatis:
Kernel disalin ke /boot
+
* Kernel disalin ke /boot
initramfs dibuat
+
* initramfs dibuat
GRUB diperbarui
+
* GRUB diperbarui
Boot Kernel Hasil Compile
+
 
 +
===Boot Kernel Hasil Compile===
 
Reboot System
 
Reboot System
sudo reboot
+
sudo reboot
 
Saat boot:
 
Saat boot:
Tekan Shift / Esc
+
* Tekan Shift / Esc
Masuk menu GRUB
+
* Masuk menu GRUB
 
Pilih kernel dengan nama:
 
Pilih kernel dengan nama:
6.8.0-itts-custom-kernel
+
6.8.0-itts-custom-kernel
Verifikasi Kernel Aktif
+
 
uname -r
+
===Verifikasi Kernel Aktif===
 +
uname -r
 
Contoh output:
 
Contoh output:
6.8.0-itts-custom-kernel
+
6.8.0-itts-custom-kernel
 
Kernel custom berhasil dijalankan
 
Kernel custom berhasil dijalankan
  
Troubleshooting Wajib
+
==Troubleshooting Wajib==
Kernel Tidak Muncul di GRUB
+
 
sudo update-grub
+
===Kernel Tidak Muncul di GRUB===
Kernel Gagal Boot
+
sudo update-grub
 +
 
 +
===Kernel Gagal Boot===
 
Langkah aman:
 
Langkah aman:
Pilih kernel lama di GRUB
+
* Pilih kernel lama di GRUB
Login normal
+
* Login normal
Perbaiki .config
+
* Perbaiki .config
Recompile
+
* Recompile
 
Kernel lama adalah “lifeboat” mahasiswa.
 
Kernel lama adalah “lifeboat” mahasiswa.
Refleksi Akademik & OBE
+
 
 +
==Refleksi Akademik & OBE==
 
Praktikum ini secara langsung memenuhi profil lulusan:
 
Praktikum ini secara langsung memenuhi profil lulusan:
System Builder → membangun kernel sendiri
+
* System Builder → membangun kernel sendiri
Kernel Tinkerer → mengatur fitur & filesystem
+
* Kernel Tinkerer → mengatur fitur & filesystem
Low-Level Engineer Mindset → memahami konsekuensi konfigurasi
+
( Low-Level Engineer Mindset → memahami konsekuensi konfigurasi
 
Filosofi-nya, keberanian menyentuh kernel adalah kunci membangun kepercayaan diri mahasiswa di dunia sistem operasi .
 
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
+
==Challenge Mandiri (Fun & Menantang)==
Bandingkan ukuran kernel sebelum & sesudah NTFS
+
* Tambahkan tag nama sendiri pada kernel
Uji mount partisi Windows di VM
+
* Bandingkan ukuran kernel sebelum & sesudah NTFS
Dokumentasikan perubahan .config
+
* Uji mount partisi Windows di VM
 +
* Dokumentasikan perubahan .config
  
  

Latest revision as of 05:07, 15 February 2026

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