如何释放/重置串口FTDI设备 - Mac OSX


16

我正在尝试使用自定义PCB,它使用FTDI FT232RL与我的计算机(运行OSX 10.11 El Capitan的MacBookPro)进行通信,以获得硬件项目。我正在使用Matlab发送串行命令,遇到一些问题,ClearToSend(CTS)引脚显然是“高”(关闭),但这是另一个故事。

但是我现在的问题是我拔掉它之后我的Mac不会“释放”(不知道还有什么可以称之为)设备。我可以拔掉设备并把它放在另一个USB总线上,但我真的只能这样做一次,因为如果我拔掉电话会再次发生同样的事情 - 这会让我的开发变得困难,因为我找到了解决这个问题的唯一方法是重启整台电脑。如何释放/重置/清除这些设备?

如果我打开系统信息>硬件> USB,我基本上可以在设备树上看到两次列出的相同设备。

在此输入图像描述

这使得当我尝试ls /dev/tty.*(在Matlab或终端中)设备未列出时,它基本上被阻止,即使它已插入并在设备树上显示两次。我该怎么办?

我已经安装了版本2.3 FTDI驱动程序,它似乎工作不然。请让我知道我可以提供哪些其他信息来深入了解这一点。谢谢

Answers:


9

我有同样的问题,虽然在塞拉利昂,与Arduino Nano克隆(也使用FTDI FT232RL桥接器)交谈。

对我来说似乎有用的实际上是/Library/Extensions/FTDIUSBSerialDriver.kext在发现Apple发布了一个带有操作系统本身的FTDI驱动程序后删除了FTDI驱动程序(/System/Library/Extensions/AppleUSBFTDI.kext)。

我认为同时激活两个驱动程序会导致冲突,从而导致USB端口出现问题。


谢谢@robertklep,这对我有用!我想这只是两个司机之间的冲突。虽然有趣的是重命名文件(例如FTDIUSBSerialDriver.kext.bak~FTDIUSBSerialDriver.kext)不起作用,但我必须从/Library/Extensions/目录中删除该文件。
thkemp 2016年

同样的问题,但我没有FTDIUSBSerialDriver安装,所以这没有解决它...
Pwdr

1
@Pwdr从终端尝试这个:kextstat | grep -v apple。这应该返回任何活动的非Apple内核扩展。也许还有另一个导致问题。
robertklep 2016年

我在/System/Library/Extensions/FTDIUSBSerialDriver.kext中找到了它
lukecyca 2017年

建议更改后,驱动程序不再工作。我不得不再次安装它。
Ahmet Yildirim,

10

MacOS High Sierra 10.13.3 FTDI驱动程序修复 - 2018年1月31日

作者:加勒特约翰逊厌倦了你的开发。在你闪亮的新MacBook上没有被认可的主板?你在责怪那些该死的C端口吗?

问题:FTDI设备在MacOS High Sierra中无法使用。在我自己的情况下,我无法将FT232R芯片设备连接到我的带有C-Ports的2016 Macbook Pro。这些设备出现在我的USB设备树(系统信息 - >硬件 - > USB)中,但没有显示为使用Arduino或Coolterm的串行设备。 - 注意:在终端中使用命令(ls / dev / cu *)或(ls / dev / tty *)时它们不会出现

解:

3)从FTDI的网站http://www.ftdichip.com/Drivers/VCP.htm下载2.4.2驱动程序 并安装。安装将成功,但由于Apples内置FTDI驱动程序,它们将无法正常工作。

2)重新启动计算机并进入恢复模式通过关闭电源并在重新启动时按住CMD + R。

3)在恢复模式下,从屏幕顶部的实用程序打开终端并键入以下内容以暂时禁用系统完整性保护:

csrutil disable

计算机将提示您重新启动以使更改生效。

4)重新启动时,我们现在需要禁用Apple FTDI驱动程序(注意:这可以随时撤消,所以不用担心)。 - 打开终端并键入以下内容。

cd /system/library/extensions

sudo mv AppleUSBFTDI.kext AppleUSBFTDI.disabled

sudo touch /System/Library/Extensions

chgrp -R wheel FTDIUSBSerialDriver.kext

sudo mv D2zzHelper.kext D2xxHelper.disabled

现在,您将成功禁用Apple的内置FTDI驱动程序,并将其替换为FTDI v2.4。

5)以恢复模式重新启动计算机。关闭,按住Command + R并在Utilities选项卡中打开终端。输入以下内容以重新启用Apple的系统完整性保护

csrutil enable

最后!最后一次重启然后你的USB串口设备都应正确加载!

**注意:我在以下设备/应用程序上使用MacOS 10.13.3在2016 Macbook Pro上进行了测试:1)终端内的屏幕,CoolTerm,Bus Pirate V3.6,JTAGulator,Arduino Uno,Adafruit Mega AT,Arduino巨型克隆。


2
很酷的修复。它也适用于Jewelbots的iMac。小问题:1。Apple的KEXT位于/ System / Library / Extensions /(HFS +和APFS是保留大小写的,终端是挑剔的)。2.不需要chgrp。安装后组已经轮了。3. FTDIUSBSerialDriver.kext位于/ Libray / Extensions /和/ Library / StagedExtensions / Library / Extensions /不在/ System / Library / Extensions /中。4. D2zzHelper.kext不存在
Alain O'Dea于2002年

2

我想提供一个额外的答案,解决我的另一个难题。即使遵循Garrett Johnson上面的优秀答案,我的FTDI驱动程序仍然无效。事实证明 - 我知道这听起来很疯狂 - 我的系统偏好设置“安全和隐私”标签不接受我的触控板点击允许驱动程序加载的“允许”按钮。在安装日志中看到此消息后我走了这条路:

2018-09-15 16:21:04-04 host installd[1160]: kextcache: Kext rejected due to system policy: <OSKext 0x7f869ab80530 [0x7fff87e7aaf0]> { URL = "file:///Library/StagedExtensions/Library/Extensions/FTDIUSBSerialDriver.kext/", ID = "com.FTDI.driver.FTDIUSBSerialDriver" }

当然,我点击了“允许”,但似乎没有任何事情发生。按钮注册了点击,但我没有弹出任何窗口或其他任何形式的确认。在Internet上搜索,我在Karabiner的github页面上发现了这个冗长的线程,讨论了强制系统偏好设置允许鼠标点击的几种解决方案:

https://github.com/tekezo/Karabiner-Elements/issues/1017

显然我有一些软件正在拦截触控板活动。在我的情况下,它不是铬,不像那个名单上的几个人。我不知道它是什么,这有点令人担忧。对我有用的解决方案是启用鼠标键,然后按“I”在“允许”按钮上单击鼠标。此时,弹出一个窗口,我能够允许加载FTDI驱动程序。

我还在摇头!


1
我正在运行MagicPrefs和Wacom Intuos驱动程序,我决定在阅读这篇文章后检查点击允许是否应该做某事。在你按下allow(然后它实际传播)之后结果是 - 系统提示一个新窗口,其中包含之前已经计时的相关驱动程序/库的列表!
Supernovah

0

我有同样的问题。我已经通过Creality Ender 3安装说明中的链接和安装了2.2.18版本的链接安装了FTDI驱动程序,该版本适用于OS X 10.8及更低版本。(我正在运行Sierra,10.12)。司机工作,但不会释放。我删除了驱动程序sudo rm /System/Library/Extensions/FTDIUSBSerialDriver.kext/,然后下载并安装了2.4.2版本。一切正常。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.