Difference between revisions of "OS: PRAKTIKUM — Custom Kernel Ubuntu"
Onnowpurbo (talk | contribs) |
Onnowpurbo (talk | contribs) |
||
| Line 1: | Line 1: | ||
| + | ==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=== | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | 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 \ | |
| − | + | libncurses-dev \ | |
| − | + | bison \ | |
| − | + | flex \ | |
| − | + | libssl-dev \ | |
| − | + | libelf-dev \ | |
| − | + | dwarves \ | |
| − | + | bc \ | |
| − | + | 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 | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
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 | + | |
| − | Compile Kernel Awal | + | Pendekatan ini dianjurkan dalam untuk menghindari kegagalan boot pada pemula . |
| − | make -j$(nproc) | + | |
| − | + | ===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 | |
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 | |
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 | |
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) |
| − | |||
| − | 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
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