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

17

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

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

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

введите описание изображения здесь

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

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

thkemp
источник

Ответы:

9

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

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

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

robertklep
источник
Спасибо @robertklep, это сработало для меня! Я думаю, что это был просто конфликт между этими двумя водителями. Хотя интересно, что переименование файла (например, FTDIUSBSerialDriver.kext.bakили ~FTDIUSBSerialDriver.kext) не сработало, мне пришлось фактически удалить файл из /Library/Extensions/каталога.
thkemp
Та же проблема для меня, но я не FTDIUSBSerialDriverустановил, так что это не
исправило
1
@Pwdr попробовать это из терминала: kextstat | grep -v apple. Это должно вернуть любые неосновные расширения ядра, которые активны. Возможно, есть еще один, вызывающий проблемы.
Робертклеп
Я нашел это в /System/Library/Extensions/FTDIUSBSerialDriver.kext
lukecyca
После внесения предложенных изменений драйвер больше не работает. Мне пришлось установить его снова.
Ахмет
10

Исправление драйвера 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 Мега клон

Гаррет Джонсон
источник
2
Классное исправление. Он также работает на 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 не существует
Ален О'Ди
2

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

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

Майк Эндрюс
источник
1
Я использую MagicPrefs и драйвер Wacom Intuos, и я решил проверить, должно ли что-то делать после нажатия кнопки «Разрешить» после прочтения этого поста. Оказывается, после того, как вы нажмете на «разрешить» (и он действительно распространяется) - система запросит новое окно со списком соответствующих драйверов / библиотек, которые были ранее синхронизированы!
Сверхновая
0

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

Стив Джонсон
источник