Difference between revisions of "OS: Build OpenWRT x86 dari Source"
Onnowpurbo (talk | contribs) (Created page with " BAB 11. Build OpenWRT x86 dari Source Bab ini merupakan titik kulminasi dari perjalanan mahasiswa sebagai Embedded & Network OS Engineer. Jika pada bab sebelumnya mahasiswa m...") |
Onnowpurbo (talk | contribs) |
||
| Line 174: | Line 174: | ||
Bab berikutnya akan membawa OS hasil rakitan ini ke dunia nyata jaringan: | Bab berikutnya akan membawa OS hasil rakitan ini ke dunia nyata jaringan: | ||
routing, firewall, dan mesh network. | routing, firewall, dan mesh network. | ||
| − | |||
==Pranala Menarik== | ==Pranala Menarik== | ||
* [[Sistem operasi]] | * [[Sistem operasi]] | ||
Latest revision as of 08:29, 14 February 2026
BAB 11. Build OpenWRT x86 dari Source Bab ini merupakan titik kulminasi dari perjalanan mahasiswa sebagai Embedded & Network OS Engineer. Jika pada bab sebelumnya mahasiswa menggunakan OpenWRT, maka pada bab ini mahasiswa membangun OpenWRT sendiri dari source code, sehingga benar-benar memahami OpenWRT sebagai produk rekayasa sistem operasi, bukan firmware misterius. Secara pedagogis, bab ini mengintegrasikan konsep: Kernel & user space Cross-compile & build system Filesystem embedded Modular OS design Reproducible system engineering Dengan menyelesaikan bab ini, mahasiswa tidak lagi hanya mengkonfigurasi router, tetapi mampu merakit sistem operasi jaringan dari nol. Build System OpenWRT Konsep Akademik: OpenWRT sebagai Build-Oriented OS Berbeda dengan distribusi Linux general-purpose seperti Ubuntu atau Fedora yang berfokus pada binary package management, OpenWRT dirancang sebagai source-based embedded OS. Artinya: Sistem dibangun dari source Konfigurasi dilakukan sebelum compile Output akhir adalah image OS siap boot Seluruh sistem bersifat deterministik & reproducible Pendekatan ini sangat relevan dengan dunia: Embedded system Network appliance Edge computing Custom hardware Inti filosofi OpenWRT: “You don’t install packages on the device. You design the OS before it exists.”
Struktur Build System OpenWRT Build system OpenWRT terdiri dari beberapa komponen utama: Toolchain → compiler, linker, libc (dibangun otomatis) Kernel Linux → disesuaikan target Base system → init, shell, networking core Package feed → aplikasi tambahan Image builder → menghasilkan firmware akhir Semua dikendalikan oleh GNU Make + Kconfig-style menuconfig, mirip dengan proses compile kernel Linux yang telah dipelajari mahasiswa sebelumnya. Persiapan Lingkungan Build (Ubuntu 24.04) Gunakan Ubuntu Server 24.04 sebagai build host agar konsisten dengan bab-bab sebelumnya. Instal dependensi wajib sudo apt update sudo apt install -y \
build-essential \ clang \ flex bison \ gawk \ gcc-multilib g++-multilib \ gettext \ git \ libncurses-dev \ libssl-dev \ python3 python3-distutils \ rsync unzip zlib1g-dev \ file wget
Catatan penting akademik: Tidak ada proprietary compiler Toolchain akan dibangun otomatis oleh OpenWRT Lingkungan ini reproducible di semua VM mahasiswa Mengambil Source Code OpenWRT Gunakan repositori resmi OpenWRT. cd ~ git clone https://github.com/openwrt/openwrt.git cd openwrt Pilih branch stabil (contoh rilis 23.05): git checkout openwrt-23.05
Verifikasi: git branch Update & Install Feed Package Feed adalah koleksi paket modular OpenWRT. ./scripts/feeds update -a ./scripts/feeds install -a Ini setara dengan: apt update apt install Namun terjadi sebelum OS dibangun, bukan setelah OS berjalan. Package Selection Konsep Akademik: OS Modular & Minimalism OpenWRT mengajarkan prinsip OS minimal: Hanya komponen yang benar-benar dibutuhkan Tidak ada bloat Resource-aware (RAM & storage kecil) Inilah perbedaan fundamental dengan Linux desktop. Menuconfig: Otak dari Build System Jalankan: make menuconfig Mahasiswa akan melihat antarmuka konfigurasi berbasis ncurses.
Target Selection (x86) Pilih: Target System ---> x86 Subtarget ---> x86_64 Target Profile ---> Generic Makna akademik: OpenWRT tidak “satu OS untuk semua” Target menentukan kernel config, driver, dan filesystem Pemilihan Kernel & Base System Disarankan default kernel untuk pembelajaran awal. Aktifkan komponen dasar: BusyBox procd netifd firewall4 (nftables) Ini adalah core networking OS. Pemilihan Package Penting (Contoh Realistis) Contoh paket edukatif & praktis: Networking: ip-full tcpdump iperf3 Management: luci (web UI, opsional) Routing (untuk bab lanjutan): olsrd batman-adv Mahasiswa belajar bahwa setiap centang = konsekuensi ukuran & resource.
Image Generation Konsep Akademik: Image sebagai Produk Akhir OS Pada OpenWRT, hasil compile bukan .deb atau .rpm, melainkan:
- .img.gz
- .vmdk
- .ext4
Ini adalah OS image utuh, siap: Di-boot Di-flash Di-deploy Proses Build Image Mulai proses compile: make -j$(nproc) Waktu: 30–90 menit (tergantung CPU & RAM VM) Nilai pedagogis penting: Mahasiswa melihat toolchain dibangun Kernel dikompilasi Root filesystem dirakit Image di generate otomatis Lokasi Hasil Build Setelah sukses: ls bin/targets/x86/64/ Contoh output: openwrt-23.05-x86-64-generic-ext4-combined.img.gz
Menjalankan Image di VirtualBox Ekstrak image: gunzip openwrt-23.05-x86-64-generic-ext4-combined.img.gz Konversi ke VDI: VBoxManage convertfromraw \
openwrt-23.05-x86-64-generic-ext4-combined.img \ OpenWRT-custom.vdi \ --format VDI
Gunakan OpenWRT-custom.vdi sebagai disk VM. Validasi Sistem Login: login: root Cek sistem: uname -a cat /etc/openwrt_release ip addr Mahasiswa kini booting OS hasil rakitan sendiri. Refleksi Akademik (OBE-Centric) Setelah menyelesaikan bab ini, mahasiswa mampu secara nyata: ✅ Membangun OS embedded dari source ✅ Memahami hubungan target ↔ kernel ↔ filesystem ✅ Mendesain OS sebelum ia berjalan ✅ Membedakan general-purpose OS vs network OS ✅ Berpikir sebagai system builder Challenge Mandiri (Fun & Menantang) Tambahkan tcpdump, rebuild image, uji sniffing Bandingkan image dengan & tanpa luci Aktifkan olsrd, siapkan untuk bab mesh network Ukur ukuran image sebelum & sesudah optimasi
Penutup Jika mahasiswa berhasil menyelesaikan bab ini, maka satu hal jelas: Ia tidak lagi “memakai OpenWRT”. Ia adalah orang yang membuat OpenWRT. Bab berikutnya akan membawa OS hasil rakitan ini ke dunia nyata jaringan: routing, firewall, dan mesh network.