Difference between revisions of "OS: PRAKTIKUM — OpenWRT x86 Lab"

From OnnoWiki
Jump to navigation Jump to search
Line 1: Line 1:
 +
Membangun dan Menjalankan Network Operating System secara Nyata
  
PRAKTIKUM 7 — OpenWRT x86 Lab
+
==Tujuan Praktek==
Membangun dan Menjalankan Network Operating System secara Nyata
 
Tujuan Praktek
 
 
Praktik ini dirancang untuk membawa mahasiswa naik level dari pengguna OpenWRT menjadi pembangun dan operator OpenWRT. Mahasiswa tidak hanya menjalankan image siap pakai, tetapi membangun image OpenWRT x86 sendiri, menginstalnya ke lingkungan virtual, menjalankannya sebagai network operating system, serta memperluas fungsinya melalui instalasi paket.
 
Praktik ini dirancang untuk membawa mahasiswa naik level dari pengguna OpenWRT menjadi pembangun dan operator OpenWRT. Mahasiswa tidak hanya menjalankan image siap pakai, tetapi membangun image OpenWRT x86 sendiri, menginstalnya ke lingkungan virtual, menjalankannya sebagai network operating system, serta memperluas fungsinya melalui instalasi paket.
 +
 
Setelah menyelesaikan praktikum ini, mahasiswa diharapkan mampu:
 
Setelah menyelesaikan praktikum ini, mahasiswa diharapkan mampu:
Memahami OpenWRT sebagai sistem operasi embedded & network-oriented
+
* Memahami OpenWRT sebagai sistem operasi embedded & network-oriented
Membangun (build) OpenWRT image x86
+
* Membangun (build) OpenWRT image x86
Menjalankan OpenWRT sebagai VM di VirtualBox
+
* Menjalankan OpenWRT sebagai VM di VirtualBox
Mengelola paket OpenWRT secara modular
+
* Mengelola paket OpenWRT secara modular
Menghubungkan konsep OS (kernel, filesystem, package) dengan fungsi jaringan
+
* Menghubungkan konsep OS (kernel, filesystem, package) dengan fungsi jaringan
 
Praktik ini menjadi jembatan penting menuju bab lanjutan seperti routing, firewall, mesh networking, dan embedded OS engineering.
 
Praktik ini menjadi jembatan penting menuju bab lanjutan seperti routing, firewall, mesh networking, dan embedded OS engineering.
Konteks Akademik
+
 
 +
==Konteks Akademik==
 
Berbeda dengan Linux general-purpose (Ubuntu), OpenWRT dirancang sebagai OS dengan fokus utama pada networking stack. Hampir seluruh desain sistem—mulai dari file system, init system, hingga package manager—dioptimalkan untuk:
 
Berbeda dengan Linux general-purpose (Ubuntu), OpenWRT dirancang sebagai OS dengan fokus utama pada networking stack. Hampir seluruh desain sistem—mulai dari file system, init system, hingga package manager—dioptimalkan untuk:
Jejak sistem yang kecil
+
* Jejak sistem yang kecil
Boot cepat
+
* Boot cepat
Konfigurasi deterministik
+
* Konfigurasi deterministik
Peran sebagai router / network appliance
+
* Peran sebagai router / network appliance
 
Dengan membangun OpenWRT x86, mahasiswa mempelajari bahwa:
 
Dengan membangun OpenWRT x86, mahasiswa mempelajari bahwa:
Sistem operasi tidak selalu berarti desktop atau server, tetapi bisa berupa OS khusus untuk satu domain fungsi.
+
Sistem operasi tidak selalu berarti desktop atau server, tetapi bisa berupa OS khusus untuk satu domain fungsi.
Build OpenWRT Image (x86)
+
 
Persiapan Lingkungan Build (Ubuntu 24.04)
+
==Build OpenWRT Image (x86)==
 +
===Persiapan Lingkungan Build (Ubuntu 24.04)===
 
Pastikan Ubuntu Server/Desktop 24.04 telah memiliki tool dasar untuk build system.
 
