Comment libérer / réinitialiser les périphériques FTDI du port série - Mac OSX

17

J'essaie de travailler avec un PCB personnalisé qui utilise un FTDI FT232RL pour parler à mon ordinateur (MacBookPro exécutant OSX 10.11 El Capitan) pour un projet matériel. J'utilise Matlab pour envoyer des commandes série, rencontrant des problèmes avec la broche ClearToSend (CTS) apparemment `` haute '' (désactivée), mais c'est une autre histoire.

Cependant, mon problème en ce moment est que mon Mac ne "libérera" pas (quoi d'autre pour appeler cela) le périphérique après l'avoir débranché. Je peux débrancher l'appareil et le mettre sur un autre bus USB, mais je ne peux vraiment le faire qu'une fois, car la même chose se produit à nouveau si je débranche - cela rend mon développement difficile, car la seule façon que j'ai trouvée pour résoudre ce problème est de redémarrer tout l'ordinateur. Comment puis-je libérer / réinitialiser / effacer ces appareils?

Si j'ouvre Informations système> Matériel> USB , je peux essentiellement voir le même périphérique répertorié deux fois dans l'arborescence des périphériques.

entrez la description de l'image ici

Cela fait en sorte que lorsque j'essaie ls /dev/tty.*(dans Matlab ou Terminal) le périphérique n'est pas répertorié, il est essentiellement bloqué, même s'il est branché et apparaît deux fois dans l'arborescence des périphériques. Que devrais-je faire?

J'ai installé le pilote FTDI version 2.3, et il semble fonctionner autrement. Veuillez me faire savoir quelles autres informations je peux fournir pour aller au fond des choses. Merci

thkemp
la source

Réponses:

9

J'ai eu le même problème, bien que sur Sierra, en parlant à un clone Arduino Nano (qui utilise également un pont FTDI FT232RL).

Ce qui semble avoir fonctionné pour moi est de supprimer le pilote FTDI ( /Library/Extensions/FTDIUSBSerialDriver.kext), après avoir découvert qu'Apple expédie un pilote FTDI avec le système d'exploitation lui-même ( /System/Library/Extensions/AppleUSBFTDI.kext).

Je pense qu'avoir les deux pilotes actifs en même temps provoque un conflit qui bloque le port USB.

robertklep
la source
Merci @robertklep, cela a fonctionné pour moi! Je suppose que c'était juste un conflit entre ces deux pilotes. Bien qu'il soit intéressant de noter que le changement de nom du fichier (par exemple FTDIUSBSerialDriver.kext.bakou ~FTDIUSBSerialDriver.kext) ne fonctionnait pas, j'ai dû supprimer le fichier du /Library/Extensions/répertoire.
thkemp
Même problème pour moi, mais je ne l'ai pas FTDIUSBSerialDriverinstallé, donc cela ne l'a pas
résolu
1
@Pwdr essayer du Terminal: kextstat | grep -v apple. Cela devrait renvoyer toutes les extensions de noyau non Apple qui sont actives. Peut-être qu'un autre cause des problèmes.
robertklep
Je l'ai trouvé dans /System/Library/Extensions/FTDIUSBSerialDriver.kext
lukecyca
Après avoir fait le changement suggéré, le chauffeur ne fonctionnait plus. J'ai dû l'installer à nouveau.
Ahmet Yildirim
11

Correctif du pilote FTDI pour MacOS High Sierra 10.13.3 - 31 janvier 2018

Par: Garrett Johnson Fatigué de votre dev. planches ne sont pas reconnues sur votre nouveau macbook brillant? Blâmez-vous ces putains de ports C?

PROBLÈME: les appareils FTDI ne sont pas utilisables dans MacOS High Sierra. Dans mon propre cas, j'ai eu du mal à connecter des périphériques à puce FT232R à mon Macbook Pro 2016 avec des ports C. Les périphériques sont apparus dans mon arborescence de périphériques USB (Informations système -> Matériel -> USB), mais ne se sont pas présentés comme un périphérique série utilisant Arduino ou Coolterm. - REMARQUE: ils n'apparaissaient pas dans le Terminal avec la commande (ls / dev / cu *) ou (ls / dev / tty *)

SOLUTION:

3) Téléchargez les pilotes 2.4.2 sur le site Web de FTDI http://www.ftdichip.com/Drivers/VCP.htm et installez-les. L'installation réussira, MAIS en raison des pilotes FTDI intégrés aux pommes, ils ne fonctionneront pas.

2) Redémarrez l'ordinateur et entrez en mode de récupération En éteignant et en maintenant CMD + R enfoncé au redémarrage.

