There have been numerous blog posts written on getting USB to Serial adapters working under Mac OS X — and specifically Yosemite. However, none of them gave me the absolute answer on how to get it working perfectly. And when a colleague of mine asked me to help him get his working on his Mac a couple of weeks ago, it seemed all was lost for him as well.
We followed the instructions on a couple of different web pages without any success and finally we just copied the driver I had running to his Mac and everything was working all of a sudden! Magic.
The driver I’m using took me a while to get right as well when I first started using a Mac some years ago. But since then it hadn’t failed me. Until of course Yosemite came along and required drivers to be signed:
com.apple.kextd: ERROR: invalid signature for com.prolific.driver.PL2303, will not load
Luckily this was easily solved by running the following command and rebooting:
sudo nvram boot-args="kext-dev-mode=1"
Basically, there are two drivers available on the Internet for the Prolific USB to Serial chipset. The first is the Open Source version available on GitHub and the second is from a website called Plugable. As far as I can see the results are mixed for any of the adapters, but I’m using the latter.
When I first downloaded and installed this driver, it didn’t work until I made some changes in the
Info.plist file included in the driver. To do so, I first unloaded the driver and opened the Info file:
sudo kextunload /System/Library/Extensions/ProlificUsbSerial.kext sudo vi /System/Library/Extensions/ProlificUsbSerial.kext/Contents/Info.plist
In it you will find the
067B_2304 key which includes a certain
idVendor. These settings are the ones I had to change to reflect the following values:
<key>067B_2304</key> <dict> <key>CFBundleIdentifier</key> <string>com.prolific.driver.PL2303</string> <key>IOClass</key> <string>com_prolific_driver_PL2303</string> <key>IOProviderClass</key> <string>IOUSBInterface</string> <key>bConfigurationValue</key> <integer>1</integer> <key>bInterfaceNumber</key> <integer>0</integer> <key>idProduct</key> <integer>8296</integer> <key>idVendor</key> <integer>24969</integer> </dict>
And when finished you can reload the kext-file:
sudo kextload /System/Library/Extensions/ProlificUsbSerial.kext
The known-working USB to Serial adapters for this driver are the following:
Please let me know on Twitter if it works for your device as well, or if you have any other questions.