OS X Yosemite and Prolific USB Drivers

Prolific USB to Serial Adapter

[Note from November of 2015: This stopped working for me. I have not tried to make this work in El Capitan. I am now using the app Serial. It’s not cheap at $29.99 (£22.99), but it works. I’ve not had any problems with any USB serial adapter (including USB consoles of Cisco devices) since I started using it. Highly recommended!]

[Note from December 2015: You might try the driver from Aten. Go there, select Resources, then Software & Driver. It has been reported that this driver works on El Capitan.]

If you are an OS X user, you know that a new OS has come out. New OS upgrades are always shiny, but also come with some level of risk. I have an old MacBook that had been running the Yosemite beta, so I wasn’t too worried about upgrading my primary laptop when the Yosemite final was released. All was fine and dandy until I was onsite and couldn’t console into a router because my ATEN USB to serial adapter wasn’t working…

I’ve been using this particular model of adapter for a long time. They have had the occasional driver issue, but they’ve been good and reliable overall, so I was surprised when I tried to open the device it wasn’t present. This was odd, but I immediately realized it probably had to do with the OS upgrade. No problem, I’ll just reinstall the driver, problem solved!

Not so much. The device still wasn’t loading. At this point, I’m becoming concerned. I ran Console and saw this error when I plugged in my USB adapter:

10/30/14 14:32:09.553 com.apple.kextd[19]: ERROR: invalid signature for
com.prolific.driver.PL2303, will not load

Well, that’s not good. After a bit of searching, I discover that it’s Windows Vista all over again. Well, it’s not actually that bad, but it did remind me of a behavior change in Vista that required all drivers to be signed with a trusted signature. Apparently, Mavericks has been helpfully logging warnings about this, but since nothing had stopped working, I guess no one did anything to fix it. Now with Yosemite, all kernel extensions must be signed or they won’t load. No problem, I’ll just install the updated driver!

Not so much. The device driver is the same as the one I already have. Fortunately, I’d already found the workaround. With Windows Vista, you could hit F8 at boot and boot in a dev mode that allowed any driver to load. You had to do that every time you booted. Fortunately, with Mac you only need to run this command once and reboot, after which it’s set:

sudo nvram boot-args="kext-dev-mode=1"

After rebooting, I found that I had to manually load the kext the first time, but it seems to have been auto-loading ever since. To manually load the kext:

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

If you check your logs, you’ll see its back to a warning when the kext is loaded:

11/12/14 19:12:41.747 com.apple.kextd[19]: kext-dev-mode allowing invalid
signature -67062 0xFFFFFFFFFFFEFA0A for kext
"/System/Library/Extensions/ProlificUsbSerial.kext"

More importantly, you’ll have your device working and can finally fix that router you’re supposed to be fixing…

FIN

