Come rilasciare / ripristinare i dispositivi FTDI con porta seriale - Mac OSX


17

Sto cercando di lavorare con un PCB personalizzato che utilizza un FTDI FT232RL per parlare al mio computer (MacBookPro con OSX 10.11 El Capitan) per un progetto hardware. Sto usando Matlab per inviare comandi seriali, incontrando alcuni problemi lì con il pin ClearToSend (CTS) apparentemente "alto" (spento), ma questa è un'altra storia.

Tuttavia il mio problema in questo momento è che il mio Mac non "rilascerà" (non sono sicuro di cos'altro chiamare questo) il dispositivo dopo averlo scollegato. Posso scollegare il dispositivo e inserirlo in un altro bus USB, ma posso davvero farlo solo una volta, perché la stessa cosa accade di nuovo se disconnetto - questo rende il mio sviluppo difficile, perché l'unico modo che ho trovato per risolvere questo è riavviare l'intero computer. Come posso rilasciare / ripristinare / cancellare questi dispositivi?

Se apro Informazioni di sistema> Hardware> USB , posso essenzialmente vedere lo stesso dispositivo elencato due volte nella struttura dei dispositivi.

inserisci qui la descrizione dell'immagine

Questo fa sì che quando provo ls /dev/tty.*(in Matlab o Terminale) il dispositivo non è elencato, è essenzialmente bloccato, anche se è collegato e viene visualizzato due volte nella struttura dei dispositivi. Cosa dovrei fare?

Ho installato il driver FTDI versione 2.3 e sembra funzionare diversamente. Per favore fatemi sapere quali altre informazioni posso fornire per arrivare alla fine di questo. Grazie

Risposte:


9

Ho avuto lo stesso problema, anche se su Sierra, parlando con un clone di Arduino Nano (che utilizza anche un bridge FTDI FT232RL).

Ciò che sembra aver funzionato per me è in realtà la rimozione del driver FTDI ( /Library/Extensions/FTDIUSBSerialDriver.kext), dopo aver scoperto che Apple spedisce un driver FTDI con il sistema operativo stesso ( /System/Library/Extensions/AppleUSBFTDI.kext).

Penso che avere entrambi i driver attivi contemporaneamente provochi un conflitto, che lega la porta USB.


Grazie @robertklep, ha funzionato per me! Immagino fosse solo un conflitto tra quei due piloti. Sebbene sia interessante il fatto che la ridenominazione del file (ad es. FTDIUSBSerialDriver.kext.bakO ~FTDIUSBSerialDriver.kext) non abbia funzionato, ho dovuto rimuovere effettivamente il file dalla /Library/Extensions/directory.
giovedì

Lo stesso problema per me, ma non ho FTDIUSBSerialDriverinstallato, quindi non è stato risolto ...
Pwdr

1
@Pwdr provare questo da terminale: kextstat | grep -v apple. Ciò dovrebbe restituire eventuali estensioni del kernel non Apple attive. Forse ce n'è un altro che causa problemi.
robertklep,

L'ho trovato in /System/Library/Extensions/FTDIUSBSerialDriver.kext
lukecyca il

Dopo aver apportato le modifiche suggerite, il driver non funzionava più. Ho dovuto installarlo di nuovo.
Ahmet Yildirim,

11

Correzione driver FTDI MacOS High Sierra 10.13.3 - 31 gennaio 2018

Di: Garrett Johnson Stanco del tuo dev. le schede non vengono riconosciute sul tuo nuovo e brillante macbook? Stai incolpando quelle maledette porte C?

PROBLEMA: dispositivi FTDI non utilizzabili in MacOS High Sierra. Nel mio caso, ho avuto problemi a collegare i dispositivi chip FT232R al mio Macbook Pro 2016 con porte C. I dispositivi apparivano nella mia struttura di dispositivi USB (Informazioni di sistema -> Hardware -> USB), ma non venivano visualizzati come dispositivi seriali usando Arduino o Coolterm. - NOTA: non sono stati visualizzati né in Terminale con il comando (ls / dev / cu *) o (ls / dev / tty *)

SOLUZIONE:

3) Scaricare i driver 2.4.2 dal sito Web FTDI http://www.ftdichip.com/Drivers/VCP.htm e installarli. L'installazione avrà esito positivo, MA a causa dei driver FTDI integrati di Apple non funzioneranno.

