Phoenix писал(а):А, вы используете драйвер от Exar. Я думал что изначально был cdc_acm, а потом все поломалось из-за подгрузки другого драйвера. Не вижу смысла использовать этот драйвер, если все работает с cdc_acm.
Phoenix писал(а):Работает после изменения регистров в микросхеме exar. Вы уже забыли что так можно? )
Phoenix писал(а):[b]...
Код: Выделить всё
main.cpp:15:10: fatal error: libusb-1.0/libusb.h: Нет такого файла или каталога
#include <libusb-1.0/libusb.h>
Код: Выделить всё
sudo apt-get install libusb-1.0
Код: Выделить всё
g++: error: /lib/libusb-1.0.so.0: Нет такого файла или каталога
Код: Выделить всё
ldconfig -p | grep libusb
libusbmuxd.so.4 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libusbmuxd.so.4
libusb-1.0.so.0 (libc6,x86-64) => /lib/x86_64-linux-gnu/libusb-1.0.so.0
libusb-1.0.so.0 (libc6) => /lib/i386-linux-gnu/libusb-1.0.so.0
libusb-0.1.so.4 (libc6,x86-64) => /lib/x86_64-linux-gnu/libusb-0.1.so.4
В Makefile меняем путь на соответствующий
Код: Выделить всё
May 25 23:30:39 Home kernel: [ 686.280910] usb 3-1: device descriptor read/64, error -62
May 25 23:30:41 Home kernel: [ 687.908897] usb 3-1: device not accepting address 6, error -62
Код: Выделить всё
$ lsusb
...
Bus 003 Device 003: ID 04e2:1411 Exar Corp.
...
Код: Выделить всё
# ./corExar 3 3
Found exar.
Correction.
Phoenix писал(а):Попробуйте вручную запустить программу. Посмотрите какие Bus/Device у преобразователя:
Phoenix писал(а):Проверил второй метод (запись регистров не в постоянную память) на USB-RS485 - работает. Calculate Linux, kernel 4.14.39.
Код: Выделить всё
Correct device USB-to-COM. Only for 0x04e2 vendor (Exar corp).
Usage: corExar BUS DEVICE
Phoenix писал(а):Это краткая справка по использованию. Запустите ./corExar BUS DEVICE, где BUS DEVICE посмотрите в выводе lsusb.
Скорее всего вы используете не встроенный в ядро драйвер (cdc_acm), а драйвер от Exar. Преобразователь определяет, что драйвер от Exar и игнорирует заданные регистры, т.к. это регистры для cdc_acm (они так и называются CDC_ACM_...).
Phoenix писал(а):Может удалить модуль ядра от exar, или добавить в черный список. Или более кардинально - сменить дистрибутив. Еще можно найти преобразователь на другой микросхеме :) Кстати, Болид опять сменил микросхему преобразователей, в этот раз на CP2104 (Silicon Labs): https://partners.bolid.ru/forum/forum_15320.html#answer15324
Сейчас этот раздел просматривают: 4 гостя