Jak zwolnić / zresetować urządzenia FTDI portu szeregowego - Mac OSX

17

Próbuję pracować z niestandardową płytką drukowaną, która używa FTDI FT232RL, aby rozmawiać z moim komputerem (MacBookPro z systemem OSX 10.11 El Capitan) w celu realizacji projektu sprzętowego. Używam Matlaba do wysyłania poleceń szeregowych, mam tam pewne problemy z pinem ClearToSend (CTS), najwyraźniej „wysokim” (wyłączonym), ale to już inna historia.

Jednak moim problemem w tej chwili jest to, że mój komputer Mac nie „zwolni” (nie jestem pewien, jak inaczej to nazwać) urządzenia po jego odłączeniu. Mogę odłączyć urządzenie i podłączyć je do innej magistrali USB, ale tak naprawdę mogę to zrobić tylko raz, ponieważ to samo dzieje się ponownie, jeśli odłączę - to utrudnia mój rozwój, ponieważ to jedyny sposób, aby to naprawić jest ponowne uruchomienie całego komputera. Jak mogę zwolnić / zresetować / wyczyścić te urządzenia?

Jeśli otworzę Informacje o systemie> Sprzęt> USB , zasadniczo mogę zobaczyć to samo urządzenie na liście dwukrotnie w drzewie urządzeń.

wprowadź opis zdjęcia tutaj

To sprawia, że ​​kiedy próbuję ls /dev/tty.*(w Matlabie lub Terminalu) urządzenia nie ma na liście, jest ono zasadniczo zablokowane, nawet jeśli jest podłączone i pojawia się dwukrotnie w drzewie urządzeń. Co powinienem zrobić?

Zainstalowałem sterownik FTDI w wersji 2.3 i wydaje się, że działa inaczej. Daj mi znać, jakie inne informacje mogę podać, aby dojść do sedna tego. Dzięki

thkemp
źródło

Odpowiedzi:

9

Miałem ten sam problem, chociaż w Sierra, rozmawiałem z klonem Arduino Nano (który również używa mostka FTDI FT232RL).

Wydaje mi się, że zadziałało w rzeczywistości usunięcie sterownika FTDI ( /Library/Extensions/FTDIUSBSerialDriver.kext) po odkryciu, że Apple dostarcza sterownik FTDI z samym systemem operacyjnym ( /System/Library/Extensions/AppleUSBFTDI.kext).

Myślę, że jednoczesne działanie obu sterowników powoduje konflikt, który wiąże port USB.

robertklep
źródło
Dzięki @robertklep, który działał dla mnie! Myślę, że to był tylko konflikt między tymi dwoma kierowcami. Chociaż interesujące było to, że zmiana nazwy pliku (np. FTDIUSBSerialDriver.kext.bakLub ~FTDIUSBSerialDriver.kext) nie działała, musiałem faktycznie usunąć plik z /Library/Extensions/katalogu.
thkemp
Ten sam problem dla mnie, ale nie FTDIUSBSerialDriverzainstalowałem, więc to nie naprawiło go…
Pwdr,
1
@Pwdr spróbować tego z terminalu: kextstat | grep -v apple. Powinno to zwrócić wszystkie aktywne rozszerzenia jądra firmy innej niż Apple. Być może jest inny powodujący problemy.
robertklep
Znalazłem go w /System/Library/Extensions/FTDIUSBSerialDriver.kext
lukecyca
Po wprowadzeniu sugerowanej zmiany sterownik już nie działał. Musiałem go zainstalować ponownie.
Ahmet Yildirim
10

Poprawka sterownika MacOS High Sierra 10.13.3 FTDI - 31 stycznia 2018 r

Przez: Garrett Johnson Zmęczony twym twórcą. deski nie są rozpoznawane na Twoim nowym, błyszczącym MacBooku? Obwiniasz te cholerne porty C?

PROBLEM: Urządzenia FTDI nie nadają się do użytku w MacOS High Sierra. W moim przypadku miałem problemy z podłączeniem urządzeń z chipem FT232R do mojego MacBooka Pro 2016 z portami C. Urządzenia pojawiły się w drzewie urządzeń USB (Informacje o systemie -> Sprzęt -> USB), ale nie pojawiły się jako urządzenia szeregowe korzystające z Arduino lub Coolterm. - UWAGA: nie pojawiły się ani w Terminalu z poleceniem (ls / dev / cu *), ani (ls / dev / tty *)

ROZWIĄZANIE:

3) Pobierz sterowniki 2.4.2 ze strony internetowej FTDI http://www.ftdichip.com/Drivers/VCP.htm i zainstaluj. Instalacja zakończy się powodzeniem, ALE ze względu na wbudowane sterowniki FTDI firmy Apple, nie będą działać.