2) Riavviare il computer e accedere alla modalità di ripristino Spegnendo e tenendo premuto CMD + R al riavvio.

3) In modalità di ripristino, apri il terminale dalle utility nella parte superiore dello schermo e digita quanto segue per disabilitare temporaneamente Protezione integrità del sistema:

csrutil disable

Il computer richiederà di riavviare per rendere effettive le modifiche.

4) Al riavvio ora è necessario disabilitare i driver FTDI di Apple (NOTA: questo può essere invertito in qualsiasi momento, quindi non preoccuparti). - apri Terminale e digita quanto segue.

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

Ora avrai disabilitato con successo i driver FTDI integrati di Apple e li hai sostituiti con FTDI v2.4.

5) Riavvia il computer in modalità di ripristino. Spegni, tieni premuto Comando + R e apri il terminale nella scheda Utilità. Immettere quanto segue per riattivare la protezione dell'integrità del sistema di Apple

csrutil enable

ALLA FINE! Un riavvio finale e quindi tutti i dispositivi seriali USB dovrebbero essere caricati correttamente!

** NOTA: l'ho testato su un Macbook Pro 2016 con MacOS 10.13.3 sui seguenti dispositivi / app: 1) Schermo dall'interno del terminale, CoolTerm, Bus Pirate V3.6, JTAGulator, Arduino Uno, Adafruit Mega AT, Arduino Clone Mega.


2
Ottima soluzione. Funziona anche su un iMac per Jewelbot. Problemi minori: 1. I KEXT di Apple si trovano in / Sistema / Libreria / Estensioni / (HFS + e APFS mantengono il caso e Terminal è pignolo). 2. chgrp non è necessario. Il gruppo è già ruota dopo l'installazione. 3. FTDIUSBSerialDriver.kext è in / Libray / Extensions / e / Library / StagedExtensions / Library / Extensions / non in / System / Library / Extensions /. 4. D2zzHelper.kext non esiste
Alain O'Dea,

2

Vorrei fornire una risposta aggiuntiva che risolva un altro pezzo del puzzle che avevo. Anche seguendo l'eccellente risposta di Garrett Johnson sopra, il mio driver FTDI non funzionava ancora. Si è scoperto che - e so che sembra folle - che la scheda "Sicurezza e privacy" delle Preferenze di Sistema non accettava il clic del mio trackpad sul pulsante "Consenti" che avrebbe consentito il caricamento del driver. Ho seguito questo percorso dopo aver visto questo messaggio nel registro di installazione:

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

Certo, ho cliccato su "Consenti" lì dentro, ma non sembrava succedere nulla. Il pulsante ha registrato il clic, ma non ho visualizzato alcuna finestra o altro per una qualche forma di conferma. Cercando su Internet, ho scoperto questo lungo thread sulla pagina github di Karabiner che parlava di diverse soluzioni per forzare le Preferenze di Sistema a consentire il clic del mouse:

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

Apparentemente avevo un software in esecuzione che stava intercettando l'attività del trackpad. Non era Chrome nel mio caso, a differenza di diverse persone in quella lista. Non ho idea di cosa fosse, il che è un po 'preoccupante. La soluzione che ha funzionato per me era abilitare i tasti del mouse, quindi premere "I" per fare clic con il mouse sul pulsante "Consenti". A quel punto, si aprì una finestra e fui in grado di consentire il caricamento del driver FTDI.

Sto ancora scuotendo la testa!


1
Sto eseguendo MagicPrefs e il driver Wacom Intuos e ho deciso di verificare se il clic consentire avrebbe dovuto fare qualcosa dopo aver letto questo post. Si scopre dopo aver premuto il comando consenti (e in realtà si propaga) - il sistema richiede una nuova finestra con un elenco dei driver / librerie relativi che aveva precedentemente sincronizzato!
Supernovah

0

Ho avuto lo stesso problema. Avevo installato i driver FTDI tramite un collegamento dalle note di installazione di Creality Ender 3 e il collegamento aveva installato la versione 2.2.18, che è per OS X 10.8 e precedenti. (Sto correndo Sierra, 10.12). Il driver ha funzionato, ma non è stato rilasciato. Ho eliminato il driver utilizzando sudo rm /System/Library/Extensions/FTDIUSBSerialDriver.kext/e quindi scaricato e installato la versione 2.4.2. Ora tutto funziona.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.