35 thoughts on “OS X Yosemite and Prolific USB Drivers

  1. Nice tip!

    After going through these troubles with 10.5 to 10.6 and again in 10.7, I finally broke down a bought one of these.

    http://gridconnect.com/industrial-wireless/bluetooth-serial/rs232-bluetooth.html

    Now not only do I not worry about an os update breaking my serial adaptor, I am also not tethered to the length of my device cable. In fact most of the time I don’t even need to carry my laptop with me, as my phone or tablet will get me into just about any device and do what needs to be done.

  2. i have tried to ti follow the steps as instructed. However, im still running into the same issue. I can connect initially but after i remove and reconnect the usblike i swould od in real life then it no longer works. Any ideas?

    • server:~$ sudo kextload /System/Library/Extensions/ProlificUsbSerial.kext
      /System/Library/Extensions/ProlificUsbSerial.kext failed to load – (libkern/kext) not found; check the system/kernel logs for errors or try kextutil(8)

      • 1. maybe you need to copy the kext file to path : /System/Library/Extensions/
        2. is the kext file x86_64 or i386 ? did it match the system kernel ?

  3. I have the same problem and followed the instructions above. When I manually load the driver “sudo kextload /System/Library/Extensions/ProlificUsbSerial.kext” I get the following in Console:

    12/15/14 4:18:23.754 PM com.apple.kextd[19]: kext file:///System/Library/Extensions/ProlificUsbSerial.kext/ is in hash exception list, allowing to load

    However, I still do not get the USB adapter to show up in /dev after it is plugged in to the USB port. (Running OS X 10.10.1/ latest Prolific driver)

    Ayn suggestions?

    • You probably need to modify the /System/Library/Extensions/ProlificUsbSerial.kext/Contents/Info.plist file. Compare the ‘idProduct’ and ‘idVendor’ keys with the values in the System Report (About This MAC -> System Report -> USB). Note you’ll need to plug in your cable in order to see these values.

      Modify the 2303 key and reboot. You should then see /dev/tty.usbserial and /dev/cu.usbserial.

      067B_2303

      CFBundleIdentifier
      com.prolific.driver.PL2303
      IOClass
      com_prolific_driver_PL2303
      IOProviderClass
      IOUSBInterface
      bConfigurationValue
      1
      bInterfaceNumber
      0
      idProduct
      8200
      idVendor
      1367

      • I’m writing a blog post this evening that explains this, step by step. I grabbed a Tripplite branded adapter off the shelf at work and was surprised when it didn’t work. Didn’t realize it was a Tripplite adapter (all the others I’ve used were ATEN) until I looked at the USB report, so I documented the process of fixing the driver. Still annoying to have to fix the driver…

      • This worked for Yosemite, then unfortunately I upgraded to El Capitan and could not get the Pantech UM290 recognized.

  4. The above instructions worked for me so now I see the serial device as a device in /dev when plugged in. However, I am not able to communicate over the serial connection using screen :(

  5. I gave up on Prolific usb-serial adapters. I found a FTDI one that works great and immediately ordered a second. I have endless trouble with Prolific and others on both Windows and Mac.

  6. THANKS! worked like a charm!
    i am using the IOGEAR GUC232A. Downloaded latest OS X drivers from their website.
    ran the sudo nvram boot-args=”kext-dev-mode=1″ rebooted. Installed the drivers, rebooted again. Now the device show up and i can make console connections!!

  7. /System/Library/Extensions/ProlificUsbSerial.kext failed to load – (libkern/kext) kext (kmod) start/stop routine failed; check the system/kernel logs for errors or try kextutil(8).

    • It depends on version of your beta. In the beta 15A262e which is latest today you can disable ‘System Integrity Protection’ with csrutil from OS X terminal in the recovery mode. However, this is just workaround not a solution and also this is unsupported configuration which may be break in the feature. From my perspective only signed module/driver is real solution for this issue.

  8. Please help! I havent been able to get usb-serial connection working. I installed PL2303_MacOSX_v1.5.1 drivers, installation went fine but if I try to establish a connection I just get a blinking cursor and nothing happends. Here’s what I see:

    er$ kextstat | grep 2303
    151 0 0xffffff7f838c9000 0xb000 0xb000 nl.bjaelectronics.driver.PL2303 (1.0.0d1)
    152 0 0xffffff7f838d4000 0x7000 0x7000 com.prolific.driver.PL2303 (1.5.1)

    er$ ls /dev | grep usb
    cu.usbserial
    tty.usbserial

    r$ ls /dev | grep 2303
    cu.PL2303-00001014
    tty.PL2303-00001014

    I’ve tried to manually load the kext, no change. I’ve also tried unload the kext for both of the above and nothing. Any suggestion? ideas? all welcome! :)

    • Kext is signed, so El Capitan will load it if you manually set it up in the right directory, but USB product/vendor are 0x2008/0x557 and may not match all cables.

    • Honestly.. Why didn’t i find your comment 5h ago.. it work right away with no messing about with kext editing etc.. THANK YOUY!! :-)

  9. I’m not sure I see how this would work; in El Capitan, you cannot do the kext-devmode=1 trick, it’s no longer allowed. Secondly, if you get the Serial app, it’s expecting to see some kind of driver that’ll allow you to use the usb-to-serial cable (Prolific or otherwise). When I download Serial, it comes up with a blank list…since I can’t load the Prolific driver.

    Has anyone been able to get this to work?

    • The newer drivers are signed, so the kext-devmode hack isn’t needed. Serial has worked with every USB adapter I have. It does not need a driver, it has it’s own drivers built in. If yours isn’t working, you can try enabling debug logging. That option is available under help if you hold down option while clicking. The developer is very responsive, so it may be worth while to report that as a bug.

      • Thanks; in my case, it may actually be something more with Parallels. What I’m using the usb-serial cable for, is my UPS that only has a serial connection and Windows software, so I’d been using it in a virtual machine for a long time just fine. I’d load up my Windows VM and run the UPSMON software so I could check on the UPS’s health, etc., from time to time. Now, when I reinstall Prolific, all’s good until I run Parallels. It no longer works within the VM, and it never releases the USB Controller D device back to the OS. So it may be something I’ll need to ask Parallels about.
        Never could get Serial to work, though, but perhaps I don’t need it for my purposes?

        • Probably not. Serial is specifically for a terminal session with the device, which is not something you would do with a UPS. For Parallels, the OS X driver doesn’t matter. Tell Parallels to connect the USB device to the VM and let Windows handle the drivers.

          • So my problem turned out to be Parallels VM; It had worked just fine for a long time, but apparently sometime after the v11 release, it was grabbing the Usb-Serial Controller D device, was unable to use it, and wouldn’t release it until I shut down the computer.

            For anyone else with this particular problem, luckily Parallels just released 11.1.2 which addressed the issue and fixes it.

            Appreciate the assistance.

  10. I got the Prolific driver to work with my El Capitan system (running 10.11.2). I had to turn off “SIP” in recovery mode to do it though, which was easy – see directions here:

    http://www.makeuseof.com/tag/mac-security-el-captan-rootless/

    I am using the PL2303_MacOSX_v1.6.0_20151022.pkg version of the Prolific driver, which I got off the prolific.com.tw website.

    The Console app is useful for seeing the logs, and filtering for the string “2303”, to see if this is failing or not when I plugged in the device.

    Woohoo,
    paul

Leave a Reply