Pastikan Ubuntu Server/Desktop 24.04 telah memiliki tool dasar untuk build system.
sudo apt update
+
sudo apt update
sudo apt install -y build-essential clang flex bison \
+
sudo apt install -y build-essential clang flex bison \
gcc g++ make git wget curl unzip \
+
gcc g++ make git wget curl unzip \
libncurses-dev gawk zlib1g-dev \
+
libncurses-dev gawk zlib1g-dev \
python3 python3-distutils rsync file
+
python3 python3-distutils rsync file
  
 
Catatan penting (OS insight):
 
Catatan penting (OS insight):
Tool ini dibutuhkan karena OpenWRT tidak sekadar di-compile, tetapi dibangun melalui cross-compilation toolchain yang lengkap.
+
* Tool ini dibutuhkan karena OpenWRT tidak sekadar di-compile, tetapi dibangun melalui cross-compilation toolchain yang lengkap.
Mengambil Source Code OpenWRT
+
 
 +
===Mengambil Source Code OpenWRT===
 
Gunakan repository resmi OpenWRT (contoh: branch stabil).
 
Gunakan repository resmi OpenWRT (contoh: branch stabil).
git clone https://git.openwrt.org/openwrt/openwrt.git
+
git clone https://git.openwrt.org/openwrt/openwrt.git
cd openwrt
+
cd openwrt
git checkout openwrt-23.05
+
git checkout openwrt-23.05
 
Makna akademik:
 
Makna akademik:
Mahasiswa belajar bahwa OS modern dikembangkan secara kolaboratif melalui version control, bukan file installer statis.
+
* Mahasiswa belajar bahwa OS modern dikembangkan secara kolaboratif melalui version control, bukan file installer statis.
Update & Install Feeds (Package Metadata)
+
 
 +
===Update & Install Feeds (Package Metadata)===
 +
./scripts/feeds update -a
 +
./scripts/feeds install -a
  
./scripts/feeds update -a
 
./scripts/feeds install -a
 
 
Konsep penting:
 
Konsep penting:
 +
 
Feeds adalah mekanisme modular OpenWRT untuk:
 
Feeds adalah mekanisme modular OpenWRT untuk:
Menambahkan fitur
+
* Menambahkan fitur
Memisahkan base system dan aplikasi
+
* Memisahkan base system dan aplikasi
Menghindari monolit seperti distro Linux biasa
+
* Menghindari monolit seperti distro Linux biasa
Konfigurasi Target & Package (menuconfig)
+
 
 +
===Konfigurasi Target & Package (menuconfig)===
 
Masuk ke antarmuka konfigurasi:
 
Masuk ke antarmuka konfigurasi:
make menuconfig
+
make menuconfig
 
Lakukan pengaturan berikut:
 
Lakukan pengaturan berikut:
Target System → x86
+
* Target System → x86
Subtarget → x86_64
+
* Subtarget → x86_64
Target Profile → Generic x86/64
+
* Target Profile → Generic x86/64
Base System
+
* Base System
busybox
+
** busybox
procd
+
** procd
Network
+
* Network
firewall4
+
** firewall4
dnsmasq
+
** dnsmasq
iproute2
+
** iproute2
LuCI (opsional, GUI web)
+
* LuCI (opsional, GUI web)
luci
+
** luci
luci-ssl
+
** luci-ssl
 +
 
 
Refleksi OS:
 
Refleksi OS:
 +
 
Ini adalah contoh nyata kernel–user space separation:
 
Ini adalah contoh nyata kernel–user space separation:
Kernel disiapkan di level target
+
* Kernel disiapkan di level target
User space ditentukan oleh package selection
+
* User space ditentukan oleh package selection
Build Image OpenWRT
+
 
 +
===Build Image OpenWRT===
 
Mulai proses build:
 
Mulai proses build:
make -j$(nproc)
+
make -j$(nproc)
 
Proses ini bisa memakan waktu 30–90 menit (tergantung CPU/RAM).
 
Proses ini bisa memakan waktu 30–90 menit (tergantung CPU/RAM).
 +
 
Jika sukses, image akan berada di:
 
Jika sukses, image akan berada di:
bin/targets/x86/64/
+
bin/targets/x86/64/
 
Contoh file:
 
