It has been tried a lot over the years and I knew it had to be possible but never actually got it running. Until a few days ago when I decided to take a risk with wii-linux-ngx and just write the diskimage to an SD card. It was not plug-and-play AT ALL!!! It would not boot with priiloader complaining about missing bootmii so after putting that on the card I got into the bootloader screen....yay!!
Then selecting the option to load the Linux kernel I saw actual Linux running on my Wii and I thought it was the coolest thing ever!!! It generated an SSH hostkey at first boot which is nice since that would make it unique and being able to login with SSH is even more awesome!!!! After the first boot completed I logged in as root and looked around a bit to see if it was a legit Linux running here, and it sure looks like it is!! Memory and CPU info looks good although memory usage is a bit high to my liking for running on the Wii. And this was a hint to the rest of the issues I ran into......
The release of wii-linux-ngx was from 2017 and is based on Debian 8 (jessie) which is one of the last that support the PowerPC 32bit CPU of the Wii. Being a little "out-of-date" is not really an issue but when the encryption keys for the package repository expired only a month ago.....that is an issue!!! A huge one to be more exact. Normally "apt-get update" should correct the problem from every guide and forum post I could find about the expired key's but nothing helped. Without apt-get update the package list is out of date, and no new software can be installed.
Beyond this issue the ext3 partition was only 512MB with a few MB's free space left so I first had to expand it on my desktop to the full 16GB of my SD card. And while I was add it also added a 1GB swap partition to at least add some virtual memory. This process took FOREVER since the card I choose was kind of slow....but after maybe 30min's or something the partitions were expanded and created. After booting the Wii again I saw the swap was not used automatically and I had to manually enable it. So i did. But even then it never got used at all! And the biggest reason I need swap is because everything I tried....including updating the package list....seemed to require more than 20MB of RAM that was free after booting. It resulted in "hanging" processes that did not seem to move anymore but I could still kill the process with CTRL-C so it was not a total lockup. The frustrating part is that Linux runs fine on embeded systems which only have 4-16MB of RAM!!! And since the Wii has 84MB of RAM in total it should at least be more capable of running linux and updating the packelist to install new packages!!!!!
The the SSH ability I talked about I was able to connect but not login as root. I expected that as it's a safety thing in Linux to not allow this so I created a new user named Wii...and now I could login with SSH remotely into my Wii!!! Awesome right!!!! ......but if you can't do anything useful it's pointless to get into it. I could even use SFTP to browse the filesystem and look at at the configuration files...but not edit them as that needs root permissions. I tried uploading a large 80MB file to it with SFTP and it got stuck around 20MB every single time I tried. The frustrating thing was that a full reboot of the Wii is required to try again....otherwise it get's stuck directly! Even downloading the same file with wget on the Wii directly got stuck around 17-20MB and my frustration level kept rising and rising.....
Then I thought lets try something funky with a "chroot" environment and try install "adelie linux" into a subdir. Which was the 80MB file I was trying to get on there actually but ended up putting the card in my PC to get it there. Then unpacking it was slow but it worked and after a few other Linux tricks I had network access in the chrooted Adelie linux environment. Having no experience with adelie gave it's own set of problems but let's say "pkg update" is equivalent to "apt-get update" and it should be getting the keys and package list and stuff. While it worked after a little fight with the network settings it hang at 12% updating for the same reason as before.....out of memory!!!!!!!!!!
For now I have kind of given up on getting useful things done with wii-linux-ngx since I have a lot of things to do already with the Wii Mini and BatteryCheck of course. But even with my complaining and ranting above.....a lot of respect and credits to everyone involved in getting a modern Linux running on the Wii! (https://neagix.github.io/wii-linux-ngx/)
I have a lot of ideas of my own to get a clean adelie linux image with a fresh fully custom Wii Linux Kernel up and running but it needs a ton of research. The frustrating part is that Linux should run fine on embeded systems which only have 4-16MB of RAM and they run perfectly fast!!Never compiled a Linux kernel and make it work is one of the obstacles I need to take. But the advantage of a custom build is leaving out everything not required on the Wii, like maybe USB3 and firewire drivers for example. The good thing is that even the latest official Linux kernel source code still contains special Wii hardware support so it's not impossible.
My useful goal of Linux on the Wii with low memory usage is the ability to quickly test hardware related testing of stuff I want to know. Like how fast can the memorycard, gamecube controller ports, USB, NAND, SD, etc interfaces transfer data. I can do that with homebrew of course....but doing quick tests with something like python over the network through SSH will greatly speedup the debugging process. And because the Linux kernel will protect against a full system crash reboots should also be much less there. It would just give a segmentation fault when thing go bad. But the kernel and everything else keeps running. I think I will try out a small Linux distro in a virtual machine with only 32MB of RAM... just to see if it could work. If it fails I could increase to 48-64MB and if it still does not work as I want.....just give up on running an actual common distro at all.
I am sorry if this got to technical or complicated for those who do not know Linux, but I just had to get this out of my head and complain a little. I think it already helped a bit.
You need to be logged in to comment