What protocol does the Wii use for Ethernet over USB?

2

1

I was disappointed when I realised the Wii doesn't have an Ethernet port, but the settings interface has support for a wired connection. Apparently there is an Ethernet over USB adapter for the Wii which is good news, but it's priced about 5 times more than I'd expect to pay for a basic feature.

I've probably got some hardware lying around somewhere that'll do the trick given the correct kernel modules and configuration for the protocol, and knowing the protocol also opens interesting possibilities.

I have successfully configured OpenWrt to be able to route traffic from my home network over any Android phone with USB tether, which is great when our ADSL line goes down. This works with kmod-usb-net-rndis, but not with kmod-usb-net-cdc-ether alone, so that tells me that Android supports the proprietary RNDIS protocol, but unfortunately probably not the Network Control Model (NCM) ‘subset’ of the standard USB Communications Device Class (USB CDC) protocol*. (I have tested this with Android versions 2.2.2, 2.3.7 (CM7.2.0), and 4.0.3.) I have tried to use the Wii with USB tether but it doesn't work, and since Android supports RNDIS, this means that the Wii probably doesn't.

So the Wii may support USB CDC or some other protocol (there seem to be quite a few incompatible proprietary Ethernet over USB protocols knocking around), but probably not RNDIS. Can anyone confirm this? Do you know exactly which protocol(s) the Wii supports for Ethernet over USB?

Note: By ‘Ethernet over USB’ I am not referring to the PPP over USB serial that you get with mobile broadband dongles. I'm expecting the Wii to obtain its IP address using DHCP.

* I'm not clear on the ‘models’ and ‘subsets’ of USB CDC, so please correct me if I'm wrong.

James Haigh

Posted 2013-06-02T22:33:31.370

Reputation: 554

Answers

3

My Wii Ethernet over USB adapter has Vendor ID 0x0b95 and Device ID 0x7720. This refers to the ASIX AX88772 controller.

I couldn't find any information on supported protocols in the specs, but the driver for Haiku OS (and other) somehow refer to the Network Control Model:

/*
 *  ASIX AX88172/AX88772/AX88178 USB 2.0 Ethernet Driver.
 *  [snip]
 *
 *  Heavily based on code of the
 *  Driver for USB Ethernet Control Model devices
 *  [snip]
 */

There is a distinct Linux driver for ASIX controllers, it doesn't seem to refer to any official protocols.

When you google for "AX88772 wii", you find that some people were able to use AX88772 based USB ethernet adaptors, but not all available. At least it's easy to find a bunch of adaptors using that controller.

Jens Erat

Posted 2013-06-02T22:33:31.370

Reputation: 14 141

Ethernet Control Model is not the same as Network Control Model; it is a very old model that was designed for USB 1.1. Nevertheless, it is part of standard CDC, and this is giving me stronger hints that the Wii supports CDC, which is what I was hoping for. It may be that the Wii also supports newer CDC models. With that partial confirmation, I think it's worth exploring, so thanks for this. – James Haigh – 2013-06-02T23:53:04.553

If I can help you by attaching it to a linux box and pulling some information, let me know. – Jens Erat – 2013-06-03T05:27:29.800

Are you familiar with OpenWrt? If you have an OpenWrt router with a USB port, I'd be interested to know whether your Wii adapter works with kmod-usb-net-cdc-ether, without any other kmod-usb-net-* installed. Note that if a module is uninstalled, it is still active until a reboot. – James Haigh – 2013-06-03T18:36:14.890

I've got a semi-bricked box which I will unbrick this weekend, than I can tell more. Let me know if you don't need to know any more until then. – Jens Erat – 2013-06-03T22:44:29.027

Don't worry, there's no urgency in this. It's mainly a curiosity, the main use-case I have in mind is to connect the Wii to a Raspberry Pi which will bridge the Ethernet interface to the USB interface, avoiding WiFi. I intend to use an RPi as a media center frontend at some point which will sit right next to the Wii, but currently I don't even have an RPi yet. The other reason for asking is that I want to file a feature request in Android asking for CDC support, but I want to be clear on exactly which bit I'm asking for. I may also be able to list the Wii as a use-case in the feature request. – James Haigh – 2013-06-04T18:50:57.550