Contoh file:
openwrt-x86-64-generic-ext4-combined.img.gz
+
openwrt-x86-64-generic-ext4-combined.img.gz
Install OpenWRT Image di VirtualBox
 
Ekstrak & Konversi Image
 
  
gunzip openwrt-x86-64-generic-ext4-combined.img.gz
+
==Install OpenWRT Image di VirtualBox==
 +
===Ekstrak & Konversi Image===
 +
gunzip openwrt-x86-64-generic-ext4-combined.img.gz
 
Konversi ke format VirtualBox:
 
Konversi ke format VirtualBox:
VBoxManage convertfromraw \
+
VBoxManage convertfromraw \
openwrt-x86-64-generic-ext4-combined.img \
+
openwrt-x86-64-generic-ext4-combined.img \
OpenWRT-x86.vdi --format VDI
+
OpenWRT-x86.vdi --format VDI
 
Insight:
 
Insight:
OpenWRT menggunakan filesystem ext4 + squashfs, berbeda dengan distro Linux desktop.
+
* OpenWRT menggunakan filesystem ext4 + squashfs, berbeda dengan distro Linux desktop.
  
Membuat VM OpenWRT di VirtualBox
+
===Membuat VM OpenWRT di VirtualBox===
 
Konfigurasi VM:
 
Konfigurasi VM:
 
Name: OpenWRT-x86
 
Name: OpenWRT-x86

Revision as of 05:47, 15 February 2026

Membangun dan Menjalankan Network Operating System secara Nyata

Tujuan Praktek

Praktik ini dirancang untuk membawa mahasiswa naik level dari pengguna OpenWRT menjadi pembangun dan operator OpenWRT. Mahasiswa tidak hanya menjalankan image siap pakai, tetapi membangun image OpenWRT x86 sendiri, menginstalnya ke lingkungan virtual, menjalankannya sebagai network operating system, serta memperluas fungsinya melalui instalasi paket.

Setelah menyelesaikan praktikum ini, mahasiswa diharapkan mampu:

  • Memahami OpenWRT sebagai sistem operasi embedded & network-oriented
  • Membangun (build) OpenWRT image x86
  • Menjalankan OpenWRT sebagai VM di VirtualBox
  • Mengelola paket OpenWRT secara modular
  • Menghubungkan konsep OS (kernel, filesystem, package) dengan fungsi jaringan

Praktik ini menjadi jembatan penting menuju bab lanjutan seperti routing, firewall, mesh networking, dan embedded OS engineering.

Konteks Akademik

Berbeda dengan Linux general-purpose (Ubuntu), OpenWRT dirancang sebagai OS dengan fokus utama pada networking stack. Hampir seluruh desain sistem—mulai dari file system, init system, hingga package manager—dioptimalkan untuk:

  • Jejak sistem yang kecil
  • Boot cepat
  • Konfigurasi deterministik
  • Peran sebagai router / network appliance

Dengan membangun OpenWRT x86, mahasiswa mempelajari bahwa:

Sistem operasi tidak selalu berarti desktop atau server, tetapi bisa berupa OS khusus untuk satu domain fungsi.

Build OpenWRT Image (x86)

Persiapan Lingkungan Build (Ubuntu 24.04)

Pastikan Ubuntu Server/Desktop 24.04 telah memiliki tool dasar untuk build system.

sudo apt update
sudo apt install -y build-essential clang flex bison \
gcc g++ make git wget curl unzip \
libncurses-dev gawk zlib1g-dev \
python3 python3-distutils rsync file

Catatan penting (OS insight):

  • Tool ini dibutuhkan karena OpenWRT tidak sekadar di-compile, tetapi dibangun melalui cross-compilation toolchain yang lengkap.

Mengambil Source Code OpenWRT

Gunakan repository resmi OpenWRT (contoh: branch stabil).

git clone https://git.openwrt.org/openwrt/openwrt.git
cd openwrt
git checkout openwrt-23.05

Makna akademik:

  • Mahasiswa belajar bahwa OS modern dikembangkan secara kolaboratif melalui version control, bukan file installer statis.

Update & Install Feeds (Package Metadata)

./scripts/feeds update -a
./scripts/feeds install -a

Konsep penting:

