Blog hosted on a Nintendo Wii by edent
If you are reading this message, the experiment below is still ongoing. This page was served to you by a real Nintendo Wii.
You can check the Wii’s live status page for system load info.
For a long time, I’ve enjoyed the idea of running general-purpose operating systems on decidedly not-general-purpose hardware.
There’s been a few good examples of this over the years, including a few which were officially sanctioned by the OEM. Back in the day, my PS3 ran Yellow Dog Linux, and I’ve been searching for a (decently priced) copy of PS2 Linux for 10+ years at this point.
There are some other good unofficial examples, such as Dreamcast Linux, or PSPLinux.
But what a lot of these systems have in common is that they’re now very outdated. Or they’re hobbyist ports that someone got running once and where longer-term support never made it upstream. The PSP Linux kernel image was last built in 2008, and Dreamcast Linux is even more retro, using a 2.4.5 kernel built in 2001.
I haven’t seen many of these projects where I’d be comfortable running one as part of an actual production workload. Until now.
While browsing the NetBSD website recently, I noticed the fact that there was a ‘Wii’ option listed right there on the front page in the ‘Install Media’ section, nestled right next to the other first-class targets like the Raspberry Pi, and generic x86 machines.
Unlike the other outdated and unmaintained examples above, clicking through to the NetBSD Wii port takes you to the latest stable NetBSD 10.1 release from Dec 2024. Even the daily HEAD builds are composed for the Wii.
As soon as I discovered this was fully supported and maintained, I knew I had to try deploying an actual production workload on it. That workload is the blog you’re reading now.
Finding a sacrificial Wii
Our story begins at the EMF Camp 2024 Swap Shop – your premier source for pre-loved game consoles, cardboard boxes full of 56k modems, and radioactive orphan sources.
I picked this up expecting to use it for homebrew games and emulation mostly, but I don’t think it expected this fate.
Is it fast enough?
So we have a spare Wii. And an OS with mainline support. But is a Wii actually fast enough to handle this as a production workload?
The single-core ‘Broadway’ CPU in the Wii is part of IBM’s continued evolution of the PowerPC 750 lineup, dating all the way back to Apple’s iconic 1998 Bondi Blue fishtank iMac. Although Broadway is one of the later 750 revisions, the commercially-available equivalent chip – the PowerPC 750CL – has a maximum TDP of only 9.8 W, and clocks about 33% higher than the version in the Wii.
So with a single-core chip based on a late-90s architecture and a TDP well under 10 W, it’s clear that we’re probably fairly contstrained here in terms of compute performance.
With that said, one of the other PowerPC 750 deployments you might be familiar with is currently floating 1,500,000 km from Earth mapping the deepest reaches of the universe in more detail than humanity has ever seen before. So if I can’t get this thing serving a static website, then I think it’s probably time to execute on my long-term plan of retiring from tech and opening a cat cafe.
On a more serious note, you can read about the James Wii Space Telescope’s use of the PowerPC 750 in this NASA presentation. The 750 actually gets a lot of use in spaceflight and satellite applications because there is a radiation-hardened version available, known as the RAD750. Some other recent uses of the chip include both the Mars Curiosity and Perseverance rovers.
Installing NetBSD on the Wii
Okay, Nintendo lawyers avert your eyes.
It had been a long time since I softmodded a Wii. I remember the Twilight Hack, which involved exploiting a buffer overflow in the Twilight Princess save game handler to run unsigned code.
Things are much easier these days. The Wilbrand exploit seems to be what people generally recommend now. Like some other exploits, it takes advantage of the fact that an SD card can be used to store and retrieve messages from the Wii Message Board. Exploting this allows unsigned code execution, which allows us to boot the HackMii tool that installs the Homebrew Channel.
It’s an easy mod which just requires knowing the MAC address of the console and generating a few files to load from an SD card. There’s a handy browser-based tool here which does all of the hard work for you.
I did have some issues using a larger SDHC card to run the Wilbrand exploit, but had the best luck with a 1GB non-SDHC card. SD card compatibility seems to be a known issue for Wii homebrew, but overall I’d still call the process fairly painless.
Once we’ve hacked the console, we should have the Homebrew Channel available in our Wii Menu:
Now we can prepare our NetBSD SD card. We do this by downloading the wii.img.gz
image from the front page of the NetBSD site.
For this card, I opted to use a fairly speedy 32GB SDHC card. The Wii doesn’t support SDXC or newer cards, which means we’re limited to 32GB. Larger flash devices also generally tend to be faster and more resilient than smaller ones. And NetBSD seems a lot less bothered by living on a larger card than the Wilbrand exploit was. So overall I’d recommend getting a decent quality fast 32GB card if you want to try this.
We can unpack and write this image however we please, but I’m a fan of usi
17 Comments
rubatuga
Cool, but I sense a slowdown!
benwilber0
got hugged.
Maybe the next post will say "Blog is hosted on a Nintendo Wii (running Varnish)"
jarbus
beautiful
MagicRailAPI
That Wii just happened to be running inside a Hetzner data center?
joseda-hg
Based on previous experience with Wii homebrew, you could probably circumvent the (expected) reliability issues of the smaller SD by swapping to a regular USB thumbdrive post exploit, ports are only 2.0 but you're bound by processor anyway
ObscureScience
Anyone knows if the Starlet co-processor is accessible from NetBSD?
RockRobotRock
>I was doing this bit using a capture card and Photo Booth on macOS which doesn’t actually support disabling the image-flip on the video feed
Please use OBS
CommenterPerson
Interesting work! Definitely deserved the #1 spot on HN
allegrotim
this is pure beauty. Do you think something like this can be done on a NES? like a simple CGI website
chandlerswift
https://web.archive.org/web/20250421184947/https://blog.infe…
bennydog224
Not to be a stickler, but the blog isn't actually FULLY hosted on the Wii until you move that Caddy instance to it or drop it :)
Nice work.
jandrese
Performance is not bad. It's clear they aren't using Nintendo's TCP stack, as it was notoriously terrible on the Wii.
greeniskool
> Rebooting NetBSD reboots the whole console, and not just the NetBSD ‘app’, so you’ll find yourself back at the Wii Menu after any kernel patch or system upgrade.
This can be mitigated by installing Priiloader, and having it autoboot into either the Homebrew Channel or the NetBSD .dol file
Bluecobra
Really impressed by how low the load average is (0.06 @15 min).
tech234a
For those unaware, the "SSL Added and removed here!" image is a reference to a diagram describing unencrypted communications between Google datacenters that leaked from the NSA in 2013 [1].
[1] https://arstechnica.com/tech-policy/2013/10/new-docs-show-ns…
aaronday
[dead]
sadeshmukh
FYI – instead of Photo Booth you can use Quicktime Player and "create new movie recording". I believe that should fix the image flipping problem.