2) Uruchom ponownie komputer i wejdź w tryb odzyskiwania poprzez wyłączenie i przytrzymanie CMD + R przy ponownym uruchomieniu.

3) W trybie odzyskiwania otwórz terminal z narzędzi u góry ekranu i wpisz następujące polecenie, aby tymczasowo wyłączyć Ochronę integralności systemu:

csrutil disable

Komputer wyświetli monit o ponowne uruchomienie w celu wprowadzenia zmian.

4) Podczas ponownego uruchamiania musimy teraz wyłączyć sterowniki Apple FTDI (UWAGA: można to w dowolnym momencie cofnąć, więc nie martw się). - otwórz Terminal i wpisz następujące polecenie.

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

Teraz z powodzeniem wyłączyłeś wbudowane sterowniki Apple FTDI i zastąpiłeś je FTDI v2.4.

5) Uruchom ponownie komputer w trybie odzyskiwania. Zamknij, przytrzymaj Command + R i otwórz terminal w zakładce Narzędzia. Wpisz następujące informacje, aby ponownie włączyć ochronę integralności systemu Apple

csrutil enable

W KOŃCU! Jeden końcowy restart, a następnie urządzenia szeregowe USB powinny ładować się poprawnie!

** UWAGA: Przetestowałem to na MacBooku Pro 2016 z MacOS 10.13.3 na następujących urządzeniach / aplikacjach: 1) Ekran z terminala, CoolTerm, Bus Pirate V3.6, JTAGulator, Arduino Uno, Adafruit Mega AT, Arduino Mega klon.

Garrett Johnson
źródło
2
Fajna poprawka. Działa również na komputerze iMac dla Jewelbots. Drobne problemy: 1. KEXT Apple'a znajdują się w / System / Library / Extensions / (HFS + i APFS zachowują wielkość liter, a Terminal jest wybredny). 2. chgrp nie jest potrzebny. Grupa już działa po instalacji. 3. FTDIUSBSerialDriver.kext znajduje się w / Libray / Extensions / i / Library / StagedExtensions / Library / Extensions / not in / System / Library / Extensions /. 4. D2zzHelper.kext nie istnieje
Alain O'Dea
2

Chciałbym podać dodatkową odpowiedź, która rozwiązuje jeszcze jeden kawałek układanki, którą miałem. Nawet po powyższej doskonałej odpowiedzi Garretta Johnsona mój sterownik FTDI nadal nie działał. Okazało się, że - i wiem, że to brzmi niesamowicie - że moja karta Preferencje systemowe „Bezpieczeństwo i prywatność” nie akceptuje kliknięcia mojego gładzika w przycisk „Zezwól”, który pozwoliłby na załadowanie sterownika. Znalazłem tę ścieżkę po zobaczeniu tego komunikatu w dzienniku instalacji:

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

Oczywiście kliknąłem tam „Zezwalaj”, ale wydawało się, że nic się nie wydarzyło. Przycisk zarejestrował kliknięcie, ale nie miałem wyskakującego okna ani niczego innego dla jakiejś formy potwierdzenia. Przeszukując Internet, odkryłem ten długi wątek na stronie github Karabinera omawiający kilka rozwiązań wymuszających Preferencje systemowe, aby umożliwić kliknięcie myszą:

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

Najwyraźniej miałem uruchomione oprogramowanie, które przechwytywało aktywność gładzika. W moim przypadku nie był to chrom, w przeciwieństwie do kilku osób na tej liście. Nie mam pojęcia, co to było, co jest trochę niepokojące. Rozwiązaniem, które zadziałało, było włączenie Klawiszy Myszy, a następnie naciśnięcie „I”, aby kliknąć myszką przycisk „Zezwól”. W tym momencie pojawiło się okno i mogłem zezwolić na ładowanie sterownika FTDI.

Wciąż kręcę głową!

Mike Andrews
źródło
1
Korzystam z MagicPrefs i sterownika Wacom Intuos i postanowiłem sprawdzić, czy kliknięcie przycisku Zezwól miało coś zrobić po przeczytaniu tego postu. Okazuje się po naciśnięciu przycisku zezwól (i faktycznie się propaguje) - system wyświetla nowe okno z listą odpowiednich sterowników / bibliotek, które wcześniej taktował!
Supernowa
0

Miałem ten sam problem. Zainstalowałem sterowniki FTDI poprzez link z notatek instalacyjnych Creality Ender 3, a link zainstalował wersję 2.2.18, która jest dla OS X 10.8 i niższych. (Używam Sierra, 10.12). Sterownik działał, ale nie wypuszczał. Usunąłem sterownik za pomocą, sudo rm /System/Library/Extensions/FTDIUSBSerialDriver.kext/a następnie pobrałem i zainstalowałem wersję 2.4.2. Wszystko działa teraz.

Steve Johnson
źródło