Blog ini dihosting di Nintendo Wii
(blog.infected.systems)- Nintendo Wii sungguhan melayani blog Hugo statis ini dengan NetBSD 10.1 dan
lighttpd, dan selama eksperimen berlangsung pembaca sedang melihat halaman yang disajikan langsung dari Wii - Tidak seperti port hobi lama, port NetBSD untuk Wii menyediakan rilis stabil terbaru dan build HEAD harian, sehingga kondisinya cukup terawat untuk menjalankan beban kerja operasional nyata
- Instalasinya mengikuti alur menjalankan Homebrew Channel lewat softmod Wii, menulis
wii.img.gzke kartu SD, lalu mengonfigurasi SSH, jaringan statis,pkgin, danlighttpd - CPU single-core PowerPC 750 keluarga Wii bisa menangani HTTP statis, tetapi sulit memproses banyak permintaan enkripsi TLS modern secara paralel, sehingga Caddy menangani terminasi TLS dan pengelolaan sertifikat ACME di bagian depan
- Ada kendala bahwa setelah reboot dibutuhkan Wiimote dan sensor bar, tetapi dengan daya idle sekitar 18W dan pemakaian listrik bulanan sekitar 13,2 kWh, eksperimen yang tampak seperti main-main ini menjadi lingkungan belajar infrastruktur yang nyata
Eksperimen melayani blog sungguhan dari Wii
- Selama eksperimen berlangsung, Nintendo Wii sungguhan menyajikan blog ini
- Beban sistem Wii bisa dilihat di live(-ish) status page
- Titik awalnya adalah ketertarikan untuk menjalankan sistem operasi umum pada perangkat keras yang bukan ditujukan untuk tujuan umum
- Sebelumnya juga ada contoh seperti Yellow Dog Linux di PS3, PS2 Linux, Dreamcast Linux, dan PSPLinux
- Namun image kernel PSP Linux terakhir dibangun pada 2008, dan Dreamcast Linux memakai kernel 2.4.5 yang dibangun pada 2001, sehingga tidak cocok untuk beban kerja operasional jangka panjang
Port NetBSD Wii yang memungkinkan eksperimen ini
- Di bagian media instalasi situs web NetBSD, Wii ditampilkan bersama target kelas utama seperti Raspberry Pi dan mesin x86 biasa
- Port NetBSD untuk Wii mengarah ke rilis stabil terbaru NetBSD 10.1 pada Desember 2024
- daily HEAD builds juga dikonfigurasi untuk Wii
- Karena status pemeliharaannya masih hidup, eksperimen untuk menerapkan beban kerja operasional nyata ke Wii menjadi mungkin, dan beban kerja itu adalah blog ini
Perangkat keras dan kondisi performa
- Wii untuk eksperimen ini adalah perangkat yang didapat dari EMF Camp 2024 Swap Shop
- CPU Broadway single-core Wii merupakan kelanjutan dari keluarga IBM PowerPC 750
- Garis keturunannya bisa ditelusuri hingga Apple Bondi Blue iMac tahun 1998
- Chip komersial setara, PowerPC 750CL, memiliki TDP maksimum 9,8W dan clock sekitar 33% lebih tinggi daripada versi yang dipakai di Wii
- Karena kondisinya single-core, berbasis arsitektur akhir 1990-an, dan TDP di bawah 10W, kemampuan komputasinya terbatas
- Keluarga PowerPC 750 juga dipakai di bidang antariksa dan satelit, dengan versi hardened terhadap radiasi yaitu RAD750
- Contoh penggunaan PowerPC 750 bisa ditemukan dalam materi NASA
- Ada juga contoh pemakaian chip terkait pada rover Mars Curiosity) dan Perseverance)
Softmod Wii dan instalasi NetBSD
- Wilbrand exploit digunakan untuk menjalankan kode yang tidak ditandatangani di Wii
- Wilbrand memanfaatkan fitur penyimpanan dan pemuatan pesan pada Wii Message Board melalui kartu SD untuk memungkinkan eksekusi kode tanpa tanda tangan
- Melalui proses ini, HackMii diboot dan Homebrew Channel dipasang
- Pekerjaan ini memerlukan alamat MAC konsol dan pembuatan file untuk ditaruh di kartu SD, dan alat berbasis browser menangani proses tersebut
- Ada masalah saat menjalankan Wilbrand dengan kartu SDHC besar, dan kartu non-SDHC 1GB bekerja paling baik
- Kartu SD untuk NetBSD disiapkan dengan mengunduh image
wii.img.gzdari situs NetBSD- Wii tidak mendukung SDXC ke atas, sehingga dibatasi sampai 32GB
- NetBSD lebih tidak sensitif daripada Wilbrand terhadap kartu yang lebih besar, jadi dipilih kartu SDHC 32GB yang cepat dan berkualitas baik
- Dengan Raspberry Pi Imager, dekompresi image, penulisan, dan verifikasi bisa ditangani sekaligus
- Image NetBSD Wii memiliki metadata dan struktur agar bisa diboot langsung dari Homebrew Channel seperti aplikasi homebrew biasa
- Penghargaan layak diberikan kepada pengembang NetBSD Jared McNeill, yang tampaknya merupakan penulis utama port Wii ini
Konfigurasi sistem awal
- Setelah NetBSD boot, keyboard USB berfungsi normal, tetapi SSH disiapkan untuk administrasi jarak jauh
- Daemon SSH berjalan secara default, dan perlu menetapkan kata sandi
rootserta menambahkanPermitRootLogin yeskesshd_config - Konfigurasi jaringan statis dilakukan dengan mengedit
/etc/ifconfig.axe0 - Adaptor jaringan yang digunakan adalah RVL-015 Wii LAN Adapter resmi
- Di
dmesg, perangkat itu muncul sebagai pengendali Ethernet ASIX Electronics AX88772 USB 2.0 10/100 - Setelah NetBSD boot, driver NetBSD bisa digunakan sehingga adaptor USB umum secara teori juga diperkirakan akan berfungsi
- Di
Manajemen paket dan konfigurasi web server
- Manajer paket
pkgindi NetBSD dipasang denganpkg_add pkginsetelah menetapkan variabel lingkungan - Jalur paket yang dipakai adalah
https://cdn.NetBSD.org/pub/pkgsrc/packages/NetBSD/evbppc/10.1/All/ - Paket yang dipasang mencakup
bsdfetch,iperf3,lighttpd,nano, danrsync - Web server yang dipilih adalah lighttpd, sesuai untuk lingkungan dengan keterbatasan sumber daya
- Skrip rc contoh
lighttpddisalin ke/etc/rc.d, lalulighttpd=YESditambahkan ke/etc/rc.confsebelum dijalankan - Jalur konten statis default adalah
/srv/www/htdocs - Karena blog ini adalah kumpulan halaman statis yang dibangun dengan Hugo, file cukup disalin dengan
rsynclalu langsung dilayani lewat HTTP standar
Beban TLS dan reverse proxy Caddy
- Dari hasil uji beban jangka panjang, PowerPC 750 tampak terbebani saat harus melayani beberapa halaman yang dienkripsi dengan TLS modern secara bersamaan
- Untuk membebaskan sumber daya, beberapa layanan yang berjalan default di NetBSD dinonaktifkan
devpubd,dhcpcd,inetd,mdnsd, danpostfixdimatikan- Di
/etc/mailer.conf,sendmail,mailq, dannewaliasesdiubah menjadi/bin/trueagar proses terkait tidak berjalan
ntpddinonaktifkan karena memakai 15,6% RAM sistem- Sinkronisasi waktu tetap dibutuhkan, jadi
ntpdate time.cloudflare.comditambahkan kecrontabagar berjalan setiap jam pada menit:42 - Pada akhirnya, terminasi TLS blog ini ditangani oleh instance Caddy di depan Wii
- Caddy bekerja sebagai reverse proxy dan menangani enkripsi serta pengelolaan sertifikat ACME
- Opsi caching tidak diaktifkan di Caddy
- Semua permintaan diproses langsung oleh Wii, dan termasuk gambar pada tulisan ini, pemuatan satu halaman penuh ukurannya hampir tepat 1MB
- Permintaan dengan User-Agent scraper yang sudah dikenal diblokir di lapisan Caddy agar tidak diteruskan ke Wii
- Untuk kriteria pemblokiran digunakan known scraper User Agents
Konfigurasi pemantauan status
- Dengan memindahkan terminasi TLS ke Caddy, Prometheus exporter milik Caddy bisa digunakan
- Data ini dikirim ke stack InfluxDB + Grafana untuk memantau beban situs
- Di Wii sendiri tidak dijalankan proses tambahan seperti Prometheus exporter
- Sebagai gantinya, dibuat skrip shell sederhana yang dijalankan dari
crontabsetiap 15 menit, lalu mengeluarkan status sistem ke file HTML di web root - Halaman status menampilkan informasi seperti
uname -adanuptime - Halaman status lengkap bisa dilihat di blog.infected.systems/status
Batasan operasional dan konsumsi daya
- Seluruh konfigurasi bekerja jauh lebih baik dari perkiraan dan instalasinya juga mudah
- Saat NetBSD direboot, yang dimulai ulang bukan hanya aplikasi NetBSD melainkan seluruh konsol Wii sehingga kembali ke Wii Menu
- Setelah patch kernel atau upgrade sistem, Wiimote dan sensor bar menjadi komponen penting infrastruktur operasional
- Dalam pengujian berbasis pemantauan UPS, Wii menambah sekitar 18W pada konsumsi total homelab saat idle
- Perhitungan menunjukkan konsumsi listrik bulanan sekitar 13,2 kWh
- Berdasarkan tarif listrik Inggris, biayanya sekitar £3.47 per bulan, lebih murah daripada VPS dari sebagian penyedia cloud
- Ini adalah eksperimen akhir pekan panjang yang menyenangkan, dan jika terus berjalan baik, rencananya akan dipertahankan untuk sementara waktu
- Ada ketertarikan pada eksperimen semacam ini karena pembelajaran terasa baik dalam lingkungan deployment dengan batasan yang sengaja diterapkan
Pembaruan Februari 2026
- Setelah tulisan dipublikasikan, beberapa orang memberi tahu cara membuat Wii langsung boot ke NetBSD
- Caranya adalah memasang Priiloader dan mengaturnya agar otomatis boot ke aplikasi Homebrew yang menjalankan NetBSD
- Dengan pengaturan ini, operasi headless penuh menjadi mungkin tanpa Wiimote yang sebelumnya bersifat mission-critical
2 komentar
Saya jadi ingat masa ketika menjalankan server web dengan memasang Debian di ponsel Android yang sudah tidak terpakai.
Awalnya saya heran kenapa Caddy dan lighttpd dipakai bersamaan, tetapi sepertinya hanya file statis yang ditangani di Wii dan sisanya ditangani oleh Caddy di mesin lain.