While Mac OS tries to look simple it still fails miserably at some 3rd party hardware support. For example a DIGITUS DN-7003GT USB Wireless dongle I got recently. Auto detection: fail.
The Digitus homepage promises Mac support. But no driver to download. Most Usb devices just re-use a specific wireless chipset. The driver for that chipset will work on every dongle, no matter which branding it uses. The DIGITUS branding contains just a RTL8187B chipset.
HOWTO get R8187 running
1. Download driver
Chipset: RTL 8187B, choose the OSX 10.5 one, even if you have OS X 10.6.
2. Install using the install command
Probably Mac OS X will say, that the driver is incompatible, but just install it for now.
3. Edit the driver
Now the driver needs to be changed for two reasons:
a) make it compatible to Mac OSX 10.6
edit the last few lines in /System/Library/Extensions/RTL8187Bl.kext/Contents/Info.plist
search for com.apple.kpi and replace update the version numbers to 8.1.0, so that you get:
<key>com.apple.kpi.bsd</key> <string>8.1.0</string> <key>com.apple.kpi.iokit<k/ey> <string>8.1.0</string> <key>com.apple.kpi.libkern</key> <string>8.1.0</string> <key>com.apple.kpi.mach</key> <string>8.1.0</string>
b) make it compatible to the specific Digitus USB wireless dongle
Use "About this Mac"->"More Information" to find your USB Device ID.
Google helps to convert it to decimal:
Device ID 0x8189 in decimal is 33161
However in the Info.plist I only have a different device ID. But I am able to locate the Vendor ID:
<key>idProduct</key> <integer>33161</integer> <key>idVendor</key> <integer>3034</integer>The Product ID just needs to be changed to match the actual product ID of the specific USB dongle.
4. Fix permissions of the kernel extension
With Mac OS X, permissions of kernel Extensions are very important! You can even go to Disk Utility and let it repair all disk permissions.
chown -R root:wheel RTL8187Bl.kext chmod -R 755 RTL8187Bl.kext
5. Enable the kext in Mac OS X
Mac OS X keeps a cache of all kext, so we need to publish the newly compatible driver there:
rm /System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext kextcache -v 1 -a i386 -a x86_64 -m /System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext /System/Library/Extensions
Make sure the device does not get listed as unsuccessful during the kextcache enabling!
6. Load the driver
Now just plug in your USB dongle to see if it is detected correctly. For debugging purposes, we can load the driver manually:
kextload -t RTL8187Bl.kext
Dmesg should now have the message:
RTL8187B: Ethernet address xx:xx:xx:xx:xx:xx
You can only use it with the Realtek USB WLAN Client Utility. Really uncomfortable. Is there any dongle out there that works on Mac without a utility?