3 poin oleh GN⁺ 2025-04-22 | 2 komentar | Bagikan ke WhatsApp
  • 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.gz ke kartu SD, lalu mengonfigurasi SSH, jaringan statis, pkgin, dan lighttpd
  • 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.gz dari 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 root serta menambahkan PermitRootLogin yes ke sshd_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

Manajemen paket dan konfigurasi web server

  • Manajer paket pkgin di NetBSD dipasang dengan pkg_add pkgin setelah 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, dan rsync
  • Web server yang dipilih adalah lighttpd, sesuai untuk lingkungan dengan keterbatasan sumber daya
  • Skrip rc contoh lighttpd disalin ke /etc/rc.d, lalu lighttpd=YES ditambahkan ke /etc/rc.conf sebelum dijalankan
  • Jalur konten statis default adalah /srv/www/htdocs
  • Karena blog ini adalah kumpulan halaman statis yang dibangun dengan Hugo, file cukup disalin dengan rsync lalu 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, dan postfix dimatikan
    • Di /etc/mailer.conf, sendmail, mailq, dan newaliases diubah menjadi /bin/true agar proses terkait tidak berjalan
  • ntpd dinonaktifkan karena memakai 15,6% RAM sistem
  • Sinkronisasi waktu tetap dibutuhkan, jadi ntpdate time.cloudflare.com ditambahkan ke crontab agar 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

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 crontab setiap 15 menit, lalu mengeluarkan status sistem ke file HTML di web root
  • Halaman status menampilkan informasi seperti uname -a dan uptime
  • 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

2 komentar

 
ifmkl 2025-04-22

Saya jadi ingat masa ketika menjalankan server web dengan memasang Debian di ponsel Android yang sudah tidak terpakai.

 
ndrgrd 2025-04-22

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.