
我正在嘗試使用自訂 PCB,該 PCB 使用 FTDI FT232RL 與我的電腦(運行 OSX 10.11 El Capitan 的 MacBookPro)通訊以進行硬體專案。我正在使用 Matlab 發送串行命令,在 ClearToSend (CTS) 引腳明顯處於“高”(關閉)狀態時遇到一些問題,但那是另一個故事了。
然而,我現在的問題是,我的 Mac 在拔掉設備插頭後不會「釋放」(我不知道還能叫什麼)設備。我可以拔下設備並將其放在另一個USB 總線上,但我實際上只能這樣做一次,因為如果我拔掉插頭,同樣的事情會再次發生- 這使我的開發變得困難,因為我找到了解決此問題的唯一方法是重新啟動整個電腦。我該如何釋放/重置/清除這些設備?
如果我打開系統資訊>硬體>USB,我基本上可以看到同一設備在設備樹上列出了兩次。
這使得當我嘗試ls /dev/tty.*
(在 Matlab 或終端中)時,設備不會列出,它基本上被阻止,即使它已插入並在設備樹上顯示兩次。我該怎麼辦?
我已經安裝了 2.3 版 FTDI 驅動程序,但它似乎可以正常工作。請讓我知道我可以提供哪些其他資訊來查明真相。謝謝
答案1
我遇到了同樣的問題,儘管是在 Sierra 上,與 Arduino Nano 克隆(也使用 FTDI FT232RL 橋)交談。
/Library/Extensions/FTDIUSBSerialDriver.kext
在發現 Apple 隨作業系統本身附帶 FTDI 驅動程式 ( ) 之後,對我來說似乎有效的方法實際上是刪除 FTDI 驅動程式 ( ) /System/Library/Extensions/AppleUSBFTDI.kext
。
我認為同時啟動兩個驅動程式會導致衝突,從而佔用 USB 連接埠。
答案2
MacOS High Sierra 10.13.3 FTDI 驅動程式修復 - 2018 年 1 月 31 日
作者:Garrett Johnson 厭倦了你的開發。您閃亮的新 MacBook 上無法辨識主機板?你在責怪那些該死的C埠嗎?問題:FTDI 裝置在 MacOS High Sierra 中不可用。就我自己而言,我在將 FT232R 晶片裝置連接到具有 C 連接埠的 2016 Macbook Pro 時遇到了問題。這些裝置出現在我的 USB 裝置樹中(系統資訊 -> 硬體 -> USB),但沒有顯示為使用 Arduino 或 Coolterm 的序列裝置。 - 注意:在終端機中使用指令 (ls /dev/cu*) 或 (ls /dev/tty*) 時它們不會出現
解決方案:
3) 從 FTDI 網站下載 2.4.2 驅動程式http://www.ftdichip.com/Drivers/VCP.htm 並安裝。安裝將成功,但由於 Apple 內建 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 並在「實用程式」標籤中開啟終端。輸入以下內容以重新啟用 Apple 的系統完整性保護
csrutil enable
**注意:我已在運行MacOS 10.13.3 的2016 Macbook Pro 上使用以下設備/應用程式進行了測試:1) 終端內的螢幕、CoolTerm、Bus Pirate V3.6、JTAGulator、Arduino Uno、Adafruit Mega AT 、Arduino超級克隆。
答案3
我想提供一個額外的答案來解決我遇到的另一個難題。即使按照上面 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" }
當然,我點擊了“允許”,但似乎什麼也沒發生。該按鈕記錄了單擊,但我沒有彈出任何視窗或其他任何形式的確認。在網路上搜尋時,我在 Karabiner 的 github 頁面上發現了這個冗長的帖子,討論了強制系統偏好設定允許滑鼠單擊的幾種解決方案:
https://github.com/tekezo/Karabiner-Elements/issues/1017
顯然我正在運行一些軟體來攔截觸控板活動。與名單上的幾個人不同,我的情況不是鉻。我不知道那是什麼,這有點令人擔憂。對我有用的解決方案是啟用滑鼠鍵,然後按“I”在“允許”按鈕上單擊滑鼠。此時,會彈出一個窗口,我可以允許載入 FTDI 驅動程式。
我還在搖頭!
答案4
我有同樣的問題。我透過 Creality Ender 3 安裝說明中的連結安裝了 FTDI 驅動程序,該連結安裝了版本 2.2.18,適用於 OS X 10.8 及更低版本。 (我正在運行 Sierra,10.12)。司機工作了,不肯釋放。我使用刪除了驅動程序sudo rm /System/Library/Extensions/FTDIUSBSerialDriver.kext/
,然後下載並安裝了2.4.2版本。現在一切都在工作。