Cómo liberar / restablecer dispositivos FTDI de puerto serie - Mac OSX

17

Estoy tratando de trabajar con una PCB personalizada que utiliza un FTDI FT232RL para hablar con mi computadora (MacBookPro con OSX 10.11 El Capitan) para un proyecto de hardware. Estoy usando Matlab para enviar comandos en serie, encontré algunos problemas allí con el pin ClearToSend (CTS) aparentemente 'alto' (apagado), pero esa es otra historia.

Sin embargo, mi problema en este momento es que mi Mac no "liberará" (no estoy seguro de cómo llamarlo) el dispositivo después de que lo desconecte. Puedo desconectar el dispositivo y ponerlo en otro bus USB, pero en realidad solo puedo hacer esto una vez, porque lo mismo sucede nuevamente si lo desconecto: esto dificulta mi desarrollo, porque la única forma en que he encontrado para solucionar esto es reiniciar toda la computadora. ¿Cómo puedo liberar / restablecer / borrar estos dispositivos?

Si abro Información del sistema> Hardware> USB , esencialmente puedo ver el mismo dispositivo que aparece dos veces en el árbol de dispositivos.

ingrese la descripción de la imagen aquí

Esto hace que cuando intente ls /dev/tty.*(en Matlab o Terminal) el dispositivo no esté en la lista, esté esencialmente bloqueado, aunque esté enchufado y aparezca dos veces en el árbol de dispositivos. ¿Qué tengo que hacer?

He instalado la versión 2.3 del controlador FTDI, y parece funcionar de otra manera. Por favor, hágame saber qué otra información puedo proporcionar para llegar al fondo de esto. Gracias

thkemp
fuente

Respuestas:

9

Tuve el mismo problema, aunque en Sierra, hablando con un clon Arduino Nano (que también usa un puente FTDI FT232RL).

Lo que parece haber funcionado para mí es eliminar el controlador FTDI ( /Library/Extensions/FTDIUSBSerialDriver.kext), luego de descubrir que Apple envía un controlador FTDI con el sistema operativo ( /System/Library/Extensions/AppleUSBFTDI.kext).

Creo que tener ambos controladores activos al mismo tiempo causa un conflicto, que ata el puerto USB.

robertklep
fuente
Gracias @robertklep, ¡eso funcionó para mí! Supongo que fue solo un conflicto entre esos dos conductores. Aunque es interesante que cambiar el nombre del archivo (p. Ej. FTDIUSBSerialDriver.kext.bakO ~FTDIUSBSerialDriver.kext) no funcionó, tuve que eliminar el archivo del /Library/Extensions/directorio.
thkemp
El mismo problema para mí, pero no lo he FTDIUSBSerialDriverinstalado, así que esto no lo solucionó ...
Pwdr
1
@Pwdr probar este de la terminal: kextstat | grep -v apple. Eso debería devolver cualquier extensión de kernel que no sea Apple que esté activa. Quizás haya otro que esté causando problemas.
robertklep
Lo encontré en /System/Library/Extensions/FTDIUSBSerialDriver.kext
lukecyca
Después de realizar el cambio sugerido, el controlador ya no funcionaba. Tuve que instalarlo de nuevo.
Ahmet Yildirim
11

MacOS High Sierra 10.13.3 FTDI Driver Fix - 31 de enero de 2018

Por: Garrett Johnson Cansado de su desarrollador. ¿No se reconocen las placas en su nuevo y brillante MacBook? ¿Estás culpando a esos malditos puertos C?

PROBLEMA: dispositivos FTDI no utilizables en MacOS High Sierra. En mi propio caso, estaba teniendo problemas para conectar dispositivos de chip FT232R a mi Macbook Pro 2016 con puertos C. Los dispositivos aparecieron en mi árbol de dispositivos USB (Información del sistema -> Hardware -> USB), pero no aparecieron como un dispositivo en serie con Arduino o Coolterm. - NOTA: no aparecieron ni en la Terminal con el comando (ls / dev / cu *) o (ls / dev / tty *)

SOLUCIÓN:

3) Descargue los controladores 2.4.2 del sitio web de FTDI http://www.ftdichip.com/Drivers/VCP.htm e instálelos. La instalación tendrá éxito, PERO debido a los controladores FTDI incorporados de Apple no funcionarán.

