86 lines
6.2 KiB
Markdown
86 lines
6.2 KiB
Markdown
# Linux Server Setup for Nintendo Wii
|
|
|
|
## Requirements:
|
|
|
|
- A Nintendo Wii (RVL-001 or RVL-101)
|
|
- A computer running Linux natively
|
|
- An SD card greater than 8GB in size
|
|
- Probably other stuff i can't think of right now
|
|
|
|
## Suggestionments:
|
|
|
|
- A USB NIC that is compatible with linux kernel 4.19
|
|
- The kind of autism that makes you inclined to run a web server on a Nintendo Wii using Linux
|
|
|
|
# Instructions (VERY WIP):
|
|
|
|
## Setting up arch linux on your wii
|
|
|
|
1. Follow the instructions at https://wii.hacks.guide to mod your Wii. You only need to get the to the point that you have priiloader installed
|
|
2. Follow the instructions at https://wiki.wii-linux.org/wiki/Installation_Guide to install Arch Linux btw.
|
|
3. Plug a keyboard into the Wii's USB port. If you have one, you should also plug in a compatible USB NIC.
|
|
- Not all USB NICs will work, however more seem to work than do on the Wii normally.
|
|
4. Enable automatically booting to linux (this can be skipped if you installed BootMii as boot2 when modding the Wii)
|
|
1. Power on the Wii while holding the reset button to display the priiloader menu
|
|
2. Use the up/down arrow keys on your USB keyboard to select "options", then press enter
|
|
3. User the left/right arrow keys on your USB keyboard to change the autoboot setting to "BootMii IOS"
|
|
4. Use the up/down arrow keys to select "save settings", press enter. Then select "Exit menu" and press enter again.
|
|
5. Use the up/down arrow keys on your USB keyboard to select "BootMii IOS", then press enter
|
|
5. The first time Arch Linux boots, it may automatically reboot itself
|
|
6. Once Arch Linux has finished booting, login using the credentials printed at the top of the screen
|
|
- you should absolutely change this password with **`passwd`** after logging in.
|
|
7. If you do not have a compatible USB NIC, connect to a 2.4GHz wireless network using **`nmtui`**
|
|
8. Once a network connection is established, perform a full system upgrade using **`pacman -Syu`**.
|
|
- In my experience, this is much more stable on a wireless connection. Couldn't tell you why.
|
|
- this will take a long time. Go play Wii Sports while you wait.
|
|
|
|
## Setting up the web server on your wii
|
|
|
|
9. Install nginx, sudo, and git using **`pacman -S nginx sudo git`**
|
|
10. Create a new non-root user with **`useradd --create-home {your username}`**
|
|
11. Set a password for your user with **`passwd {your username}`**
|
|
12. Run the command **`echo '%wheel ALL=(ALL:ALL) ALL' > /etc/sudoers.d/wheel`** to enable give sudo access to all users in the wheel group
|
|
13. Run the command **`usermod -aG wheel {your username}`** to add your user to the wheel group
|
|
14. Enable the ssh server systemd service with the command **`systemctl enable --now sshd`**. It should now start automatically upon boot.
|
|
15. From your primary linux machine, run **`ssh-copy-id -i {your ssh key} {your linux wii's username}@{your linux wii's IP address}`** and enter the password you set in step 11
|
|
- **`{your ssh key}`** is your ssh identity file, likely found in **`~/.ssh/`**, ending in **`.pub`**
|
|
- **`{your linux wii's username}`** is the username you set in step 10
|
|
- **`{your linux wii's IP address}`** is the network address of your wii. You can find this by entering the command **`ip address show | grep "inet "`**
|
|
- The address will probably look something like **`192.168.1.130`**. It will not be the one starting with **`127`** nor will it be the one ending with **`255`**
|
|
16. Attempt to log in over ssh from your primary linux machine using the command **`ssh {your linux wii's username}@{your linux wii's IP address}`**
|
|
17. Once connected to a shell over ssh, run **`sudo whoami`** and enter your user password when prompted
|
|
- If the output after entering your passwrd is **`root`** then your user has successfully been given sudo priveleges
|
|
- you may now log the wii's **`root`** user out of any active shells
|
|
18. Enable the nginx server systemd service with the command **`systemctl enable --now nginx`**. It should now start automatically upon boot.
|
|
19. Navigate to **`http://{your linux wii's IP address}`** in a web browser on a device connected to the same network as the Wii. You should be greeted with the nginx splash page.
|
|
20. Open the nginx config with **`sudo nano /etc/nginx/nginx.conf`**. In the **`http`** block, locate the first **`server`** block, and change **`/usr/share/nginx/html`** to **`/usr/local/share/nginx/html`**
|
|
21. Press ctrl+x to close the file, press y to confirm saving changes, then press enter to confirm the filename
|
|
22. Run the command **`sudo mkdir -p /usr/local/share/nginx/html`** to create the local nginx resource directory
|
|
23. Run the command **`sudo systemctl restart nginx`** to reload the modified config
|
|
24. run the command **`echo 'hi' | sudo tee /usr/local/share/nginx/html/index.html`** to create a text file at the root of your server.
|
|
25. Reload the webpage you navigated to in step 19 and you should see the word 'hi' appear in the browser window.
|
|
26. Update the files at **`/usr/local/share/nginx/html/`** with static web content and it will become available at your wii's IP address
|
|
|
|
## Periodically updating the web server's contents (using the config you see here)
|
|
|
|
27. clone this repository to your user's home directory **`cd;git clone 'https://git.pogmom.me/pogmommy/wii-server-setup.git'`**
|
|
28. cd into the newly-cloned repository and run the setup script **`cd wii-server-setup;./setup.sh`**. Provide your password when prompted.
|
|
|
|
## Finishing touches
|
|
XX. Make any remaining configuration changes as desired (change system hostname, etc.)
|
|
|
|
## Todo
|
|
- update the setup.sh script to automate much more of the setup process
|
|
- right now it mostly just sets up the webpage updater
|
|
- periodically update system packages?
|
|
- idk it's generally fine on debian (especially stable) but it might not be recommended on Arch
|
|
|
|
## Current issues:
|
|
- Probably a lot but what do you really have to complain about
|
|
|
|
# Special thanks to:
|
|
|
|
- **Techflash** and the cool folk listed at https://wii-linux.org/ for making this project possible in the first place. These people are wizards.
|
|
- **Bringus Studios** for reminding me that you don't need to know how to use linux to have a good time with it.
|
|
- **Nintendo** for threatening to kill emulator developers.
|
|
- **Nic** for selling me this specific Wii.
|