Feeds adalah mekanisme modular OpenWRT untuk:

  • Menambahkan fitur
  • Memisahkan base system dan aplikasi
  • Menghindari monolit seperti distro Linux biasa

Konfigurasi Target & Package (menuconfig)

Masuk ke antarmuka konfigurasi:

make menuconfig

Lakukan pengaturan berikut:

  • Target System → x86
  • Subtarget → x86_64
  • Target Profile → Generic x86/64
  • Base System
    • busybox
    • procd
  • Network
    • firewall4
    • dnsmasq
    • iproute2
  • LuCI (opsional, GUI web)
    • luci
    • luci-ssl

Refleksi OS:

Ini adalah contoh nyata kernel–user space separation:

  • Kernel disiapkan di level target
  • User space ditentukan oleh package selection

Build Image OpenWRT

Mulai proses build:

make -j$(nproc)

Proses ini bisa memakan waktu 30–90 menit (tergantung CPU/RAM).

Jika sukses, image akan berada di:

bin/targets/x86/64/

Contoh file:

openwrt-x86-64-generic-ext4-combined.img.gz

Install OpenWRT Image di VirtualBox

Ekstrak & Konversi Image

gunzip openwrt-x86-64-generic-ext4-combined.img.gz

Konversi ke format VirtualBox:

VBoxManage convertfromraw \
openwrt-x86-64-generic-ext4-combined.img \
OpenWRT-x86.vdi --format VDI

Insight:

  • OpenWRT menggunakan filesystem ext4 + squashfs, berbeda dengan distro Linux desktop.

Membuat VM OpenWRT di VirtualBox

Konfigurasi VM: Name: OpenWRT-x86 Type: Linux Version: Other Linux (64-bit) RAM: 256–512 MB CPU: 1 core Disk: OpenWRT-x86.vdi Network Adapter 1: Internal Network Adapter 2: NAT (opsional) Boot VM → login: login: root password: (kosong) Verifikasi sistem: uname -a cat /etc/openwrt_release ip addr Menjalankan OpenWRT sebagai Network OS Konfigurasi Jaringan Dasar Edit konfigurasi network: vi /etc/config/network Contoh LAN static IP: config interface 'lan'

   option device 'eth0'
   option proto 'static'
   option ipaddr '192.168.1.1'
   option netmask '255.255.255.0'

Restart network: /etc/init.d/network restart Tes dari Ubuntu host: ping 192.168.1.1

Makna akademik: Routing, ARP, ICMP, dan IP tetap dikendalikan kernel networking stack, meskipun konfigurasi dilakukan di user space. Install & Kelola Packages OpenWRT Update Repository Package

opkg update Install Paket Dasar Contoh paket penting: opkg install htop tcpdump iperf3 Verifikasi: htop tcpdump -i eth0 iperf3 --version Perbandingan OS: apt (Ubuntu) → distro general-purpose opkg (OpenWRT) → embedded & network OS Lebih kecil, cepat, dan deterministik. (Opsional) Install LuCI Web Interface

opkg install luci luci-ssl /etc/init.d/uhttpd restart Akses via browser: https://192.168.1.1 Refleksi Akademik (OBE-Oriented) Setelah menyelesaikan PRAKTIK 7, mahasiswa telah: ✅ Membangun OpenWRT dari source ✅ Memahami build system embedded OS ✅ Menjalankan OpenWRT sebagai network operating system ✅ Mengelola package secara modular ✅ Menghubungkan konsep OS (kernel, filesystem, user space) dengan fungsi jaringan nyata Ini bukan sekadar lab teknis, tetapi latihan berpikir sebagai Embedded & Network OS Engineer. Tantangan Lanjutan (Fun & Menantang) Tambahkan firewall rule via /etc/config/firewall Uji routing antar dua VM Ubuntu melalui OpenWRT Bandingkan boot time OpenWRT vs Ubuntu Siapkan OpenWRT sebagai node mesh (OLSR/BATMAN) untuk praktik berikutnya Filosofi Penutup “Kalau Anda bisa membangun OpenWRT sendiri, maka router bukan lagi kotak hitam—ia adalah sistem operasi yang Anda pahami dan kuasai.”


Pranala Menarik