Wii U Void Linux Setup Guide

Revision as of 02:16, 11 February 2023 by RedBees (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This guide will show you how to set up your Wii U Linux system, maintain it and use various applications with it. This guide continues from the Wii U Linux Installation Tutorial (Void Linux for Wii U) video.

Using this guide, you will be able to:

  • Use the entire capacity of your USB drive with Linux
  • Run a graphical window manager or desktop environment
  • Browse the modern web (slowly, for now) with a WebKit-based browser
  • Perform tasks such as image editing on your Wii U
  • Maintain your Wii U Void Linux system

Note that currently (as of August 2021), Wii U Linux does not support the console's GPU and only supports 1 of its 3 CPU cores. As such, performance is very slow and some tasks such as video playback or viewing intensive websites are not currently feasible. Both of these features are in development, but since Wii U Linux is currently not well-known there is not much development effort being contributed. You can find out more about the Wii U Linux project at the official website.

Initial setup

Flashing and configuring the SD card to boot a Linux based operating system is described in this video: Wii U Linux Installation Tutorial (Void Linux for Wii U).

If your Wii U is already booted in Void, you can continue here.

Once the system has finished booting, you can log in. Specify "root" as the username and "voidlinux" as the password. The password will not come up on screen as you type it.

You should then see a "#" character at the bottom of your screen. Type "bash", and press enter. Now, you can start setitng up your system.

Internet connection

First, we will need to set the date. This is necessary because Wii U Linux can't currently (as of August 2021) read from the Wii U's internal clock, so it defaults to a date several decades in the past, which will cause network connections to fail.

Run the command:

    date -s YYYY-MM-DD

YYYY-MM-DD should be the current date. For example, if it is August 27, 2021, it would be entered as 2021-08-27.

To get additional software, you will want to connect to the internet. Since Wii U Linux currently does not support the Wii U's internal Wi-Fi adapter, you will have to use a USB Ethernet adapter or a phone with the ability to share its internet connection over USB. Any USB Ethernet adapter which is compatible with Linux should work.

Connect your phone or Ethernet adapter to the Wii U. Some additional text will appear on the screen when you do this. Once it is fully connected (Ethernet adapter connected to the network device, tethering enabled on a phone, etc.), run the following command:

    dhcpcd -w

This should automatically set up your network connection. To verify that it worked, run:

    ping voidlinux.org

If the output of this command has lines that start with "64 bytes from", your internet connection is working. If it times out, verify that everything is set up properly and try connecting again using the same dhcpcd command. This command will run forever until you stop it manually by pressing Control+C.

By default, you will lose your network connection when you reboot the system. To prevent this, run the following command to cause dhcpcd to run automatically on boot:

    ln -s /etc/sv/dhcpcd /var/service

Once you have a working network connection, you can begin installing software.

Getting ready to install software

Before you can begin installing software, you will need to run a couple initial setup commands. Run these in order:


 SSL_NO_VERIFY_PEER=1 xbps-install -Sy

(Prepend SSL_NO_VERIFY_PEER=1 to each subsequent xbps command or set it as an environment variable in ~/.bashrc) This will download the list of currently available software packages, and must be ran before you can do anything else since by default there is no list and all packages will fail to install.

    xbps-install -u -y xbps

This will update the XBPS program, which is the program that handles downloading and managing software packages. This is needed since the version of XBPS included with the current Void Linux image is too old to work properly without being updated.

Once you have ran both of these commands, you can install software with the following command:

    xbps-install -S <name of package>

You should do xbps-install -Syu to upgrade the whole system before installing any software.

A list of available packages can be found here. In this table, if a package is marked with green under the "ppc" column (fourth from the right), it is available for the Wii U. You can use lists like this one to find programs to install, although some of the package names may be different on Void.

Before you start installing software, you should proceed to the next section so that you can use the entire capacity of your USB drive. Otherwise, large software installs may fail as only a couple hundred megabytes of space is available by default.

Using the entire capacity of your USB drive

To use the entire capacity of your USB drive, you first need to install a program called Parted. Run the following command:

    xbps-install -S -y parted wget

The -y option automatically installs the program without requiring any extra input, and the "wget" program is added as it is needed to download a setup script.

Now, run the following:

 wget --no-check-certificate https://raregamingdump.ca/files/resize_fs.sh

And then:

    chmod +x ./resize_fs.sh
    ./resize_fs.sh

The last command will take a few minutes to complete, and will take longer for larger drives. If it fails with an error, you may have to reflash your USB drive.

Once it is done, you will have access to the full capacity of your USB drive.

Setting the timezone and synchronizing the clock

To keep the clock up to date and accurate, first set the timezone. Get the name of your timezone by using this site - look at the name next to the "Time zone" text. For example, clicking on Toronto on the map will specify the "America/Toronto" timezone.

Now, run this command. Be sure that you get the quotation marks correct:

    echo 'TIMEZONE="Timezone1/Timezone2"' >> /etc/rc.conf

Replace Timezone1/Timezone2 with the timezone specified by the time zone picker.

Now, run this command to install Chrony. Chrony will synchronize the system time to ensure that it is always accurate.

    xbps-install -S -y chrony

Once it is installed, run this command to enable it:

    ln -s /etc/sv/chronyd /var/service

Your system time should now be constantly synchronized and accurate.

Adding a new user

By default, you are using the root account, which has full access to the system. For better security, you should create a new user account and use that instead.

First, run the following command and follow the instructions on the screen:

    passwd root

This will allow you to set a new password for the root account.

Then, run:

    useradd username

Replace "username" with the username you want, such as your own name. The username must not have any spaces.

To set the password of this new user, run:

    passwd username

You need to do this before you can log in as this user.

You can now use the "exit" command (you may need to run this twice or more) to log out of the root account and log back in as your new user. To access the root account (for operations such as installing software), use the "su" command and enter the root password. You can also use the "sudo" command to run commands as root without switching to the root user; this must be set up by running "EDITOR=nano visudo" as the root user, going to the line which says "root ALL=(ALL) ALL", and writing the same line underneath it with "root" replaced by your own username. Then, press Control+X followed by Y to save the changes.

Installing a desktop environment

To be able to run graphical programs such as a file manager or web browser, you will need to install a graphical environment such as a window manager or desktop environment.

There are many available choices, but before installing any of them, you must first run the following command:

    xbps-install -S -y xorg xterm

This will install the Xorg display server and the Xterm program, which are needed to use a graphical environment.

Desktop environment/window manager choices include:

  • Openbox - install with the "openbox" package, start with "openbox" in xinitrc - Openbox is a fast and light window manager with a barebones set of features. It will appear to start at a blank desktop - simply right click to get access to the menu, although keep in mind that the default menu has many options which will not work unless you install their corresponding programs.
  • Dwm - install with "dwm", ultra-light window manager with better performance than Openbox. It is somewhat difficult to use and recommended only for advanced users.
  • Xfce - install with the "xfce4" package, start with "startxfce4" - A full desktop environment, somewhat slower than Openbox

More choices can be found here. Note that any desktop environments which depend on the "Qt" library will likely not work on the Wii U as it has issues with this library.

Once you have installed the package for the graphical environment that you chose, you can start it through one of two methods:

  • For Xfce (and other desktop environments which support something similar) - Run the command "startxfce4" or the corresponding command for the environment you chose.
  • For Openbox (and other environments which support something similar) - Add the line "exec openbox", or "exec (command for environment here)", to the file /etc/X11/xinit/Xinitrc. Make sure that you add this line before the line which starts with "twm &". You can also create the file /home/(username)/.xinitrc and add the "exec" line there on its own to install it for that specific user. Then, you can start it with the "startx" command.

You can also install a display manager and enable its service through a similar method to enabling the chronyd and dhcpcd services (for example, the LightDM service is "lightdmd"). This will give you a graphical login screen on boot.

Other application suggestions (web browser, file manager, etc.)

Here are some application notes and suggestions for the Wii U:

  • Gecko (Firefox) and Blink (Chromium)-based web browsers will not work, so you are limited to WebKit-based browsers such as Eolie (the "eolie" package) and "surf" (a very lightweight WebKit browser). These are very slow (as with everything on Wii U Linux currently), but can browse the modern web and can handle some sites which the Wii U's browser cannot due to its outdated SSL support. The "netsurf" browser can also be used, but has limited support for the modern web (although it is much faster than WebKit-based options).
  • As the default Xterm terminal emulator is hard to use on a large screen, an alternative terminal emulator such as xfce4-terminal is recommended.
  • The GIMP image editing tool can be installed and used on the Wii U with the "gimp" package.
  • The "spacefm" file manager is recommended.
  • Applications which use Qt libraries often do not run on the Wii U, as they crash with an "Illegal instruction" error message. There is currently no fix for this.
  • The Wii U Linux kernel currently does not include support for USB audio devices, so you cannot get sound input or output.
  • Since Wii U Linux does not yet support the console's GPU or multiple cores, performance is currently very slow and tasks such as video playback are not possible.