2) Reinicie la computadora e ingrese al modo de recuperación. Apague y mantenga presionado CMD + R al reiniciar.

3) En el modo de recuperación, abra la terminal desde las utilidades en la parte superior de la pantalla y escriba lo siguiente para desactivar temporalmente la Protección de integridad del sistema:

csrutil disable

La computadora le pedirá que reinicie para que los cambios surtan efecto.

4) Al reiniciar, ahora necesitamos deshabilitar los controladores FTDI de Apple (NOTA: esto puede revertirse en cualquier momento, así que no se preocupe). - Abra la Terminal y escriba lo siguiente.

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

Ahora habrá inhabilitado con éxito los controladores FTDI integrados de Apple y los ha reemplazado con FTDI v2.4.

5) Reinicie su computadora en modo de recuperación. Apague, mantenga presionadas las teclas Comando + R y abra el terminal en la pestaña Utilidades. Ingrese lo siguiente para volver a habilitar la Protección de integridad del sistema de Apple

csrutil enable

¡AL FINAL! ¡Un reinicio final y luego todos sus dispositivos serie USB deberían cargarse correctamente!

** NOTA: He probado esto en una Macbook Pro 2016 con MacOS 10.13.3 en los siguientes dispositivos / aplicaciones: 1) Pantalla desde el terminal, CoolTerm, Bus Pirate V3.6, JTAGulator, Arduino Uno, Adafruit Mega AT, Arduino Mega clon.

Garrett Johnson
fuente
2
Buena solución. También funciona en un iMac para Jewelbots. Problemas menores: 1. Los KEXT de Apple están en / Sistema / Biblioteca / Extensiones / (HFS + y APFS preservan mayúsculas y minúsculas y Terminal es exigente). 2. chgrp no es necesario. El grupo ya está rueda después de la instalación. 3. FTDIUSBSerialDriver.kext está en / Libray / Extensions / y / Library / StagedExtensions / Library / Extensions / not in / System / Library / Extensions /. 4. D2zzHelper.kext no existe
Alain O'Dea
2

Me gustaría proporcionar una respuesta adicional que resuelva una pieza más del rompecabezas que tenía. Incluso después de la excelente respuesta de Garrett Johnson anterior, mi controlador FTDI todavía no funcionaba. Resultó que, y sé que esto parece una locura, que la pestaña "Seguridad y privacidad" de las Preferencias del sistema no aceptaba el clic de mi trackpad en el botón "Permitir" que permitiría cargar el controlador. Llegué a este camino después de ver este mensaje en el registro de instalación:

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

Por supuesto, hice clic en "Permitir" allí, pero nada parecía suceder. El botón registró el clic, pero no tuve ninguna ventana emergente ni nada más para alguna forma de confirmación. Al buscar en Internet, descubrí este extenso hilo en la página de github de Karabiner que discute varias soluciones para forzar las Preferencias del Sistema para permitir el clic del mouse:

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

Aparentemente tenía un software en ejecución que estaba interceptando la actividad del trackpad. No era cromo en mi caso, a diferencia de varias personas en esa lista. No tengo idea de lo que era, lo cual es un poco preocupante. La solución que funcionó para mí fue habilitar las teclas del mouse, luego presionar "I" para hacer clic con el mouse sobre el botón "Permitir". En ese momento, apareció una ventana y pude permitir que se cargara el controlador FTDI.

¡Todavía estoy sacudiendo mi cabeza!

Mike Andrews
fuente
1
Estoy ejecutando MagicPrefs y el controlador Wacom Intuos y decidí verificar si se suponía que hacer clic en permitir haría algo después de leer esta publicación. Resulta después de presionar permitir (y en realidad se propaga): ¡el sistema muestra una nueva ventana con una lista de los controladores / bibliotecas correspondientes que había registrado anteriormente!
Supernovah
0

Yo tuve el mismo problema. Había instalado los controladores FTDI a través de un enlace de las notas de instalación de Creality Ender 3, y el enlace instaló la versión 2.2.18, que es para OS X 10.8 y posteriores. (Estoy corriendo Sierra, 10.12). El conductor funcionó, pero no soltó. Eliminé el controlador usando sudo rm /System/Library/Extensions/FTDIUSBSerialDriver.kext/y luego descargué e instalé la versión 2.4.2. Todos trabajando ahora.

Steve Johnson
fuente