Freigeben / Zurücksetzen von FTDI-Geräten mit serieller Schnittstelle - Mac OSX

17

Ich versuche, mit einer benutzerdefinierten Platine zu arbeiten, die einen FTDI FT232RL verwendet, um mit meinem Computer (MacBookPro mit OSX 10.11 El Capitan) für ein Hardwareprojekt zu kommunizieren. Ich verwende Matlab, um serielle Befehle zu senden, und dort treten einige Probleme mit dem ClearToSend (CTS) -Pin auf, die anscheinend "hoch" (aus) sind, aber das ist eine andere Geschichte.

Mein derzeitiges Problem ist jedoch, dass mein Mac das Gerät nicht "freigibt" (nicht sicher, wie ich es sonst nennen soll), nachdem ich es ausgesteckt habe. Ich kann das Gerät vom Computer trennen und an einen anderen USB-Bus anschließen, aber ich kann das wirklich nur einmal tun, da das Gleiche beim Abziehen erneut auftritt. Dies erschwert meine Entwicklung, da ich nur so eine Lösung gefunden habe ist der gesamte Computer neu zu starten. Wie kann ich diese Geräte freigeben / zurücksetzen / löschen?

Wenn ich Systeminformationen> Hardware> USB öffne , kann ich im Prinzip dasselbe Gerät zweimal in der Gerätestruktur sehen.

Bildbeschreibung hier eingeben

Wenn ich versuche ls /dev/tty.*(in Matlab oder Terminal), das Gerät nicht aufzulisten, wird es im Wesentlichen blockiert, obwohl es eingesteckt ist und zweimal in der Gerätestruktur angezeigt wird. Was soll ich machen?

Ich habe den FTDI-Treiber der Version 2.3 installiert, und es scheint anders zu funktionieren. Bitte lassen Sie mich wissen, welche anderen Informationen ich zur Verfügung stellen kann, um dem auf den Grund zu gehen. Vielen Dank

thkemp
quelle

Antworten:

9

Ich hatte das gleiche Problem, allerdings in Sierra, als ich mit einem Arduino Nano-Klon sprach (der auch eine FTDI FT232RL-Brücke verwendet).

Was bei mir anscheinend funktioniert hat, ist das Entfernen des FTDI-Treibers ( /Library/Extensions/FTDIUSBSerialDriver.kext), nachdem festgestellt wurde, dass Apple einen FTDI-Treiber mit dem Betriebssystem selbst ausliefert ( /System/Library/Extensions/AppleUSBFTDI.kext).

Ich denke, dass beide Treiber gleichzeitig aktiv sind, was zu einem Konflikt führt, der den USB-Anschluss bindet.

robertklep
quelle
Danke @robertklep, das hat bei mir geklappt! Ich denke, es war nur ein Konflikt zwischen diesen beiden Fahrern. Obwohl interessant, dass das Umbenennen der Datei (z. B. FTDIUSBSerialDriver.kext.bakoder ~FTDIUSBSerialDriver.kext) nicht funktioniert hat, musste ich die Datei tatsächlich aus dem /Library/Extensions/Verzeichnis entfernen .
Donnerstag,
Das gleiche Problem für mich, aber ich habe nicht FTDIUSBSerialDriverinstalliert, so dass dies nicht
behoben wurde
1
@Pwdr versuchen , diese von Terminal: kextstat | grep -v apple. Das sollte alle Nicht-Apple-Kernel-Erweiterungen zurückgeben, die aktiv sind. Vielleicht gibt es eine andere, die Probleme verursacht.
Robertklep
Ich fand es in /System/Library/Extensions/FTDIUSBSerialDriver.kext
lukecyca
Nach der vorgeschlagenen Änderung funktionierte der Treiber nicht mehr. Ich musste es erneut installieren.
Ahmet Yildirim
10

MacOS High Sierra 10.13.3 FTDI-Treiber-Fix - 31. Januar 2018

Von: Garrett Johnson Müde von deinem Entwickler. Boards werden auf Ihrem glänzenden neuen MacBook nicht erkannt? Beschuldigen Sie diese verdammten C-Ports?

PROBLEM: FTDI-Geräte können in MacOS High Sierra nicht verwendet werden. In meinem eigenen Fall hatte ich Probleme, FT232R-Chipgeräte mit C-Ports an mein 2016 Macbook Pro anzuschließen. Die Geräte wurden in meinem USB-Gerätebaum angezeigt (Systeminformationen -> Hardware -> USB), wurden jedoch mit Arduino oder Coolterm nicht als serielles Gerät angezeigt. - HINWEIS: Sie wurden entweder im Terminal mit dem Befehl (ls / dev / cu *) oder (ls / dev / tty *) nicht angezeigt.

LÖSUNG:

3) Laden Sie die 2.4.2-Treiber von der FTDI-Website http://www.ftdichip.com/Drivers/VCP.htm herunter und installieren Sie sie. Die Installation wird erfolgreich sein, ABER aufgrund der in Apples integrierten FTDI-Treiber funktionieren sie nicht.

2) Starten Sie den Computer neu und rufen Sie den Wiederherstellungsmodus auf. Schalten Sie den Computer aus und halten Sie CMD + R beim Neustart gedrückt.

