GUC-232A Driver for MacOS X

I use this USB-to-serial adapter to talk to my Garmin eMap GPS unit. It’s a little hard to find the driver for it, and all the web sites that claim to be “driver central” or some such thing are obnoxious. They want registrations, they’re covered in ads, etc. Well, I hunted arond and found the driver here.

This driver worked out-of-the-box for me. I’ve had a few minor glitches, which you can read about below.

Before I could figure out how to update the driver to understand my version of this device, I had to use the Apple System Profiler to find out what information it sends to the OS. When I find it under USB Hardware in the System Profiler, I see:

USB Device:
Version: 0.01
Bus Power (mA): 500
Speed: Up to 12 Mb/sec
Product ID: 0x2008
Vendor ID: 0x0557

Note that 0x2008 is hexadecimal. Using the calculator, I turn that into 8200 decimal. Likewise, I turn 0x0557 into 1367 decimal.

I perform the normal system installation as per their instructions. I don’t restart my computer. This is MacOS, not Windows. Even a kernel extension doesn’t require a reboot.

I use Cmd-Option-Esc to kill the installer after it gets to the “Restart” button.

Then I open a Terminal and run a few commands:

cd /System/Library/Extensions/ProlificUsbSerial.kext/Contents
sudo cp Info.plist Info.plist.dist
sudo vi Info.plist

The cp command is simply to keep a copy of the original. I like to be neat and have it for reference.

When I edit the Info.plist file, I change two integer values. I change <font color="brown"><integer>8963</integer></font> to <font color="navy"><integer>8200</integer></font> and <font color="brown"><integer>1659</integer></font> to <font color="navy"><integer>1367</integer></font>.

Now I want to load my kernel extension. I type the following at the command line:

sudo kextload /System/Library/Extensions/ProlificUsbSerial.kext

Easy, huh? I don’t understand why installers won’t do that. They insist on making you restart.

To confirm that you have the driver properly installed and configured, run ls /dev/cu.usbserial. If that file exists, the driver is correctly installed. If that file doesn’t exist, then you need to try something else.