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

From OnnoWiki
Jump to navigation Jump to search
(Created page with " PRAKTIKUM 7 — OpenWRT x86 Lab Membangun dan Menjalankan Network Operating System secara Nyata Tujuan Praktek Praktik ini dirancang untuk membawa mahasiswa naik level dari p...")
 
 
(3 intermediate revisions by the same user not shown)
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
Type: Linux
+
* Type: Linux
Version: Other Linux (64-bit)
+
* Version: Other Linux (64-bit)
RAM: 256–512 MB
+
* RAM: 256–512 MB
CPU: 1 core
+
* CPU: 1 core
Disk: OpenWRT-x86.vdi
+
* Disk: OpenWRT-x86.vdi
Network
+
* Network
Adapter 1: Internal Network
+
** Adapter 1: Internal Network
Adapter 2: NAT (opsional)
+
** Adapter 2: NAT (opsional)
 +
 
 
Boot VM → login:
 
Boot VM → login:
login: root
+
* login: root
password: (kosong)
+
* password: (kosong)
 +
 
 
Verifikasi sistem:
 
Verifikasi sistem:
uname -a
+
uname -a
cat /etc/openwrt_release
+
cat /etc/openwrt_release
ip addr
+
ip addr
Menjalankan OpenWRT sebagai Network OS
+
 
Konfigurasi Jaringan Dasar
+
==Menjalankan OpenWRT sebagai Network OS==
 +
===Konfigurasi Jaringan Dasar===
 
Edit konfigurasi network:
 
Edit konfigurasi network:
vi /etc/config/network
+
vi /etc/config/network
 
Contoh LAN static IP:
 
Contoh LAN static IP:
config interface 'lan'
+
config interface 'lan'
    option device 'eth0'
+
    option device 'eth0'
    option proto 'static'
+
    option proto 'static'
    option ipaddr '192.168.1.1'
+
    option ipaddr '192.168.1.1'
    option netmask '255.255.255.0'
+
    option netmask '255.255.255.0'
 
Restart network:
 
Restart network:
/etc/init.d/network restart
+
/etc/init.d/network restart
 
Tes dari Ubuntu host:
 
Tes dari Ubuntu host:
ping 192.168.1.1
+
ping 192.168.1.1
  
 
Makna akademik:
 
Makna akademik:
Routing, ARP, ICMP, dan IP tetap dikendalikan kernel networking stack, meskipun konfigurasi dilakukan di user space.
+
* 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 & Kelola Packages OpenWRT==
Install Paket Dasar
+
===Update Repository Package===
 +
opkg update
 +
 
 +
===Install Paket Dasar===
 
Contoh paket penting:
 
Contoh paket penting:
opkg install htop tcpdump iperf3
+
opkg install htop tcpdump iperf3
 
Verifikasi:
 
Verifikasi:
htop
+
htop
tcpdump -i eth0
+
tcpdump -i eth0
iperf3 --version
+
iperf3 --version
 
Perbandingan OS:
 
Perbandingan OS:
apt (Ubuntu) → distro general-purpose
+
* apt (Ubuntu) → distro general-purpose
opkg (OpenWRT) → embedded & network OS
+
* opkg (OpenWRT) → embedded & network OS
 
Lebih kecil, cepat, dan deterministik.
 
Lebih kecil, cepat, dan deterministik.
(Opsional) Install LuCI Web Interface
 
  
opkg install luci luci-ssl
+
===(Opsional) Install LuCI Web Interface===
/etc/init.d/uhttpd restart
+
opkg install luci luci-ssl
 +
/etc/init.d/uhttpd restart
 
Akses via browser:
 
Akses via browser:
https://192.168.1.1
+
https://192.168.1.1
Refleksi Akademik (OBE-Oriented)
+
 
 +
==Refleksi Akademik (OBE-Oriented)==
 
Setelah menyelesaikan PRAKTIK 7, mahasiswa telah:
 
Setelah menyelesaikan PRAKTIK 7, mahasiswa telah:
✅ Membangun OpenWRT dari source
+
* ✅ Membangun OpenWRT dari source
✅ Memahami build system embedded OS
+
* ✅ Memahami build system embedded OS
✅ Menjalankan OpenWRT sebagai network operating system
+
* ✅ Menjalankan OpenWRT sebagai network operating system
✅ Mengelola package secara modular
+
* ✅ Mengelola package secara modular
✅ Menghubungkan konsep OS (kernel, filesystem, user space) dengan fungsi jaringan nyata
+
* ✅ Menghubungkan konsep OS (kernel, filesystem, user space) dengan fungsi jaringan nyata
 
Ini bukan sekadar lab teknis, tetapi latihan berpikir sebagai Embedded & Network OS Engineer.
 
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.”
 
  
 +
==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==
 
==Pranala Menarik==
  
 
* [[Sistem operasi]]
 
* [[Sistem operasi]]

Latest revision as of 06:20, 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