Kernel Drivers
If you’re having trouble with your device you may have a driver installed that is preventing Serial from accessing the device directly.
If you’re using a misbehaving driver the most common symptom you’ll experience is the device seems to open okay, but no data can be sent or received. Other problems include features that do not work (break not working is a common problem) or overall system stability issues.
The solution is to disable or remove these drivers to allow Serial’s built-in support for these devices to work. When a driver is available for a device, the driver takes precedence and Serial’s built-in support cannot be used. The distinction is normally transparent to you, though you can check to see which driver is in use by choosing “Device Info” under the Settings panel.
Generally, drivers provided by FTDI or Silicon Labs are high quality. Others should be avoided where possible.
Determine Bundle identifier
Serial displays the driver’s “bundle identifier” - the unique string used to identify programs on the Mac - under the “Device Info” panel. Once you have this you can disable and/or remove the driver using the instructions below.
Disable Driver (Temporary)
To disable a driver, enter the command below. This change will take effect until you reboot your machine.
Use Caution:
- Unloading (or removing) the vendor-supplied driver will prevent other applications from accessing the serial port.
- Save all work before proceeding as some drivers may not unload cleanly and could crash the system
sudo kextunload -b [bundleid]Re-Enable Driver
To re-enable a driver, enter the command below:
sudo kextload -b [bundleid]Remove Driver (Permanent)
Use the following command within Terminal.app to see where a driver is on disk:
kextfind -b [bundleid]Installed drivers are located under /System/Library/Extensions or /Library/Extensions. You may see the same driver installed in both locations, as older versions of some drivers installed themselves under /System/Library/Extensions which is off-limits since OSX 10.11.
BE VERY CAREFUL WHILE WORKING IN THESE DIRECTORIES, AND DO NOT REMOVE ANYTHING THAT MENTIONS APPLE IN THE NAME OR BUNDLE IDENTIFIER. YOU CAN RENDER YOUR SYSTEM INOPERABLE BY REMOVING THE WRONG DRIVER.
Next, make sure the device in question is unplugged from your USB port before continuing.
Within Terminal.app, move the driver from where it currently is somewhere else on your machine- your desktop, for example:
sudo mv [path-to-driver] ~/Desktop/Finally, reboot your machine. This is important to make sure your system is stable after the change.