[Ilugc] debian lenny on nintendo wii

  • From: rajasuperman@xxxxxxxxx (Raja Subramanian)
  • Date: Sat Sep 26 17:40:32 2009

Hi All,

I have always taken some pleasure in running Debian on weired
and wonderful hardware.  In the past, I've installed debian
on various Sun, SGI, Alpha, MIPS, Mac hardware and today I've
successfully have Lenny running on my Nintendo Wii.


Nintendo Wii is a game console (which I won at a competition)
and over the few months, I've been attempting to install home
brew (3rd party apps) and Debian on it.  Today, it's all come
together and I'm able to apt-get install any ppc lenny package.

The Wii draws less than 18W of power, and is suitable for limited
workloads around the house, a small NAS, ssh/media server, etc.
Surely it's far easier to get an Intel Atom to anything which the
Wii can peform, but the main reason for running Linux on the
Wii is the enormous learning opportunity it presents in understanding
console hardware, security and kernel programming.


The guys at Game Cube Linux (gc-linux.org) deserve all the credit
for porting the kernel to the Wii hardware.

The Wii is PowerPC based machine which requires a modified kernel
to boot and run its unique hardware.  For now, all disks, USB,
bluetooth, and wired Ethernet work, but the internal wireless LAN
and DVD drive don't work.  X is not yet setup, but I think it's
do able.  I have already installed the native tool chain but not
yet tried compiling a full 2.6.31 kernel with all the modules
and 3rd party drivers.

Debian The Universal Operating System: http://www.debian.org
Game Cube Linux:  http://www.gc-linux.org/wiki/Main_Page
Wii hardware:     http://en.wikipedia.org/wiki/Wii


Here's some output from my Wii:

rsubr@wii:~$ uname -a
Linux wii 2.6.31-wl-mikep4 #1 PREEMPT Mon Sep 21 19:00:50 CEST 2009
ppc GNU/Linux


rsubr@wii:~$ cat /proc/cpuinfo
processor       : 0
cpu             : 750CL
clock           : 729.000000MHz
revision        : 114.0 (pvr 0008 7200)
    bogomips        : 121.50
    timebase        : 60750000
    platform        : wii
    model           : NintendoWii
    vendor          : IBM
    machine         : Nintendo Wii
    Memory          : 317 MB


