Как освободить / сбросить FTDI устройства с последовательным портом - Mac OSX

16195
thkemp

Я пытаюсь работать с пользовательской печатной платой, которая использует FTDI FT232RL для связи с моим компьютером (MacBookPro под управлением OSX 10.11 El Capitan) для аппаратного проекта. Я использую Matlab для отправки последовательных команд, столкнувшись там с некоторыми проблемами с выводом ClearToSend (CTS), очевидно, «высоким» (выкл), но это другая история.

Однако моя проблема сейчас заключается в том, что мой Mac не «отпустит» (не знаю, как еще это назвать) устройство после того, как я отключу его. Я могу отключить устройство и подключить его к другой шине USB, но на самом деле я могу сделать это только один раз, потому что то же самое случается снова, если я отключаю - это усложняет мою разработку, потому что я нашел единственный способ исправить это это перезагрузить весь компьютер. Как я могу отпустить / сбросить / очистить эти устройства?

Если я открою Системная информация> Аппаратное обеспечение> USB, я по существу вижу одно и то же устройство, указанное дважды в дереве устройств.

Как освободить / сбросить FTDI устройства с последовательным портом - Mac OSX

Это делает так, что, когда я пытаюсь ls /dev/tty.*(в Matlab или Терминале), устройство не отображается в списке, оно по существу блокируется, даже если оно подключено и дважды отображается в дереве устройств. Что я должен делать?

Я установил драйвер FTDI версии 2.3, и он работает иначе. Пожалуйста, дайте мне знать, какую другую информацию я могу предоставить, чтобы разобраться в этом. Спасибо

14

4 ответа на вопрос

7
robertklep

У меня была такая же проблема, хотя и в Сьерре, когда я разговаривал с клоном Arduino Nano (который также использует мост FTDI FT232RL).

То, что мне показалось удачным, так это удаление драйвера FTDI ( /Library/Extensions/FTDIUSBSerialDriver.kext) после обнаружения Apple поставляет драйвер FTDI вместе с самой ОС ( /System/Library/Extensions/AppleUSBFTDI.kext).

Я думаю, что активация обоих драйверов одновременно вызывает конфликт, который связывает порт USB.

Спасибо @robertklep, это сработало для меня! Я думаю, что это был просто конфликт между этими двумя водителями. Хотя интересно, что переименование файла (например, `FTDIUSBSerialDriver.kext.bak` или` ~ FTDIUSBSerialDriver.kext`) не сработало, мне пришлось фактически удалить файл из каталога `/ Library / Extensions /`. thkemp 7 лет назад 0
Та же проблема для меня, но у меня не установлен `FTDIUSBSerialDriver`, так что это не исправило… Pwdr 7 лет назад 0
@Pwdr попробуйте это из терминала: `kextstat | grep -v apple`. Это должно вернуть любые неосновные расширения ядра, которые активны. Возможно, есть еще один, вызывающий проблемы. robertklep 7 лет назад 0
Я нашел это в /System/Library/Extensions/FTDIUSBSerialDriver.kext lukecyca 7 лет назад 0
После внесения предложенных изменений драйвер больше не работает. Мне пришлось установить его снова. Ahmet Yildirim 6 лет назад 0
Это решение работало очень хорошо для меня, и я использовал его в сочетании с MacOS-версией Coolterm, которая предоставляет удобный интерфейс для настройки связи с последовательным портом USB. В целом, драйвер Apple, похоже, не убивает биты / dev / c * каждый раз, когда я отсоединяю USB-кабель (что требует перезагрузки компьютера - либо из-за недостатка навыков, либо из-за того, что это единственный способ получить их). назад). condiosluzverde 6 лет назад 0
7
Garrett Johnson

Исправление драйвера FTDI для MacOS High Sierra 10.13.3 - 31 января 2018 г.

Автор: Гарретт Джонсон Усталый от вашего разработчика. доски не узнаются на вашем новом MacBook? Вы обвиняете эти проклятые C-порты?

ПРОБЛЕМА. Устройства FTDI не используются в MacOS High Sierra. В моем собственном случае у меня были проблемы с подключением устройств с чипом FT232R к моему Macbook Pro 2016 года с C-портами. Устройства появились в моем дереве устройств USB (Информация о системе -> Оборудование -> USB), но не отображались как последовательные устройства с использованием Arduino или Coolterm. - ПРИМЕЧАНИЕ: они не появлялись ни в терминале с командой (ls / dev / cu *), ни (ls / dev / tty *)

РЕШЕНИЕ:

3) Загрузите драйверы 2.4.2 с веб-сайта FTDI http://www.ftdichip.com/Drivers/VCP.htm и установите. Установка будет успешной, НО из-за встроенных драйверов Apple's 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

Теперь вы успешно отключите встроенные драйверы FTDI от Apple и замените их на FTDI v2.4.

5) Перезагрузите компьютер в режиме восстановления. Выключите, удерживайте Ctrl + R и откройте терминал на вкладке Утилиты. Введите следующее, чтобы включить защиту целостности системы Apple

csrutil enable

НАКОНЕЦ! Один последний перезапуск, а затем все ваши последовательные USB-устройства должны загружаться правильно!

** ПРИМЕЧАНИЕ. Я проверил это на Macbook Pro 2016 с MacOS 10.13.3 на следующих устройствах / приложениях: 1) Экран из терминала, CoolTerm, Bus Pirate V3.6, JTAGulator, Arduino Uno, Adafruit Mega AT, Arduino Мега клон.

Классное исправление. Он также работает на iMac для Jewelbots. Незначительные проблемы: 1. KEXT от Apple находятся в / System / Library / Extensions / (HFS + и APFS сохраняют регистр, а Terminal придирчив). 2. chgrp не нужен. Группа уже руль после установки. 3. FTDIUSBSerialDriver.kext находится в / Libray / Extensions / и / Library / StagedExtensions / Library / Extensions / отсутствует в / System / Library / Extensions /. 4. D2zzHelper.kext не существует Alain O'Dea 6 лет назад 0
1
Mike Andrews

Я хотел бы предоставить дополнительный ответ, который решает еще одну часть головоломки, которая у меня была. Даже после превосходного ответа Гарретта Джонсона выше, мой драйвер 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" } 

Конечно, я нажал «Разрешить» там, но ничего не произошло. Кнопка зарегистрировала щелчок, но у меня не было всплывающего окна или чего-либо еще для какой-либо формы подтверждения. Обыскивая Интернет, я обнаружил эту длинную ветку на странице github Karabiner, в которой обсуждались несколько решений, заставляющих Системные настройки разрешать щелчок мышью:

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

Очевидно у меня было запущено какое-то программное обеспечение, которое перехватывало активность трекпада. В моем случае это был не хром, в отличие от нескольких человек из этого списка. Я понятия не имею, что это было, что немного касается. Решение, которое работало для меня, состояло в том, чтобы включить клавиши мыши, затем нажать «I», чтобы щелкнуть мышью над кнопкой «Разрешить». В этот момент появилось окно, и я смог разрешить загрузку драйвера FTDI.

Я все еще качаю головой!

0
Steve Johnson

У меня такая же проблема. Я установил драйверы FTDI по ссылке из заметок об установке Creality Ender 3, и ссылка установила версию 2.2.18, которая предназначена для OS X 10.8 и ниже. (Я управляю Sierra, 10.12). Драйвер работал, но не отпускал. Я удалил драйвер с помощью, sudo rm /System/Library/Extensions/FTDIUSBSerialDriver.kext/а затем скачал и установил версию 2.4.2. Все работает сейчас.