OSX FTDI/USB Serial adapter only creates new /dev/cu.* for each USB port/reboot

Dsplay Kexts

kextstat | grep -v apple # all non-apple kexts

kextstat | grep FTDI

Result:

 171    0 0xffffff7f83efe000 0x8000     0x8000     com.FTDI.driver.FTDIUSBSerialDriver (2.2.18) 638ECCC3-375D-CD1A-C2EC-0DC14740FC9C <137 52 5 4 3 1>

https://superuser.com/questions/1135730/how-to-release-reset-serial-port-ftdi-devices-mac-osx#comment1649421_1136084

Un/Reload FTDI Kext

sudo kextunload -b com.FTDI.driver.FTDIUSBSerialDriver
sudo kextload -b com.FTDI.driver.FTDIUSBSerialDriver

Result from kextunload:

kernel) Can't unload kext com.FTDI.driver.FTDIUSBSerialDriver; classes have instances:
(kernel)     Kext com.FTDI.driver.FTDIUSBSerialDriver class FTDIUSBSerialDriver has 2 instances.
Failed to unload com.FTDI.driver.FTDIUSBSerialDriver - (libkern/kext) kext is in use or retained (cannot unload).

https://stackoverflow.com/questions/26798032/patched-ftdiusbserialdriver-kext-has-to-be-unloaded-reloaded-after-reboot-osx-1

Kext instances

Other kexts are using the FTDI kext
```
The first number (115) is the id of the kernel extension.

At the end, the set of numbers <114 5 4 3 1> are the other kernel extension ids that are being referenced by this particular kext.
``` 1

In this case the kexts 137 and 52 are blocking the unloading of the FTDI driver, and they are:
* 137: com.apple.iokit.IOSerialFamily
* 52: com.apple.iokit.IOUSBFamily

https://stackoverflow.com/questions/17345305/unload-kext-which-still-has-instances

Leave a Reply

Your email address will not be published. Required fields are marked *