Adding a USB-to-Ethernet Adapter to a Mac
What would you do if you wanted to add a second Ethernet card to a Mac mini, iBook, or iMac to turn it into a router, a firewall, or a packet shaper? Or, how would you work around a burnt-out internal Ethernet chip in such a Mac? With a Power Mac, you can buy an inexpensive PCI Ethernet card and be up-and-running with a minimum of fuss (as I did for my Power Mac G4 after a lightning strike; see "Adding Ethernet to a Power Mac" in TidBITS-737). But it’s a trickier problem for Apple’s consumer Macs, though they have plenty of power and other attributes (such as minimal noise generation) that make them attractive as utility machines. In some cases, you might be able to use the Mac’s AirPort card as your second Ethernet interface, but AirPort isn’t as fast as Ethernet and AirPort networks aren’t quite as stable for a machine that’s acting as a server.
A better solution is a USB-to-Ethernet adapter, since they’re inexpensive (about $25 to $40) and readily available from companies like Linksys, D-Link, Netgear, and others. However, Mac OS X doesn’t include drivers for these adapters, and the companies in question aren’t the most Mac-friendly firms out there. Thanks to Peter Sichel of the Macintosh networking developer Sustainable Softworks, you can get USB-to-Ethernet adapters from these firms working with your Mac.
A while back, Peter found himself wanting to add a second Ethernet card to an iBook, but when he researched the situation, he found that the only driver that worked the way he wanted was an open source driver written by Daniel Sumorok for Mac OS X 10.3 Panther. Unfortunately, Daniel’s driver worked only with USB 1.1 devices, which are limited to a maximum speed of 12 Mbps. While 12 Mbps is roughly similar to the 10 Mbps of 10Base-T Ethernet, if there are low-speed devices such as a mouse or keyboard on the same USB bus, they bring USB 1.1’s speed down to 1.5 Mbps. That level of performance might be acceptable for Internet access over a standard broadband connection but wouldn’t be for local network usage. Luckily, there are also USB-to-Ethernet adapters that use USB 2.0 (which has a maximum speed of 480 Mbps) and that can keep up with 100Base-T Ethernet, but Daniel’s driver didn’t support these devices.
Peter contacted Daniel about helping to make Daniel’s original driver work with USB 2.0 devices. Daniel was interested in the project, but said that he lacked the hardware and software to test, so Peter provided him with the necessary resources, helped out with testing and, once it became clear changes would be necessary for Tiger, porting. The upshot is that after a few months of work, Peter and Daniel now have a pair of drivers, one for USB 1.1 Ethernet adapters and the other for USB 2.0 Ethernet adapters, and both are Panther- and Tiger-compatible. They’re also free and open source, released under the GPL license, so you can download them along with their source code. You can read more about the drivers and download them at the page linked below.