wii-linux Proof of Concept 0.1
24 February 2008, Albert "isobel" Herranz


1. INTRODUCTION

  This is a small proof of concept gc-linux distro contained in an ELF file
  which runs in a unmodified Nintendo Wii console with the help of the
  twilight-hack-v0.1-alpha2 loader.


2. REQUISITES

  These are the requisites to load this PoC using the twilight-hack:

  - a Nintendo Wii
  - a SD card
  - a SD card adapter for the Nintendo GameCube
  - (optional, recommended) a USB Gecko adapter


2. PREPARATIONS

  Follow the twilight-hack instructions to install the linux.elf file into
  your "loading" SD card at sector 2048. If you have doubts read the README
  bundled with the twilight-hack.

   $ sudo umount /dev/your_device
   $ sudo dd if=linux.elf of=/dev/your_device bs=512 seek=2048
   3961+1 records in
   3961+1 records out
   2028192 bytes (2.0 MB) copied, 1.35082 seconds, 1.5 MB/s
   $ sync

  Before booting linux.elf, make sure your "loading" SD card is inserted into
  memcard slot A.
  If you own an USB Gecko adapter, make sure it is inserted into
  memcard slot B and connected through a USB cable to your PC. You can use a
  terminal program to connect via USB Gecko to your wii-linux :)
  I've tested it with minicom under Linux (/dev/ttyUSB0, 115200 8N1).
  It is recommended to activate linewrap.

   $ sudo minicom

   Welcome to minicom 2.2

   OPTIONS: I18n 
   Compiled on May  2 2007, 10:11:26.
   Port /dev/ttyUSB0

                    Press CTRL-A Z for help on special keys


3. BOOTING

  Follow the twilight-hack instructions to boot the linux.elf through the
  "loading" SD card.  If you have doubts read the README bundled with the
  twilight-hack.

  At this stage the twilight-hack ELF loader will load and boot linux.elf.
  You will start to see the typical startup messages of Linux on your TV
  and, if you own an USB Gecko, on your terminal too.

   Wii ELF Loader v0.1-alpha2                           
   Copyright (C) 2003,2004,2008  tmbinc, segher, bushing
   Cleaning up environment
   Closing file descriptors ...............done.
   OK.
   Slot A: SD card detected
   Slot B: USBGecko serial interface detected

   loading ELF file from SD...
   done!ng: 47f0
   00000000: 7f 45 4c 46 01 02 01 00 00 00 00 00 00 00 00 00 
   elf
   Loading .text @ 0x80800000 (13664 bytes)
   Loading .data @ 0x80804000 (1941504 bytes)
   Clearing .bss @ 0x809de000 (8540 bytes)


4. LOGGING INTO THE SYSTEM

  (This will work only for USB Gecko users).
  In your terminal program, you'll see a welcome screen like this:


   Wii-linux-PoC GNU/Linux 0.1 (none) usbgeckocon1

   (none) login:


  At the login prompt you can enter the PoC credentials:
    user: root
    password: cube

  If you manage to do so, you'll get a command prompt :)

   # 


6. WORKING WITH THE SYSTEM

  The PoC system is based on busybox. There are a few symlinks to commands
  already created, but the busybox version supplied has support for a lot more
  commands. If you miss a command try with 'busybox missing_command' or ask for
  help with 'busybox'.

   # busybox top

  The kernel supplied has support for hot-insertion and removal of SD cards
  so you can extract your "loading" card and insert another one.
  Just make sure YOU DON'T REMOVE A CARD WHEN IT'S MOUNTED.

  Also note that memory is still limited to MEM1 (24MB).


7. POWERING OFF THE SYSTEM

  The PoC has not yet support to poweroff the system so you must hold the
  power button for several seconds when you are done.


8. CREDITS

  Kudos to the wii-breewers for your awesome work.
  You know who you are.


9. DISCLAIMER

   THIS PROGRAM IS NOT AFFILIATED WITH NINTENDO.

   IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
   SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
   OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE AUTHOR
   HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

   THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
   BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
   AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
   ON AN "AS IS" BASIS, AND THE AUTHOR HAS NO OBLIGATION TO
   PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.


