mattgadient.com

Dynex DX-PCIGB, Mac OS X Snow Leopard, Magic Packets, and the Sleep Proxy Service

The Dynex DX-PCIGB in a computer running Mac OS X Snow Leopard.

I’ll jabber on for a bit, and then get to the Dynex PCIGB network card pictured above.┬áIf you want to jump right to the card, scroll down a bunch!

Wake for Network Access

Also called “Wake for Ethernet network access” (and another name for the wireless variant), this is the wake-on-lan equivalent for the Mac OS. When combined with Time Capsule (or Airport Extreme), the way things work in the ideal scenario is essentially as follows:

  1. Home network is connected to an Airport Extreme or Time Capsule (generally acting as an internet router).
  2. Mac computer is sharing something – files, printers, whatever, and has the Wake option (in power savings) turned on.
  3. Mac goes to sleep after a period of inactivity to save power and all that good stuff.
  4. Airport Extreme (or Time Capsule) “remembers” what the Mac was sharing, and keeps feeding that info to computers on the network. Thus, the asleep computer still shows up in the SHARED section in the Finder, it’s shared printers will still show up, etc.
  5. When another computer tries to access something on that shared but sleeping mac, Time Capsule / Airport Extreme sends a “magic packet” (wake-up-packet) to the sleeping Mac to wake it up.
  6. Mac wakes up, and shares.

Where this excels is in the way that Time Capsule / Airport Express utilize what’s known as a Sleep Proxy Service (“Bonjour Sleep Proxy” is the fancy Apple-name). When a machine goes to sleep, it’s still advertised as being alive on the network (the TC / AE advertises and responds on the sleeping machine’s behalf and wakes it if/when needed). This is considerably more convenient than the standard WOL style networks where once the machine’s asleep, it’s basically missing from the network until specifically woken.

There are however a few potential downsides:

-Reportedly, the sleeping machine will be woken periodically just to sync with Airport Express / Time Machine. This means that the computer basically gets woken for no reason at all every so often. Whether the sound of a machine powering up randomly bothers you or not is one thing, but the larger issue here is that you’re eating slightly into your power savings.

-Any addon network cards / adapters need to support the Magic Packet. Otherwise, the option won’t show up in the power settings, and machine won’t be advertised on the network, or wake up. All new Macs have this functionality built in, but if you’re throwing an addon card into an old Mac Pro or trying to add a wireless USB adapter, this could be an issue.

-You need an “Apple Home”. Computers have to be Macs, you need TC / AE (another random router won’t do). I’d imagine that Windows machines on the network can access the stuff on the sleeping Macs, but not vice-versa. A larger issue is that if you have a connection established (Eject button shows up beside the machine in Finder), and you manually sleep the computer you’re connected to, it doesn’t seem to wake up. You end up having to walk over and manually turn the thing on to get the connection to establish. This could just be a bug, but I was able to repeat it consistently on both a real iMac and a hackintosh.

In any case, moving on… The Realtek DX-PCIGB (Rev 1.1) PCI Network Adapter

I was looking for a network card for a hackintosh, and I came across the Dynex DX-PCIGB PCI network card. Now normally I associate Dynex with Garbage, but surprisingly enough it’s a solid card for use on the Mac side. It supports OS X right out of the box (along with Windows of course), and is very low-cost. You’re looking at about $20 generally (mine was $22 from Best Buy), although I’m sure you can find it around the web for closer to $10.

Installation’s simple. Pop the card in, turn the Mac (or hackintosh) on, and it works. It utilizes the Realtek RTL8169 chip, and as it turns out, Snow Leopard (10.6.4 anyway) has built-in support. Realtek also offers a driver on their site if you’re so inclined (you’ll have to grab the one under the PCI-E section even though this is a PCI card). If realtek’s site is giving you problems, Google “RTGNICv2.0.4.pkg” – it’s the name of the current driver at the time of this writing, and you should be able to find copies on various driver sites.

——

I did a little testing, and here’s what I found…

Default (Mac OS X 10.6.4) driver: Works in both 32/64-bit modes. Frequently though, the magic packet either didn’t happen or didn’t work – machine wouldn’t wake by trying to access it from another machine. This could have something to do with me sleeping/waking the thing every 15-20 seconds to test it, or it could be a larger issue.

Realtek driver: Works in 32-bit mode. Does NOT work in 64-bit mode. This driver seems to work a lot better (the above issue only happened once). However, there’s obviously the flaw where it only works if you boot SL in 32-bit mode. Most people do (it’s the default), but if you’re running SL Server you may want to double-check. The other issue I have with the driver is that it overwrites the default driver (a plugin inside IONetworkingFamily). This isn’t the end of the world except that if you need to uninstall it for some reason, your old driver’s gone and you’ll either have to search around for the original IONetworkingFamily.kext, or find some other alternative. The other side effect is that if an OS X Software Update includes a new IONetworkingFamily.kext, your Realtek driver gets overwritten (although since the default OS X kext works anyway it’s not as big a deal). In any case, touching/modifying original kexts is not ideal.

——

Based on the above, if you’re dead set on the 64-bit kernel, you’ve only got 1 option – the default. If you’re using the 32-bit kernel, I’d tend to suggest the Realtek driver – however, you may want to copy your IONetworkingFamily.kext file from /System/Library/Extensions before you install to keep as a backup. Hopefully in the future Realtek comes up with a 64-bit driver, and just hands it to Apple for use in the next update – it would certainly be the best solution all around.