3) En mode de récupération, ouvrez le terminal à partir des utilitaires en haut de l'écran et tapez ce qui suit pour désactiver temporairement la protection de l'intégrité du système:

csrutil disable

L'ordinateur vous demandera de redémarrer pour que les modifications prennent effet.

4) Au redémarrage, nous devons maintenant désactiver les pilotes Apple FTDI (REMARQUE: cela peut être inversé à tout moment, donc ne vous inquiétez pas). - ouvrez Terminal et saisissez ce qui suit.

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

Maintenant, vous aurez réussi à désactiver les pilotes FTDI intégrés d'Apple et à les remplacer par FTDI v2.4.

5) Redémarrez votre ordinateur en mode de récupération. Arrêtez, maintenez Command + R et ouvrez le terminal dans l'onglet Utilitaires. Entrez les informations suivantes pour réactiver la protection de l'intégrité du système d'Apple

csrutil enable

ENFIN! Un dernier redémarrage, puis vos périphériques série USB devraient tous se charger correctement!

** REMARQUE: J'ai testé cela sur un Macbook Pro 2016 avec MacOS 10.13.3 sur les appareils / applications suivants: 1) Écran depuis le terminal, CoolTerm, Bus Pirate V3.6, JTAGulator, Arduino Uno, Adafruit Mega AT, Arduino Méga clone.

Garrett Johnson
la source
2
Solution sympa. Il fonctionne également sur un iMac pour Jewelbots. Problèmes mineurs: 1. Les KEXT d'Apple se trouvent dans / System / Library / Extensions / (HFS + et APFS respectent la casse et Terminal est difficile). 2. chgrp n'est pas nécessaire. Le groupe est déjà en roue après l'installation. 3. FTDIUSBSerialDriver.kext se trouve dans / Libray / Extensions / et / Library / StagedExtensions / Library / Extensions / pas dans / System / Library / Extensions /. 4. D2zzHelper.kext n'existe pas
Alain O'Dea
2

Je voudrais fournir une réponse supplémentaire qui résout une pièce de plus du puzzle que j'avais. Même après l'excellente réponse de Garrett Johnson ci-dessus, mon pilote FTDI ne fonctionnait toujours pas. Il s'est avéré que - et je sais que cela semble fou - que l'onglet "Sécurité et confidentialité" de mes Préférences Système n'acceptait pas le clic de mon trackpad sur le bouton "Autoriser" qui permettrait au pilote de se charger. J'ai suivi ce chemin après avoir vu ce message dans le journal d'installation:

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

Bien sûr, j'ai cliqué sur "Autoriser" là-dedans, mais rien ne semblait se produire. Le bouton a enregistré le clic, mais je n'ai eu aucune fenêtre pop-up ni rien d'autre pour une certaine forme de confirmation. En parcourant les internets, j'ai découvert ce long fil sur la page github de Karabiner discutant de plusieurs solutions pour forcer les préférences système à autoriser le clic de souris:

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

Apparemment, j'avais un logiciel en cours d'exécution qui interceptait l'activité du trackpad. Ce n'était pas du chrome dans mon cas, contrairement à plusieurs personnes sur cette liste. Je n'ai aucune idée de ce que c'était, ce qui est un peu inquiétant. La solution qui a fonctionné pour moi était d'activer les touches de la souris, puis appuyez sur "I" pour cliquer avec la souris sur le bouton "Autoriser". À ce stade, une fenêtre est apparue et j'ai pu autoriser le chargement du pilote FTDI.

Je secoue toujours la tête!

Mike Andrews
la source
1
J'utilise MagicPrefs et le pilote Wacom Intuos et j'ai décidé de vérifier si cliquer sur Autoriser était censé faire quelque chose après avoir lu ce post. Il s'avère après avoir appuyé sur autoriser (et il se propage en fait) - le système vous invite avec une nouvelle fenêtre avec une liste des pilotes / bibliothèques concernés qu'il avait cadencés précédemment!
Supernovah
0

J'ai eu le même problème. J'avais installé les pilotes FTDI via un lien à partir des notes d'installation de Creality Ender 3, et le lien installé version 2.2.18, qui est pour OS X 10.8 et inférieur. (Je cours Sierra, 10.12). Le chauffeur a travaillé, mais n'a pas voulu se libérer. J'ai supprimé le pilote en utilisant sudo rm /System/Library/Extensions/FTDIUSBSerialDriver.kext/, puis téléchargé et installé la version 2.4.2. Tous travaillent maintenant.

Steve Johnson
la source