rsubr@wii:~$ dmesg
[    0.000000] Linux version 2.6.31-wl-mikep4 (albert@k) (gcc version
4.3.2 (GCC) ) #1 PREEMPT Mon Sep 21 19:00:50 CEST 2009
[    0.000000] console [udbg0] enabled
[    0.000000] Top of RAM: 0x13d80000, Total RAM: 0x13d80000
[    0.000000] Memory hole size: 0MB
[    0.000000] Zone PFN ranges:
[    0.000000]   DMA      0x00000000 -> 0x00013d80
[    0.000000]   Normal   0x00013d80 -> 0x00013d80
[    0.000000] Movable zone start PFN for each node
[    0.000000] early_node_map[1] active PFN ranges
[    0.000000]     0: 0x00000000 -> 0x00013d80
[    0.000000] On node 0 totalpages: 81280
[    0.000000] free_area_init_node: node 0, pgdat c0505a34,
node_mem_map c0554000
[    0.000000]   DMA zone: 635 pages used for memmap
[    0.000000]   DMA zone: 0 pages reserved
[    0.000000]   DMA zone: 80645 pages, LIFO batch:15
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.
Total pages: 80645
[    0.000000] Kernel command line: nobats root=/dev/mmcblk0p2
rootwait force_keyboard_port=4 video=gcnfb:60Hz,tv=PAL,progressive
for_additional_kernel_options_targetted_at_hexedit_lovers
[    0.000000] PID hash table entries: 2048 (order: 11, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 75964k/325120k available (4916k kernel code,
248824k reserved, 236k data, 270k bss, 164k init)
[    0.000000] Kernel virtual memory layout:
[    0.000000]   * 0xffffe000..0xfffff000  : fixmap
[    0.000000]   * 0xfde00000..0xfe000000  : consistent mem
[    0.000000]   * 0xfddfe000..0xfde00000  : early ioremap
[    0.000000]   * 0xd4000000..0xfddfe000  : vmalloc & ioremap
[    0.000000] NR_IRQS:512
[    0.000000] flipper-pic: controller at 0x0c003000 mapped to 0xd4000000
[    0.000000] time_init: decrementer frequency = 60.750000 MHz
[    0.000000] time_init: processor frequency   = 729.000000 MHz
[    0.000000] clocksource: timebase mult[41d7f79] shift[22] registered
[    0.000000] clockevent: decrementer mult[f8d4fdf] shift[32] cpu[0]
[    0.000227] Console: colour dummy device 80x25
[    0.000239] console handover: boot [udbg0] -> real [tty0]
[    0.000463] Mount-cache hash table entries: 512
[    0.004465] NET: Registered protocol family 16
[    0.007152] exi: Nintendo GameCube/Wii EXternal Interface (EXI)
driver - version 4.0i
[    0.007268] irq: irq 4 on host /soc/pic0@0c003000 mapped to virtual irq 16
[    0.007761] exi: about to add [exi0:1] id=0xfffff308 Wii Mask
ROM/RTC/SRAM/UART
[    0.008111] exi: add completed
[    0.008905] starlet-gpio: starlet-gpio: added 32 gpios at d40040c0
[    0.042812] bio: create slab <bio-0> at 0
[    0.045222] SCSI subsystem initialized
[    0.045995] usbcore: registered new interface driver usbfs
[    0.046646] usbcore: registered new interface driver hub
[    0.047148] usbcore: registered new device driver usb
[    0.050278] Bluetooth: Core ver 2.15
[    0.050799] NET: Registered protocol family 31
[    0.050823] Bluetooth: HCI device and connection manager initialized
[    0.050846] Bluetooth: HCI socket layer initialized
[    0.051595] cfg80211: Using static regulatory domain info
[    0.051623] cfg80211: Regulatory domain: US
[    0.051638]  (start_freq - end_freq @ bandwidth),
(max_antenna_gain, max_eirp)
[    0.051664]  (2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm)
[    0.051687]  (5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[    0.051710]  (5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[    0.051756]  (5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[    0.051782]  (5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[    0.051808]  (5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm)
[    0.051863] cfg80211: Calling CRDA for country: US
[    0.063162] NET: Registered protocol family 2
[    0.063503] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.064761] TCP established hash table entries: 16384 (order: 5,
131072 bytes)
[    0.065830] TCP bind hash table entries: 16384 (order: 6, 327680 bytes)
[    0.068335] TCP: Hash tables configured (established 16384 bind 16384)
[    0.068388] TCP reno registered
[    0.068714] NET: Registered protocol family 1
[    0.076778] starlet-mipc: IPC driver for 'mini' - version 0.3i
[    0.076926] starlet-mipc: magic=IPC, version=1, mem2_boundary=13f00000
[    0.076955] starlet-mipc: ipc_in[32] @ 13f00480, ipc_out[32] @ 13f00080
[    0.076984] starlet-mipc: ppc: intail_idx=16, outhead_idx=15
[    0.077006] starlet-mipc: arm: inhead_idx=16, outtail_idx=15
[    0.077029] starlet-mipc: in_ring=1K@d4010480, out_ring=1K@d4014080
[    0.082001] starlet-mipc: ping OK
[    0.082033] starlet-mipc: using direct io
[    0.082070] starlet-mipc: ready
[    0.082115] hollywood-pic: controller at 0xd401c030
[    0.082166] irq: irq 14 on host /soc/pic0@0c003000 mapped to virtual irq 17
[    0.082548] starlet-ipc: Nintendo Wii starlet IPC driver - version 0.3i
[    0.083029] starlet-es: Nintendo Wii starlet ES driver - version 0.3i
[    0.083476] gcn-rsw: Nintendo GameCube/Wii Reset SWitch (RSW)
driver - version 1.0i
[    0.083628] irq: irq 1 on host /soc/pic0@0c003000 mapped to virtual irq 18
[    0.087506] msgmni has been set to 149
[    0.088607] alg: No test for stdrng (krng)
[    0.088728] io scheduler noop registered
[    0.088749] io scheduler anticipatory registered (default)
[    0.088771] io scheduler deadline registered
[    0.088854] io scheduler cfq registered
[    0.089273] gcn-vifb: Nintendo GameCube/Wii Video Interface (VI)
driver - version 2.1i
[    0.089330] gcn-vifb: options: 60Hz,tv=PAL,progressive
[    0.089763] irq: irq 8 on host /soc/pic0@0c003000 mapped to virtual irq 19
[    0.089897] gcn-vifb: PAL 480i 60Hz
[    0.089916] gcn-vifb: framebuffer at 0x01698000, mapped to
0xd4080000, size 1440k
[    0.089952] gcn-vifb: mode is 576x432x16
[    0.098363] Console: switching to colour frame buffer device 72x27
[    0.105952] fb0: gcn-vifb frame buffer device
[    0.197119] Generic non-volatile memory driver v1.1
[    0.203340] rvl-stsd: Block driver for the Nintendo Wii SD front
slot - version 0.4i
[    0.217055] brd: module loaded
[    0.229556] loop: module loaded
[    0.236228] usbcore: registered new interface driver asix
[    0.242621] Broadcom 43xx driver loaded [ Features: S, Firmware-ID: FW13 ]
[    0.253772] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.264951] irq: irq 4 on host /soc/mini@0d000000/pic1@0d800030
mapped to virtual irq 20
[    0.276262] ehci-mipc d040000.ehci: Nintendo Wii EHCI Host Controller
[    0.282351] ehci-mipc d040000.ehci: new USB bus registered,
assigned bus number 1
[    0.294312] ehci-mipc d040000.ehci: irq 20, io base 0x0d040000
[    0.312318] ehci-mipc d040000.ehci: USB 2.0 started, EHCI 1.00
[    0.318552] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    0.330494] usb usb1: New USB device strings: Mfr=3, Product=2,
SerialNumber=1
[    0.342403] usb usb1: Product: Nintendo Wii EHCI Host Controller
[    0.348538] usb usb1: Manufacturer: Linux 2.6.31-wl-mikep4 ehci_hcd
[    0.354708] usb usb1: SerialNumber: ehci-mipc
[    0.361415] usb usb1: configuration #1 chosen from 1 choice
[    0.368043] hub 1-0:1.0: USB hub found
[    0.374133] hub 1-0:1.0: 4 ports detected
[    0.380933] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.387195] irq: irq 5 on host /soc/mini@0d000000/pic1@0d800030
mapped to virtual irq 21
[    0.399235] ohci-mipc d050000.ohci0: Nintendo Wii OHCI Host Controller
[    0.411592] ohci-mipc d050000.ohci0: new USB bus registered,
assigned bus number 2
[    0.424074] ohci-mipc d050000.ohci0: irq 21, io base 0x0d050000
[    0.488350] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
[    0.500852] usb usb2: New USB device strings: Mfr=3, Product=2,
SerialNumber=1
[    0.513234] usb usb2: Product: Nintendo Wii OHCI Host Controller
[    0.519600] usb usb2: Manufacturer: Linux 2.6.31-wl-mikep4 ohci_hcd
[    0.526004] usb usb2: SerialNumber: ohci-mipc
[    0.532889] usb usb2: configuration #1 chosen from 1 choice
[    0.539783] hub 2-0:1.0: USB hub found
[    0.546069] hub 2-0:1.0: 2 ports detected
[    0.552878] irq: irq 6 on host /soc/mini@0d000000/pic1@0d800030
mapped to virtual irq 22
[    0.565165] ohci-mipc d060000.ohci1: Nintendo Wii OHCI Host Controller
[    0.577347] ohci-mipc d060000.ohci1: new USB bus registered,
assigned bus number 3
[    0.589802] ohci-mipc d060000.ohci1: irq 22, io base 0x0d060000
[    0.656414] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001
[    0.669343] usb usb3: New USB device strings: Mfr=3, Product=2,
SerialNumber=1
[    0.682130] usb usb3: Product: Nintendo Wii OHCI Host Controller
[    0.688624] usb usb3: Manufacturer: Linux 2.6.31-wl-mikep4 ohci_hcd
[    0.695169] usb usb3: SerialNumber: ohci-mipc
[    0.702202] usb usb3: configuration #1 chosen from 1 choice
[    0.708939] usb 1-1: new high speed USB device using ehci-mipc and address 2
[    0.721708] hub 3-0:1.0: USB hub found
[    0.728045] hub 3-0:1.0: 2 ports detected
[    0.734952] rvl-sthcd: USB Host Controller driver for the Nintendo
Wii - version 0.5i
[    0.747431] Initializing USB Mass Storage driver...
[    0.753963] usbcore: registered new interface driver usb-storage
[    0.760193] USB Mass Storage support registered.
[    0.766730] usbcore: registered new interface driver libusual
[    0.773504] mice: PS/2 mouse device common for all mice
[    0.780409] rtc-gcn: Nintendo GameCube/Wii RTC/SRAM driver - version 1.0i
[    0.793577] rtc-gcn exi0:1: rtc core: registered rtc-gcn as rtc0
[    0.800815] i2c /dev entries driver
[    0.808917] i2c-gpio-of i2c-video.5: using pins 240 (SDA) and 241
(SCL, no clock stretching)
[    0.821895] gcn-vifb: AVE-RVL support loaded
[    0.828057] gcn-vifb: PAL 480i 60Hz
[    0.840635] Bluetooth: Generic Bluetooth USB driver ver 0.5
[    0.847073] usbcore: registered new interface driver btusb
[    0.853588] sdhci: Secure Digital Host Controller Interface driver
[    0.859679] sdhci: Copyright(c) Pierre Ossman
[    0.865533] sdhci-mipc: Secure Digital Host Controller Interface
via 'mini' - version 0.1i
[    0.877385] irq: irq 7 on host /soc/mini@0d000000/pic1@0d800030
mapped to virtual irq 23
[    0.889924] mmc0: SDHCI controller on d070000.sdhc0 [d070000.sdhc0] using DMA
[    0.902296] irq: irq 8 on host /soc/mini@0d000000/pic1@0d800030
mapped to virtual irq 24
[    0.915695] mmc1: SDHCI controller on d080000.sdhc1 [d080000.sdhc1] using DMA
[    0.930475] usbcore: registered new interface driver usbhid
[    0.937137] usbhid: v2.6:USB HID core driver
[    0.943551] gcn-si: Nintendo GameCube/Wii Serial Interface (SI)
driver - version 1.0i
[    0.958015] Advanced Linux Sound Architecture Driver Version 1.0.20.
[    0.968208] usb 1-1: New USB device found, idVendor=0846, idProduct=6a00
[    0.981217] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    0.994184] usb 1-1: Product: NETGEAR WG111v2
[    1.000771] usb 1-1: Manufacturer: NETGEAR WG111v2
[    1.007334] usb 1-1: SerialNumber: 00184DB41E48
[    1.018292] usb 1-1: configuration #1 chosen from 1 choice
[    1.027936] gcn-ai: Nintendo GameCube/Wii Audio Interface (AI)
driver - version 1.0i
[    1.041042] irq: irq 6 on host /soc/pic0@0c003000 mapped to virtual irq 25
[    1.054086] IRQ 25/gcn-ai: IRQF_DISABLED is not guaranteed on shared IRQs
[    1.071214] usbcore: registered new interface driver snd-usb-audio
[    1.077968] ALSA device list:
[    1.084318]   #0: Nintendo GameCube Audio Interface
[    1.091600] TCP cubic registered
[    1.097794] NET: Registered protocol family 17
[    1.104024] Bluetooth: L2CAP ver 2.13
[    1.110043] Bluetooth: L2CAP socket layer initialized
[    1.116278] Bluetooth: RFCOMM socket layer initialized
[    1.122306] Bluetooth: RFCOMM ver 1.11
[    1.128132] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    1.133904] Bluetooth: BNEP filters: multicast
[    1.139521] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    1.146246] RPC: Registered udp transport module.
[    1.151859] RPC: Registered tcp transport module.
[    1.159191] rtc-gcn exi0:1: setting system clock to 2009-09-26
05:33:08 UTC (1253943188)
[    1.170018] Waiting for root device /dev/mmcblk0p2...
[    1.182053] mmc0: new high speed SD card at address a96b
[    1.188221] mmcblk0: mmc0:a96b SD02G 1.83 GiB
[    1.193942]  mmcblk0: p1 p2
[    1.200455] usb 1-2: new high speed USB device using ehci-mipc and address 3
[    1.258133] mmc1: queuing CIS tuple 0x80 length 2
[    1.265773] mmc1: queuing CIS tuple 0x80 length 5
[    1.272323] mmc1: queuing CIS tuple 0x80 length 2
[    1.280102] mmc1: queuing CIS tuple 0x80 length 5
[    1.289331] mmc1: queuing CIS tuple 0x22 length 8
[    1.294336] mmc1: queuing CIS tuple 0x80 length 10
[    1.298825] mmc1: queuing CIS tuple 0x80 length 2
[    1.303193] mmc1: queuing CIS tuple 0x80 length 2
[    1.307524] mmc1: queuing CIS tuple 0x80 length 5
[    1.311660] mmc1: queuing CIS tuple 0x80 length 4
[    1.315482] mmc1: new SDIO card at address 0001
[    1.319435] kjournald starting.  Commit interval 5 seconds
[    1.323423] EXT3-fs: mounted filesystem with writeback data mode.
[    1.327567] VFS: Mounted root (ext3 filesystem) readonly on device 179:2.
[    1.335706] Freeing unused kernel memory: 164k init
[    1.343293] b43-sdio mmc1:0001:1: Chip ID 14e4:4318
[    1.348178] ssb: Core 0 found: ChipCommon (cc 0x800, rev 0x0D, vendor 0x4243)
[    1.357060] ssb: Core 1 found: IEEE 802.11 (cc 0x812, rev 0x09,
vendor 0x4243)
[    1.365999] ssb: Core 2 found: PCI (cc 0x804, rev 0x0C, vendor 0x4243)
[    1.374970] ssb: Core 3 found: PCMCIA (cc 0x80D, rev 0x07, vendor 0x4243)
[    1.384218] ssb: Core 4 found: UNKNOWN (cc 0x8FF, rev 0x7F, vendor 0xFFFF)
[    1.393719] ssb: Core 5 found: UNKNOWN (cc 0x8FF, rev 0x7F, vendor 0xFFFF)
[    1.404285] ssb: Core 6 found: UNKNOWN (cc 0x8FF, rev 0x7F, vendor 0xFFFF)
[    1.415007] usb 1-2: New USB device found, idVendor=0b95, idProduct=7720
[    1.426284] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    1.438616] usb 1-2: Product: AX88772
[    1.445689] usb 1-2: Manufacturer: ASIX Elec. Corp.
[    1.452475] usb 1-2: SerialNumber: 000001
[    1.460339] ssb: Core 7 found: UNKNOWN (cc 0x8FF, rev 0x7F, vendor 0xFFFF)
[    1.473522] usb 1-2: configuration #1 chosen from 1 choice
[    1.481131] ssb: Core 8 found: ChipCommon (cc 0x800, rev 0x0D, vendor 0x4243)
[    1.494189] ssb: WARNING: Multiple ChipCommon found
[    1.503468] b43-phy0: Broadcom 4710 WLAN found (core revision 9)
[    1.532675] b43-phy0 debug: Found PHY: Analog 3, Type 2, Revision 7
[    1.540455] b43-phy0 debug: Found Radio: Manuf 0x17F, Version
0x2050, Revision 8
[    1.590602] phy0: Selected rate control algorithm 'minstrel'
[    1.600821] ssb: Sonics Silicon Backplane found on SDIO device mmc1:0001:1
[    2.301057] eth0: register 'asix' at usb-ehci-mipc-2, ASIX AX88772
USB 2.0 Ethernet, 00:19:fd:4b:7a:32
[    2.684397] usb 3-1: new full speed USB device using ohci-mipc and address 2
[    2.861449] usb 3-1: New USB device found, idVendor=057e, idProduct=0305
[    2.873839] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    2.886232] usb 3-1: Product: BCM2045A
[    2.892374] usb 3-1: Manufacturer: Broadcom Corp
[    2.899150] usb 3-1: configuration #1 chosen from 1 choice
[    3.068455] EXT3 FS on mmcblk0p2, internal journal
[    4.853463] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1




- Raja

Other related posts:

  • » [Ilugc] debian lenny on nintendo wii - Raja Subramanian