3) Öffnen Sie im Wiederherstellungsmodus das Terminal von den Dienstprogrammen am oberen Bildschirmrand und geben Sie Folgendes ein, um den Systemintegritätsschutz vorübergehend zu deaktivieren:

csrutil disable

Der Computer fordert Sie zum Neustart auf, damit die Änderungen wirksam werden.

4) Beim Neustart müssen wir jetzt die Apple FTDI-Treiber deaktivieren (HINWEIS: Dies kann jederzeit rückgängig gemacht werden, also keine Sorge). - Öffnen Sie das Terminal und geben Sie Folgendes ein.

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

Jetzt haben Sie die integrierten FTDI-Treiber von Apple erfolgreich deaktiviert und durch FTDI v2.4 ersetzt.

5) Starten Sie Ihren Computer im Wiederherstellungsmodus neu. Fahren Sie herunter, halten Sie Befehlstaste + R gedrückt und öffnen Sie das Terminal auf der Registerkarte Dienstprogramme. Geben Sie Folgendes ein, um den Systemintegritätsschutz von Apple wieder zu aktivieren

csrutil enable

ZU GUTER LETZT! Ein letzter Neustart und dann sollten alle Ihre seriellen USB-Geräte ordnungsgemäß geladen sein!

** HINWEIS: Ich habe dies auf einem 2016 Macbook Pro mit MacOS 10.13.3 auf den folgenden Geräten / Apps getestet: 1) Bildschirm im Terminal, CoolTerm, Bus Pirate V3.6, JTAGulator, Arduino Uno, Adafruit Mega AT, Arduino Mega-Klon.

Garrett Johnson
quelle
2
Coole Lösung. Es funktioniert auch auf einem iMac für Jewelbots. Kleinere Probleme: 1. Apples KEXTs befinden sich in / System / Library / Extensions / (HFS + und APFS sind case-preserving und Terminal ist wählerisch). 2. chgrp wird nicht benötigt. Die Gruppe ist bereits nach der Installation aktiv. 3. FTDIUSBSerialDriver.kext befindet sich in / Libray / Extensions / und / Library / StagedExtensions / Library / Extensions / nicht in / System / Library / Extensions /. 4. D2zzHelper.kext existiert nicht
Alain O'Dea
2

Ich möchte eine zusätzliche Antwort geben, die ein weiteres Teil des Puzzles löst, das ich hatte. Selbst nach Garrett Johnsons hervorragender Antwort funktionierte mein FTDI-Fahrer immer noch nicht. Es stellte sich heraus, dass - und ich weiß, dass dies verrückt klingt - die Registerkarte "Sicherheit und Datenschutz" in meinen Systemeinstellungen den Klick meines Trackpads auf die Schaltfläche "Zulassen", mit der der Treiber geladen werden konnte, nicht akzeptierte. Ich bin auf diesen Pfad gekommen, nachdem die folgende Meldung im Installationsprotokoll angezeigt wurde:

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" }

Natürlich habe ich dort auf "Zulassen" geklickt, aber es schien nichts zu passieren. Der Knopf registrierte den Klick, aber ich hatte kein Popup-Fenster oder irgendetwas anderes für irgendeine Form der Bestätigung. Beim Durchsuchen des Internets bin ich auf diesen langen Thread auf Karabiners Github-Seite gestoßen, in dem verschiedene Lösungen erörtert wurden, mit denen die Systemeinstellungen erzwungen werden, um das Klicken mit der Maus zuzulassen:

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

Anscheinend lief eine Software, die die Trackpad-Aktivität abfing. In meinem Fall war es kein Chrom, im Gegensatz zu mehreren Personen auf dieser Liste. Ich habe keine Ahnung, was es war, was ein wenig besorgniserregend ist. Die Lösung, die für mich funktionierte, bestand darin, Maustasten zu aktivieren und dann "I" zu drücken, um mit der Maus über die Schaltfläche "Zulassen" zu klicken. Zu diesem Zeitpunkt öffnete sich ein Fenster und ich konnte zulassen, dass der FTDI-Treiber geladen wurde.

Ich schüttle immer noch meinen Kopf!

Mike Andrews
quelle
1
Ich verwende MagicPrefs und den Wacom Intuos-Treiber und habe mich entschlossen, nach dem Lesen dieses Beitrags zu prüfen, ob das Klicken auf Zulassen etwas bewirken soll. Es stellt sich heraus, dass das System nach dem Drücken von "Erlauben" (und der tatsächlichen Weitergabe) ein neues Fenster mit einer Liste der betroffenen Treiber / Bibliotheken anzeigt, die es zuvor getaktet hat!
Supernovah
0

Ich hatte das gleiche problem Ich hatte die FTDI-Treiber über einen Link aus den Creality Ender 3-Installationshinweisen installiert, und über den Link wurde Version 2.2.18 für OS X 10.8 und niedriger installiert. (Ich leite Sierra, 10.12.) Der Fahrer arbeitete, wollte aber nicht freigeben. Ich habe den Treiber mit gelöscht sudo rm /System/Library/Extensions/FTDIUSBSerialDriver.kext/und dann die Version 2.4.2 heruntergeladen und installiert. Alles funktioniert jetzt.

Steve Johnson
quelle