Wii-Linux

From Wii-Linux Wiki
Jump to navigation Jump to search

Note: This page has been written by Techflash. As the creator of the current iteration of Wii-Linux, I am of course biased towards my own work. However, I do attempt to remain as neutral as possible here.


Wii-Linux can refer to multiple things. It often refers to the project started by Techflash, which bears the name of Wii-Linux. It can also refer to other, often older, efforts of putting Linux on the Wii.

This page details the history of Wii-Linux as a whole, as it leads up to, and relates to, Techflash's current Wii-Linux project.

Background[edit]

Please see the related WiiBrew article for background info on Wii-Linux.

History[edit]

gc-linux (2005 ~ 2010)[edit]

The gc-linux developers were the ones who originally got Linux running on the GameCube (and later, the Wii). They were the developers of the MIKE (MINI Kernel) series of kernels for the Wii, as well. All of the gc-linux kernels were of the 2.6 line, and the final release was 2.6.32. They developed the Whiite distro, based on Debian "lenny" / 5.0.

This is where the vast majority of the current kernel changes originated from.

DeltaResero and neagix (2014 ~ 2018)[edit]

3.15 kernel / "stable-v3.x"[edit]

During this period of time, both DeltaResero and neagix both were working, occasionally trading commits around, to try to port the old 2.6.32 patches over to a new, 3.x version. Eventually they ended up settling on 3.15.10. This kernel worked quite well with very minimal problems.

4.3 kernel / "experimental-v4.x"[edit]

By this point, focus had largely shifted over to neagix's wii-linux-ngx repository, however, both neagix and DeltaResero were still quite active together, working on things such as USB fixes. This kernel sadly did not have the same level of polish as "stable-v3.x", however. Some features, like the framebuffer patches, were not implemented here. This was unfortunately the last Wii-Linux related activity from the two.


Wii-Linux Continuation Project (2022 - Present)[edit]

The history of the Wii-Linux Continuation Project is a little confusing, as it originally started as 2 different projects, from 2 different people. Here's an attempted explanation.

TheOtherOne's 4.4 CIP kernel[edit]

TheOtherOne created a kernel port, based on the Linux 4.4 LTS, with the CIP80 patches applied. This was based off neagix's "experimental-v4.x" kernel. This kernel sadly had a few problems. Namely, due to being on "experimental-v4.x", it was lacking a few quality of life features. This is where Techflash got involved. He attempted to fix up the kernel and add some quality of life features back into it. He shipped this kernel with the Wii-Linux Continuation Project's Void-PPC based rootfs for a while, up until 5/30/2024, the transition to the 4.5 kernel. Unfortunately, TheOtherOne seems to have discontinued development on this kernel, and Techflash has largely abandoned it in favor of 4.5.

Techflash's 4.5 kernel[edit]

Techflash originally attempted to rebase TheOtherOne's 4.4 kernel onto 4.5, however, this proved challenging, due to the CIP patches that were applied. Ultimately, he ended up going for the original set of 4.4 patches that TheOtherOne applied to her CIP tree, directly applied those onto a clean copy of Linux 4.4, and rebased that to 4.5. Note that this may not have been a perfect decision. This caused the loss of a few features. The most notable of which is USB Gecko console support. It's been downgraded to only being supported as a udbg console, like it is in upstream Linux. Also of note is that this code still shares it's origin with neagix's "experimental-v4.x", and as such, shares it's problems. Of particular importance is the lack of neagix and FarterSoft's RGB patches, exposing an RGB565 framebuffer, as opposed to the Wii's native YUV framebuffer, to usespace. This is a feature that's natively supported using the DRM graphics subsystem in modern Linux versions, however, this was still the best way to do this translation back during the time when the patches were written. Techflash later added these changes from the "stable-v3.x" branch in, allowing Xorg and other graphical apps to run correctly.

The future[edit]

Techflash plans to continue his work to make the Wii-Linux kernel more modern. As of currently, he has a functional build of Linux 6.6 that can boot and display graphics using the legacy fbdev driver. However, this build lacks most other drivers for the Wii, such as USB, and audio. The Broadcom 4318 WiFi chipset is supported, but broken on the build due to unknown issues. He plans to attempt to convert the legacy fbdev driver to a DRM driver, and attempt to get support for it merged into mainline.