utrata dostępu do portów VCP po instalacji drivera D2XX

Jeśli już na pewno nie da się umieścić posta wyżej.
zjk
Piegowaty Guziec
Piegowaty Guziec
Posty: 4
Rejestracja: 31 paź 2020, 12:05
Płeć: Mężczyzna
Wersja Ubuntu: 20.04
Architektura: x86_64

utrata dostępu do portów VCP po instalacji drivera D2XX

Post autor: zjk »

Witam.

Nie znam Linuxa i nie chcę go poznawać poza niezbędne minimum, bo znajomość chyba będzie krótka.
Chciałem przetestować pewien program, który komunikuje się ze światem poprzez porty USB.
Okazało się, że w Linuxie użytkownik musi uzyskać dostęp do portów komputera. Ok.

Potrafię czytać ze zrozumieniem i jeśli da się znaleźć rozwiązanie w sieci to zwykle daję radę.
Zgodnie z poradami dopisałem się do grupy dialout i program zaczął się komunikować poprzez port USB VCP.
Ale... program korzysta także z drugiego portu USB, który pracuje w oparciu o driver D2XX.

Zainstalowałem sterownik i w oparciu o "porady" z sieci i stworzyłem w /etc/udev/rules.d/ plik .rules z takim wpisem:

Kod: Zaznacz cały

ACTION=="add",ATTRS{idVendor}=="0403",ATTRS{idProduct}=="6001",MODE="0666",RUN+="/sbin/rmmod ftdi_sio",OPTIONS="last_rule"
a następnie aktywowałem go poleceniem: sudo udevadm control --reload-rules && udevadm trigger

Zadziałało i działa, nawet plug and play, ale! niestety wyłączyło mi to dostęp do pierwszego portu typu VCP.
Zajrzałem do katalogu dev i stwierdziłem, że nie ma tam pliku ttyUSB0.
Pogooglowałem i skorzystałem z polecenia: dmesg | grep FTDI
no i zobaczyłem coś takiego:
usb 2-2: Manufacturer: FTDI
usbserial: USB Serial support registered for FTDI USB Serial Device
ftdi_sio 2-2:1.0: FTDI USB Serial Device converter detected
usb 2-2: FTDI USB Serial Device converter now attached to ttyUSB0
usbserial: USB Serial deregistering driver FTDI USB Serial Device
ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0


W tym miejscu utknąłem.
Wiem, że mogę się pozbyć tego pliku .rules i każdorazowo uzyskiwać dostęp ręcznie ale z nim jest mi wygodniej.
Niestety nie mogę znaleźć żadnych informacji jak zmodyfikować ten wpis w pliku aby nie wywalał VCP.
Proszę o wskazówkę, i jeśli to możliwe to sformułowaną w miarę przystępny sposób :)

Pozdrawiam.
zjk
Piegowaty Guziec
Piegowaty Guziec
Posty: 4
Rejestracja: 31 paź 2020, 12:05
Płeć: Mężczyzna
Wersja Ubuntu: 20.04
Architektura: x86_64

Re: utrata dostępu do portów VCP po instalacji drivera D2XX

Post autor: zjk »

Witam ponownie.
Kilka dodatkowych informacji.
Program, który testuję został napisany w Lazaurs na Windows i przeniesiony na Linux.
W Windows wszystko działa poprawnie, nie ma żadnych problemów z portami USB.
Porty pracują jednocześnie, ten VCP i ten pod D2XX.
Wiem, że w Linux sterowniki FTDI dla VCP i D2XX wzajemnie sie nie tolerują i trzeba nimi manipulować poprzez
sudo rmmod ftdi_sio
sudo rmmod usbserial
Nie znalazłem jednak informacji czy takie zmiany dotyczyą konkretnego portu czy też wszystkich w PC.
Jeśli wszystkich jednocześnie to projekt leży.
Pozdrawiam.
Awatar użytkownika
arecki
Zakręcona Traszka
Zakręcona Traszka
Posty: 747
Rejestracja: 17 lis 2018, 09:31
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86_64
Lokalizacja: 44 Bronson Lane Hensonville

Re: utrata dostępu do portów VCP po instalacji drivera D2XX

Post autor: arecki »

