Open vmlemon opened 5 years ago
As of today, the Wii is at firmware release 4.3E, which is the last supported version, for the LetterBomb exploit, which I was able to successfully deploy, and install the HomeBrew Channel, before obtaining a NAND dump. and keyset.
(The Twilight Hack failed, since I wasn't able to copy the modified saved game data file, and the console only gave a generic "The data could not be copied" error).
I haven't tried to install a Linux distribution, yet, although I had to decline the offer of upgrading the firmware, to avoid trashing the freshly-installed software.
For those interested - the LetterBomb exploit itself seems to be generated using an algorithm based on https://github.com/giantpune/mailboxbomb, and the Web service is most likely a wrapper around the code.
The actual LetterBomb.zip
archive, returned by the service contains:
tyson@tyson-Lenovo-ideapad-120S-14IAP:/Canvio/WiiFiles/mnt$ tree ../../LB2/
../../LB2/
├── APACHE-2.0.txt
├── boot.elf
├── CREDITS.txt
├── LICENSE.txt
├── private
│ └── wii
│ └── title
│ └── HAEA
│ └── 0A296CA6
│ └── C854738C
│ └── 2019
│ └── 08
│ └── 14
│ └── 23
│ └── 07
│ └── HABA_#1
│ └── txt
│ └── 25102F27.000
├── README-BootMii.txt
├── README-HBC.txt
└── README.txt
13 directories, 8 files
file
reports the following, for the 25102F27.000
file:
private/wii/title/HAEA/0A296CA6/C854738C/2019/08/14/23/07/HABA_#1/txt/25102F27.000: tar archive (V7), file CDBFILE\002, size %\020/'06218, seconds 39_HABA_01_
boot.elf
is of type:
tyson@tyson-Lenovo-ideapad-120S-14IAP:/Canvio/WiiFiles/mnt$ file boot.elf
boot.elf: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 (SYSV), statically linked, stripped
Its .text.0
segment is considerably large, and objdump -x
reports:
tyson@tyson-Lenovo-ideapad-120S-14IAP:/Canvio/WiiFiles/mnt$ objdump -x boot.elf
boot.elf: file format elf32-big
boot.elf
architecture: UNKNOWN!, flags 0x00000102:
EXEC_P, D_PAGED
start address 0x80004000
Program Header:
LOAD off 0x00001000 vaddr 0x80004000 paddr 0x80004000 align 2**5
filesz 0x0020ca60 memsz 0x0020ca60 flags r-x
Sections:
Idx Name Size VMA LMA File off Algn
0 .text.0 0020ca60 80004000 80004000 00001000 2**5
CONTENTS, ALLOC, LOAD, READONLY, CODE
SYMBOL TABLE:
no symbols
For examining the contents of the NAND dump, the tools listed at https://wiki.dolphin-emu.org/index.php?title=NAND_Usage_Guide (the Windows tools will work, under WINE, on x86-64 native Linux), and https://code.google.com/archive/p/wmb-asm/downloads may be useful.
wiinandfuse_v11 had a 32-bit Linux ELF executable, that depended on libfuse.so.2, so we had to patch the Makefile's LDFLAGS
line, to read LDFLAGS = -g -W
, to fix gcc: error: unrecognized command line option ‘-Wl’; did you mean ‘-W’?
.
Eventually, if we needed to reuse these tools, we'd run them under JUEL, once it's ready.
Managed to get Whiite Linux installed, and working, without any problems (although the WLAN drivers need installing, and there's no toolchain, in the base installation), using the kernel at https://iweb.dl.sourceforge.net/project/gc-linux/kernel/2.6.32/mikep5-zImage-2.6.32.mini.480p%28NTSC%29.elf, along with the packages from https://datapacket.dl.sourceforge.net/project/gc-linux/wii-linux/whiite-linux-installer-BETA1/whiite-linux-installer-BETA1.tar.bz2, and https://datapacket.dl.sourceforge.net/project/gc-linux/wii-linux/whiite-linux-0.1a/whiite-linux-bundle-0.1_2.6.27b.tar.
Briefly exploring the system, I managed to dump the /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
/proc/devices
:
Character devices:
1 mem
2 pty
3 ttyp
4 /dev/vc/0
4 tty
5 /dev/tty
5 /dev/console
5 /dev/ptmx
7 vcs
10 misc
13 input
14 sound
29 fb
89 i2c
116 alsa
128 ptm
136 pts
180 usb
189 usb_device
216 rfcomm
254 rtc
Block devices:
1 ramdisk
259 blkext
7 loop
8 sd
60 rvl-di
62 rvl-stsd
65 sd
66 sd
67 sd
68 sd
69 sd
70 sd
71 sd
128 sd
129 sd
130 sd
131 sd
132 sd
133 sd
134 sd
135 sd
179 mmc
lsusb -v
:
Bus 003 Device 002: ID 057e:0305 Nintendo Co., Ltd
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 224 Wireless
bDeviceSubClass 1 Radio Frequency
bDeviceProtocol 1 Bluetooth
bMaxPacketSize0 64
idVendor 0x057e Nintendo Co., Ltd
idProduct 0x0305
bcdDevice 1.00
iManufacturer 1 Broadcom Corp
iProduct 2 BCM2045A
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 216
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0000 1x 0 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0000 1x 0 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0009 1x 9 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0009 1x 9 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 2
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0011 1x 17 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0011 1x 17 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 3
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0019 1x 25 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0019 1x 25 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 4
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0021 1x 33 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0021 1x 33 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 5
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0031 1x 49 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0031 1x 49 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 254 Application Specific Interface
bInterfaceSubClass 1 Device Firmware Update
bInterfaceProtocol 0
iInterface 0
Device Status: 0x0000
(Bus Powered)
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 0 Full speed (or root) hub
bMaxPacketSize0 64
idVendor 0x1d6b Linux Foundation
idProduct 0x0001 1.1 root hub
bcdDevice 2.06
iManufacturer 3 Linux 2.6.32-isobel-wii ohci_hcd
iProduct 2 Nintendo Wii OHCI Host Controller
iSerial 1 ohci-hlwd
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 255
Hub Descriptor:
bLength 9
bDescriptorType 41
nNbrPorts 2
wHubCharacteristic 0x0002
No power switching (usb 1.0)
Ganged overcurrent protection
bPwrOn2PwrGood 2 * 2 milli seconds
bHubContrCurrent 0 milli Ampere
DeviceRemovable 0x00
PortPwrCtrlMask 0xff
Hub Port Status:
Port 1: 0000.0103 power enable connect
Port 2: 0000.0100 power
Device Status: 0x0001
Self Powered
Bus 002 Device 002: ID 045e:00dd Microsoft Corp.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x045e Microsoft Corp.
idProduct 0x00dd
bcdDevice 1.73
iManufacturer 1 Microsoft
iProduct 2 Comfort Curve Keyboard 2000
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 59
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 1 Keyboard
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 60
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 10
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 86
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 10
Device Status: 0x0000
(Bus Powered)
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 0 Full speed (or root) hub
bMaxPacketSize0 64
idVendor 0x1d6b Linux Foundation
idProduct 0x0001 1.1 root hub
bcdDevice 2.06
iManufacturer 3 Linux 2.6.32-isobel-wii ohci_hcd
iProduct 2 Nintendo Wii OHCI Host Controller
iSerial 1 ohci-hlwd
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 255
Hub Descriptor:
bLength 9
bDescriptorType 41
nNbrPorts 2
wHubCharacteristic 0x0002
No power switching (usb 1.0)
Ganged overcurrent protection
bPwrOn2PwrGood 2 * 2 milli seconds
bHubContrCurrent 0 milli Ampere
DeviceRemovable 0x00
PortPwrCtrlMask 0xff
Hub Port Status:
Port 1: 0000.0100 power
Port 2: 0000.0303 lowspeed power enable connect
Device Status: 0x0001
Self Powered
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 0 Full speed (or root) hub
bMaxPacketSize0 64
idVendor 0x1d6b Linux Foundation
idProduct 0x0002 2.0 root hub
bcdDevice 2.06
iManufacturer 3 Linux 2.6.32-isobel-wii ehci_hcd
iProduct 2 Nintendo Wii EHCI Host Controller
iSerial 1 ehci-hlwd
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 12
Hub Descriptor:
bLength 9
bDescriptorType 41
nNbrPorts 4
wHubCharacteristic 0x000a
No power switching (usb 1.0)
Per-port overcurrent protection
bPwrOn2PwrGood 10 * 2 milli seconds
bHubContrCurrent 0 milli Ampere
DeviceRemovable 0x00
PortPwrCtrlMask 0xff
Hub Port Status:
Port 1: 0000.0100 power
Port 2: 0000.0100 power
Port 3: 0000.0100 power
Port 4: 0000.0100 power
Device Status: 0x0001
Self Powered
dmesg
reports:
[ 0.000000] Using wii machine description
[ 0.000000] Total memory = 317MB; using 1024kB for hash table (at c1500000)
[ 0.000000] RAM mapped without BATs
[ 0.000000] Linux version 2.6.32-isobel-wii (albert@k) (gcc version 4.3.2 (GCC) ) #1 PREEMPT Sun Dec 6 20:42:34 CET 2009
[ 0.000000] bootconsole [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 c053ad7c, node_mem_map c0593000
[ 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=NTSC,progressive for_additional_kernel_options_targetted_at_hexedit_lovers
[ 0.000000] PID hash table entries: 2048 (order: 1, 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: 75708k/325120k available (5124k kernel code, 249076k reserved, 280k data, 297k bss, 160k 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] Hierarchical RCU implementation.
[ 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.000000] Console: colour dummy device 80x25
[ 0.000000] console [tty0] enabled, bootconsole disabled
[ 0.000469] Mount-cache hash table entries: 512
[ 0.004682] NET: Registered protocol family 16
[ 0.007224] exi: Nintendo GameCube/Wii EXternal Interface (EXI) driver - version 4.0i
[ 0.007340] irq: irq 4 on host /soc/pic0@0c003000 mapped to virtual irq 16
[ 0.007864] exi: about to add [exi0:1] id=0xfffff308 Wii Mask ROM/RTC/SRAM/UART
[ 0.008264] exi: add completed
[ 0.009080] hlwd-gpio: hollywood-gpio: added 32 gpios at d40040c0
[ 0.046285] bio: create slab <bio-0> at 0
[ 0.048710] SCSI subsystem initialized
[ 0.049454] usbcore: registered new interface driver usbfs
[ 0.050104] usbcore: registered new interface driver hub
[ 0.050617] usbcore: registered new device driver usb
[ 0.053776] Bluetooth: Core ver 2.15
[ 0.054285] NET: Registered protocol family 31
[ 0.054309] Bluetooth: HCI device and connection manager initialized
[ 0.054332] Bluetooth: HCI socket layer initialized
[ 0.055083] cfg80211: Using static regulatory domain info
[ 0.055110] cfg80211: Regulatory domain: US
[ 0.055125] (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 0.055150] (2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm)
[ 0.055174] (5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[ 0.055220] (5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[ 0.055246] (5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[ 0.055271] (5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[ 0.055297] (5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm)
[ 0.055349] cfg80211: Calling CRDA for country: US
[ 0.114583] DMA-API: preallocated 65536 debug entries
[ 0.114638] DMA-API: debugging enabled by kernel config
[ 0.114665] Switching to clocksource timebase
[ 0.124874] NET: Registered protocol family 2
[ 0.125210] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.126218] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
[ 0.127381] TCP bind hash table entries: 16384 (order: 6, 327680 bytes)
[ 0.129861] TCP: Hash tables configured (established 16384 bind 16384)
[ 0.129912] TCP reno registered
[ 0.130236] NET: Registered protocol family 1
[ 0.130907] RPC: Registered udp transport module.
[ 0.130960] RPC: Registered tcp transport module.
[ 0.130980] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.139329] starlet-mipc: IPC driver for 'mini' - version 0.4i
[ 0.139485] starlet-mipc: magic=IPC, version=1, mem2_boundary=13f00000
[ 0.139515] starlet-mipc: ipc_in[32] @ 13f00480, ipc_out[32] @ 13f00080
[ 0.139545] starlet-mipc: ppc: intail_idx=0, outhead_idx=0
[ 0.139566] starlet-mipc: arm: inhead_idx=0, outtail_idx=0
[ 0.139589] starlet-mipc: in_ring=1K@d4010480, out_ring=1K@d4014080
[ 0.144564] starlet-mipc: ping OK
[ 0.144612] starlet-mipc: ready
[ 0.144672] hlwd-pic: controller at 0x0d800030 mapped to 0xd4018030
[ 0.144728] irq: irq 14 on host /soc/pic0@0c003000 mapped to virtual irq 17
[ 0.145126] starlet-ipc: Nintendo Wii starlet IPC driver - version 0.3i
[ 0.145614] starlet-es: Nintendo Wii starlet ES driver - version 0.3i
[ 0.146062] gcn-rsw: Nintendo GameCube/Wii Reset SWitch (RSW) driver - version 1.0i
[ 0.146218] irq: irq 1 on host /soc/pic0@0c003000 mapped to virtual irq 18
[ 0.149778] msgmni has been set to 148
[ 0.151000] alg: No test for stdrng (krng)
[ 0.151119] io scheduler noop registered
[ 0.151140] io scheduler anticipatory registered (default)
[ 0.151162] io scheduler deadline registered
[ 0.151245] io scheduler cfq registered
[ 0.151639] gcn-vifb: Nintendo GameCube/Wii Video Interface (VI) driver - version 2.1i
[ 0.151696] gcn-vifb: options: 60Hz,tv=NTSC,progressive
[ 0.152139] irq: irq 8 on host /soc/pic0@0c003000 mapped to virtual irq 19
[ 0.152266] gcn-vifb: NTSC 480i
[ 0.152285] gcn-vifb: framebuffer at 0x01698000, mapped to 0xd4080000, size 1440k
[ 0.152320] gcn-vifb: mode is 576x432x16
[ 0.160878] Console: switching to colour frame buffer device 72x27
[ 0.168524] fb0: gcn-vifb frame buffer device
[ 0.261059] Generic non-volatile memory driver v1.1
[ 0.267356] rvl-stsd: Block driver for the Nintendo Wii SD front slot - version 0.4i
[ 0.279387] rvl-di: Nintendo Wii Disk Interface (DI) driver - version 0.1i
[ 0.291198] irq: irq 2 on host /soc/pic0@0c003000 mapped to virtual irq 20
[ 0.303901] rvl-di: laser unit: rev=0, code=2, date=20080714
[ 0.311894] brd: module loaded
[ 0.324565] loop: module loaded
[ 0.331438] usbcore: registered new interface driver asix
[ 0.337872] Broadcom 43xx driver loaded [ Features: S, Firmware-ID: FW13 ]
[ 0.349336] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 0.361261] irq: irq 4 on host /soc/mini@0d000000/pic1@0d800030 mapped to virtual irq 21
[ 0.373587] ehci-hlwd d040000.ehci: Nintendo Wii EHCI Host Controller
[ 0.380028] ehci-hlwd d040000.ehci: new USB bus registered, assigned bus number 1
[ 0.392463] ehci-hlwd d040000.ehci: irq 21, io base 0x0d040000
[ 0.410717] ehci-hlwd d040000.ehci: USB 2.0 started, EHCI 1.00
[ 0.417063] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 0.429330] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 0.441652] usb usb1: Product: Nintendo Wii EHCI Host Controller
[ 0.448030] usb usb1: Manufacturer: Linux 2.6.32-isobel-wii ehci_hcd
[ 0.454392] usb usb1: SerialNumber: ehci-hlwd
[ 0.461250] usb usb1: configuration #1 chosen from 1 choice
[ 0.468041] hub 1-0:1.0: USB hub found
[ 0.474286] hub 1-0:1.0: 4 ports detected
[ 0.481163] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 0.487589] irq: irq 5 on host /soc/mini@0d000000/pic1@0d800030 mapped to virtual irq 22
[ 0.499760] ohci-hlwd d050000.ohci0: Nintendo Wii OHCI Host Controller
[ 0.512207] ohci-hlwd d050000.ohci0: new USB bus registered, assigned bus number 2
[ 0.524794] ohci-hlwd d050000.ohci0: irq 22, io base 0x0d050000
[ 0.590750] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
[ 0.603339] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 0.615798] usb usb2: Product: Nintendo Wii OHCI Host Controller
[ 0.622208] usb usb2: Manufacturer: Linux 2.6.32-isobel-wii ohci_hcd
[ 0.628656] usb usb2: SerialNumber: ohci-hlwd
[ 0.635517] usb usb2: configuration #1 chosen from 1 choice
[ 0.642455] hub 2-0:1.0: USB hub found
[ 0.648791] hub 2-0:1.0: 2 ports detected
[ 0.655676] irq: irq 6 on host /soc/mini@0d000000/pic1@0d800030 mapped to virtual irq 23
[ 0.668049] ohci-hlwd d060000.ohci1: Nintendo Wii OHCI Host Controller
[ 0.680295] ohci-hlwd d060000.ohci1: new USB bus registered, assigned bus number 3
[ 0.692799] ohci-hlwd d060000.ohci1: irq 23, io base 0x0d060000
[ 0.758853] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001
[ 0.771831] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 0.784649] usb usb3: Product: Nintendo Wii OHCI Host Controller
[ 0.791161] usb usb3: Manufacturer: Linux 2.6.32-isobel-wii ohci_hcd
[ 0.797738] usb usb3: SerialNumber: ohci-hlwd
[ 0.804770] usb usb3: configuration #1 chosen from 1 choice
[ 0.811794] hub 3-0:1.0: USB hub found
[ 0.818167] hub 3-0:1.0: 2 ports detected
[ 0.825167] rvl-sthcd: USB Host Controller driver for the Nintendo Wii - version 0.5i
[ 0.837813] Initializing USB Mass Storage driver...
[ 0.844423] usbcore: registered new interface driver usb-storage
[ 0.850653] USB Mass Storage support registered.
[ 0.857214] usbcore: registered new interface driver libusual
[ 0.863917] mice: PS/2 mouse device common for all mice
[ 0.871422] rtc-gcn: Nintendo GameCube/Wii RTC/SRAM driver - version 1.0i
[ 0.884641] rtc-gcn exi0:1: rtc core: registered rtc-gcn as rtc0
[ 0.891431] i2c /dev entries driver
[ 0.899716] i2c-gpio-of i2c-video.5: using pins 240 (SDA) and 241 (SCL, no clock stretching)
[ 0.912871] gcn-vifb: AVE-RVL support loaded
[ 0.919086] gcn-vifb: NTSC 480i
[ 0.931784] Bluetooth: Generic Bluetooth USB driver ver 0.6
[ 0.938268] usbcore: registered new interface driver btusb
[ 0.944713] sdhci: Secure Digital Host Controller Interface driver
[ 0.950841] sdhci: Copyright(c) Pierre Ossman
[ 0.956705] sdhci-hlwd: Nintendo Wii Secure Digital Host Controller Interface - version 0.1i
[ 0.968607] irq: irq 7 on host /soc/mini@0d000000/pic1@0d800030 mapped to virtual irq 24
[ 0.981095] mmc0: SDHCI controller on d070000.sdhc0 [d070000.sdhc0] using DMA
[ 0.993434] irq: irq 8 on host /soc/mini@0d000000/pic1@0d800030 mapped to virtual irq 25
[ 1.006364] usb 2-2: new low speed USB device using ohci-hlwd and address 2
[ 1.019530] mmc1: SDHCI controller on d080000.sdhc1 [d080000.sdhc1] using DMA
[ 1.034045] usbcore: registered new interface driver usbhid
[ 1.040687] usbhid: v2.6:USB HID core driver
[ 1.047130] gcn-si: Nintendo GameCube/Wii Serial Interface (SI) driver - version 1.0i
[ 1.061505] Advanced Linux Sound Architecture Driver Version 1.0.21.
[ 1.074517] gcn-ai: Nintendo GameCube/Wii Audio Interface (AI) driver - version 1.0i
[ 1.087668] irq: irq 6 on host /soc/pic0@0c003000 mapped to virtual irq 26
[ 1.100796] IRQ 26/gcn-ai: IRQF_DISABLED is not guaranteed on shared IRQs
[ 1.121099] usbcore: registered new interface driver snd-usb-audio
[ 1.128105] ALSA device list:
[ 1.134772] #0: Nintendo GameCube Audio Interface
[ 1.142401] TCP cubic registered
[ 1.148999] NET: Registered protocol family 17
[ 1.155626] Bluetooth: L2CAP ver 2.14
[ 1.162002] Bluetooth: L2CAP socket layer initialized
[ 1.168679] Bluetooth: RFCOMM TTY layer initialized
[ 1.175057] Bluetooth: RFCOMM socket layer initialized
[ 1.181232] Bluetooth: RFCOMM ver 1.11
[ 1.187084] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 1.192974] Bluetooth: BNEP filters: multicast
[ 1.198635] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 1.207080] rtc-gcn exi0:1: setting system clock to 2019-09-16 13:05:05 UTC (1568639105)
[ 1.218671] Waiting for root device /dev/mmcblk0p2...
[ 1.233159] mmc0: new high speed SDHC card at address aaaa
[ 1.239708] mmcblk0: mmc0:aaaa SC16G 14.8 GiB
[ 1.245615] mmcblk0: p1 p2
[ 1.258813] usb 2-2: New USB device found, idVendor=045e, idProduct=00dd
[ 1.269709] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 1.280524] usb 2-2: Product: Comfort Curve Keyboard 2000
[ 1.286033] usb 2-2: Manufacturer: Microsoft
[ 1.291953] usb 2-2: configuration #1 chosen from 1 choice
[ 1.311641] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[ 1.323992] input: Microsoft Comfort Curve Keyboard 2000 as /class/input/input0
[ 1.335808] generic-usb 0003:045E:00DD.0001: input: USB HID v1.11 Keyboard [Microsoft Comfort Curve Keyboard 2000] on usb-ohci-hlwd-2/input0
[ 1.347300] mmc1: queuing unknown CIS tuple 0x80 (5 bytes)
[ 1.354964] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[ 1.363203] mmc1: queuing unknown CIS tuple 0x80 (5 bytes)
[ 1.376301] mmc1: queuing unknown CIS tuple 0x80 (10 bytes)
[ 1.386363] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[ 1.393143] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[ 1.398751] input: Microsoft Comfort Curve Keyboard 2000 as /class/input/input1
[ 1.409948] mmc1: queuing unknown CIS tuple 0x80 (5 bytes)
[ 1.415731] mmc1: queuing unknown CIS tuple 0x80 (4 bytes)
[ 1.421913] generic-usb 0003:045E:00DD.0002: input: USB HID v1.11 Device [Microsoft Comfort Curve Keyboard 2000] on usb-ohci-hlwd-2/input1
[ 1.433069] mmc1: new SDIO card at address 0001
[ 1.439924] b43-sdio mmc1:0001:1: Chip ID 14e4:4318
[ 1.446791] ssb: Core 0 found: ChipCommon (cc 0x800, rev 0x0D, vendor 0x4243)
[ 1.458206] ssb: Core 1 found: IEEE 802.11 (cc 0x812, rev 0x09, vendor 0x4243)
[ 1.469572] ssb: Core 2 found: PCI (cc 0x804, rev 0x0C, vendor 0x4243)
[ 1.480907] ssb: Core 3 found: PCMCIA (cc 0x80D, rev 0x07, vendor 0x4243)
[ 1.492953] b43-phy0: Broadcom 4318 WLAN found (core revision 9)
[ 1.555421] phy0: Selected rate control algorithm 'minstrel'
[ 1.562628] ssb: Sonics Silicon Backplane found on SDIO device mmc1:0001:1
[ 1.578748] usb 3-1: new full speed USB device using ohci-hlwd and address 2
[ 1.680035] EXT3-fs: mounted filesystem with writeback data mode.
[ 1.686217] VFS: Mounted root (ext3 filesystem) readonly on device 179:2.
[ 1.698572] Freeing unused kernel memory: 160k init
[ 1.705200] kjournald starting. Commit interval 5 seconds
[ 1.755962] usb 3-1: New USB device found, idVendor=057e, idProduct=0305
[ 1.769716] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 1.783664] usb 3-1: Product: BCM2045A
[ 1.790509] usb 3-1: Manufacturer: Broadcom Corp
[ 1.798755] usb 3-1: configuration #1 chosen from 1 choice
[ 3.380659] EXT3 FS on mmcblk0p2, internal journal
Since Whiite Linux is apparently based on Debian Lenny, it might be possible to manually download DEB archives, via FTP, using paths from http://archive.debian.org/debian-archive/debian/dists/lenny/main/binary-powerpc/Packages.bz2 (which uncompresses to a plain text file, describing package names/synopses/dependencies).
Indeed, I was able to http://archive.debian.org/debian-archive/debian/pool/main/g/gcc-3.4/gcc-3.4-base_3.4.6-9_powerpc.deb, as an example.
With Whiite, the rvl-di
device node seems to be missing, but doing mknod RVLDI b 60 0
seems to be a suitable workaround, as an aside.
Looks like Linux patches are at http://www.gc-linux.org/wiki/Mainline_Kernel, which could be useful. We also now have a Wii U, which is based on the Espresso PowerPC core, and I plan to obtain a GameCube memory card, to reverse-engineer the EXI bus, on the Wii.
Added the Xenon/Cell/Broadway PVRs, to kernel.enryo/src/arch/powerpc/pvr.h, although the kernel/ version doesn't seem to exist, for some reason...
As with the PS3, it may also be interesting to support the Nintendo Wii, as a cheap, 32-bit, big-endian PowerPC target, for build/boot, in the future, although it's not a very open platform, since documentation is scarce, outside of reverse-engineering at places like WiiBrew.
A European-market Wii console is available, within the project, along with an SD card, and a copy of The Legend of Zelda : Twilight Princess (RVL-RZDP-UKV), which may be useful, in order to use the "Twilight Hack", and install the HomeBrew Channel, in order to run custom code.
Judging by the Linux BSP, at https://github.com/torvalds/linux/blob/2f4c53349961c8ca480193e47da4d44fdb8335a8/arch/powerpc/platforms/embedded6xx/wii.c, along with the Wii, and GameCube pseudo-device trees, at Kernel.org, at least some level of Open Firmware discoverability is supported, and someone was working on a FreeBSD port, at https://wiki.freebsd.org/action/show/Wii?action=show&redirect=FreeBSD%2FWii.
Additionally, any effort towards a Wii port might also be usefully-extended, if anyone wanted to support related machines, like the GameCube, and Wii U.