2019-12-11

FTDI USB Serial MacOS Catalina Resource Busy error

In an effort not to be DenverCoder9, here is what I found.

New MacBook Pro, using an FTDI USB serial cable (used to program ESP32 chips).

The error was "Resource busy".

The problem is that googling this gets a lot of people saying they have this issue and a lot of answers which didn't help me - it seems many people do this to themselves by having the device open from some other app. Using lsof I confirmed it was not open by something else. Some pages even suggested update to python, but I confirmed that even a simple cat of /dev/cu.usbserial-A... said the same, so not python. Someone even suggested it was not a genuine FTDI chip, so I ordered a cable from RS, and the same issue persisted.

After a lot of googling, it seems to me that there must be some sort of bug in Catalina. It looks like FTDI USB serial should work on a Mac without needing custom drivers, but it does not work. It is recognised and the /dev/ created as you would expect, but shows the resource busy error.

Importantly there was no pop-up or prompt or error of any sort when connecting the lead, it simply appears in /dev/ as you would expect. No clue that there is a problem with drivers.

So, what did I do?
  • Install the VCP drivers from FTDI (2.4.2), it is a DMG you open and install. This all went swimmingly but did not help even after a reboot, and not obvious clue as to why.
  • I used the About This Mac, System Report, Software, Extensions, and saw FTDIUSBSerialDriver 2.4.2 listed, Notarised:Yes, Loaded: No, which was a clue.
  • Going to System Preferences, Security and Privacy, it showed text "Some system software was blocked from loading". However, this was subtle as the adjacent "Allow" button was not active. It was not immediately obvious but I had to "unlock" the window, and then I could click Allow, and select FTDI to allow the driver.
Then it worked! It seems you do need the FTDI driver for some reason, even though MacOS knows of the FTDI USB serial. It also seems that MacOS has made the process somewhat more complex.


6 comments:

  1. For whatever it's worth; I've recently had almost the exact opposite of this problem… In that I had a (ostensibly genuine – but perhaps not?) FTDI UART device, which totally refused to show up as a device under Catelina until after I *uninstalled* the FTDI drivers (which I'd used previously). Having done that (and using the native MacOS support) it's behaved properly.

    ReplyDelete
  2. I'm having the same issue, only thing is, I don't have the notification that I could allow the software to load. In the system overview there's also mentioned that the driver is to old. How can I bypass this?

    ReplyDelete
  3. Thank you RevK! This worked for me. I appreciate the pointer. It was indeed the driver was notarized, but not loaded.

    For unknown poster above that did not see the security message, odds are more likely that you have to reboot the system after installing, or the driver will not get loaded.

    ReplyDelete
  4. I have installed the latest 2.4.4 driver and it is showing as Loadable but the system is loading the Apple driver instead which is not working for my device.

    Any idea how to force it to use the FTDI driver? I am also getting like others "(kernel) Notice - new kext com.apple.driver.usb.AppleUSBHostPlatformProperties, v1.2 matches prelinked kext but can't determine if executables are the same (no UUIDs)."

    ReplyDelete
  5. Good lord...thank you SO MUCH. you should post this solution on the FTDI catalina forum on this issue...wonderful. Have an amazing weekenda

    ReplyDelete
  6. Thanks! Removing /System/Library/Extensions/FTDIUSBSerialDriver.kext and leaving the AppleUSBFTDI.kext one and rebooting resolved this for me in High Sierra.

    ReplyDelete

Comments are moderated purely to filter out obvious spam, but it means they may not show immediately.

Hot tubbing...

I have a hot tub, it came with the house over 3 years ago. Managing a hot tub is complicated, and expensive. The expensive part is the power...