Opis sugeruje, że masz też jakiś sprzęt (vendor i id wskazuje na konkretną przejściówkę USB-Serial), który podłączasz do portu USB oraz oprogramowanie (napisane w Lazarus), które się komunikuje z tym sprzętem za pośrednictwem sterownika D2XX.
Obecna regułka udev, robi co ma robić, czyli w momencie podłączenia tego sprzętu wywala moduł ftddi, stąd informacja w logach.
usbserial: USB Serial deregistering driver FTDI USB Serial Device
D2XX i VCP nie są kompatybilne i nie mogą pracować jednocześnie.
Nie wiem czy ta zasada dotyczy tylko konkretnego portu, czy też wszystkich.

www.ftdichip.com/Support/Documents/AppN ... _Linux.pdf
In Linux, the VCP driver and D2XX driver are incompatible with each other. When a FTDI device is
plugged in, the VCP driver must be unloaded before a D2XX application can be run. Use the
remove module (rmmod) command to do this:
sudo rmmod ftdi_sio
sudo rmmod usbserial
When the FTDI device is power cycled or reset the VCP driver will be reloaded. The rmmod process
must be repeated each time this occurs. It is possible to write a simple script that unloads the VCP
driver before running the D2XX application.
Zmodyfikowałbym tą regułkę udev, aby usuwała też moduł usbserial, ale nie jestem pewien czy dobrze rozumiem opis sytuacji, który nic nie wspomina o sprzęcie.
zjk
Piegowaty Guziec
Piegowaty Guziec
Posty: 4
Rejestracja: 31 paź 2020, 12:05
Płeć: Mężczyzna
Wersja Ubuntu: 20.04
Architektura: x86_64

Re: utrata dostępu do portów VCP po instalacji drivera D2XX

Post autor: zjk »

Tak, wykorzystywane są dwa konwertery.
Jeden USB/RS485 łączy się poprzez VCP, drugi USB/DMX512 za pośrednictwem D2XX.
Pod Windows nie ma z tym problemu, oba konwertery pracują jednocześnie i nie przeszkadzają sobie.
Programista zrobił konwersję programu na Linux ale nie testował go ze sprzętem.
Dopiero podczas testów okazało się, że jest problem bo porty muszą pracować jednocześnie.
Program pobiera także dane z zewnętrznych nośników np. pendrive i tu też nie ma dostępu.
Wygląda na to, że nie da się tego obecnie obejść więc zostanie zastosowany inny konwerter DMX.
Miał być tani konwerter Open DMX USB, będzie drogi Enttec DMX USB PRO ale pod VCP. Trudno.
Awatar użytkownika
arecki
Zakręcona Traszka
Zakręcona Traszka
Posty: 747
Rejestracja: 17 lis 2018, 09:31
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86_64
Lokalizacja: 44 Bronson Lane Hensonville

Re: utrata dostępu do portów VCP po instalacji drivera D2XX

Post autor: arecki »

Obydwa obecne powinny współpracować zarówno z VCP i D2XX.
Być może wystarczy zastosować konwertery o różnych VID i PID, nie wiem jak jest w przypadku obecnych.
No i oczywiście można kod programu dostosować do jednego sterownika.
zjk
Piegowaty Guziec
Piegowaty Guziec
Posty: 4
Rejestracja: 31 paź 2020, 12:05
Płeć: Mężczyzna
Wersja Ubuntu: 20.04
Architektura: x86_64

Re: utrata dostępu do portów VCP po instalacji drivera D2XX

Post autor: zjk »

Program, który jest przygotowywany pod Linux to lite'owa wersja czegoś większego pod Windows,
no i ma być freeware, więc hardware do niego z założenia miał być jak najtańszy.
Użycie konwertera D2XX (tańszego) komplikuje jednak sprawę bo nie tylko blokuje drugi konwerter pod VCP
ale także np. możliwość korzystania z pendrive'a do przenoszenia danych.
Zdecydowaliśmy, że oba konwertery będą pracować pod VCP i już testujemy to rozwiązanie.
Dzięki za zainteresowanie i chęć pomocy.
ODPOWIEDZ

Wróć do „Ostatnia deska ratunku”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 57 gości