Здравствуйте! Подскажите, пожалуйста, как правильно прописать путь к добавляемому порту. Подключаю usb конвертер в rs-485, команда lsusb выдаёт следующее: Bus 001 device 103. Как исходя из данной информации прописать путь к порту данного usb конвертера? Спасибо!
Добрый день.
Порт можно узнать с помощью команды dmesg -wH
, которую нужно запустить перед физическим подключением USB-адаптера. В диагностических сообщениях будет выведено сообщение об обнаружении адаптера и назначении ему порта.
Запустил команду, подключил адаптер и…
dmesg -wH
Ничего похожего на /etc/ttyusb не появилось.
сделайте ls /dev/serial/by-path
или ls /dev/serial/by-id
Будет список всех USB-serial адаптеров или ошибка “нет такого пути”, если ни один адаптер не определился.
Рекомендую для USB адаптеров вписать именно полученный полный путь (“/dev/serial/by-id/Хитрое_название_с_цифрами”) и не менять положение usb адаптера (тот же разъём, тот же хаб и положение в нём, если есть) - так он всегда будет находиться после перезагрузки контроллера/питания USB и прочих неприятностей. И не станет внезапно из /dev/ttyUSB0 - /dev/ttyUSB1…
PS: и да, не /etc/… а /dev/ttyU*
Ввёл командуls /dev/serial/by-id
получил следующие результаты…
usb-Marvell_Mobile_Composite_device_Bus_200806006809080000-if02-port0
usb-Marvell_Mobile_Composite_device_Bus_200806006809080000-if03-port0
usb-Marvell_Mobile_Composite_device_Bus_200806006809080000-if04-port0
usb-Marvell_Mobile_Composite_device_Bus_200806006809080000-if05-port0
Пробовал вписать путь к порту так:
/dev/serial/by-id/usb-Marvell_Mobile_Composite_device_Bus_200806006809080000-if02-port0
Ничего не происходит, устройства на порту появляются все в ошибках.
Продолжаем тему ©
0. Откуда столько USB устройств и что это за Marvel - мож там оно и не поддерживается?
- Выдернуть адаптер из порта и запустить
ls -la /dev/serial/by-id
- покажет на какой ttyUSB* что привязано - Воткнуть обратно и повторить.
- Наверно, by-path будет наглядней, там будут цифры 001 и 103 из исходного поста.
- найти, что добавилось после втыкания обратно, и его вписывать как путь…
(5) by-id привязывается к серийнику в чипе, by-path - к “физическому расположению” - т.е. конкретному разъему USB
(6) ну и еслиls /dev/ttyU*
после втыкания адаптера не даёт нового порта - искать проблемы с драйверами - возвращаемся к совету @avspnz - запустить dmesg -w перед подключением адаптера и “втыкать” в результат - если нашелся UART/Serial/что-то похожее - смотреть подробности, если “usb device …” без подробностей - искать драйвер для адаптера…
(7) а бывает не USB*, а AMA* и прочее. Короче - ls /dev/tty* - и искать, что изменилось (не tty, S* и т.п.)
PS: Что-то меня Marvel-mobile смущает - похоже на USB-modem больше, чем на адаптер 485… Но неточно!©
ЗЫЫ: если это 4-портовый адаптер - пробовать по очереди, чтоб понять, на какой порт подключились (и смущает ещё отсутствие if01_port0, но - хз…)
вывод команды
ls -la /dev/serial/by-id
total 0
drwxr-xr-x 2 root root 120 Feb 25 00:52 .
drwxr-xr-x 4 root root 80 Feb 25 00:52 ..
lrwxrwxrwx 1 root root 13 Feb 25 00:54 usb-Marvell_Mobile_Composite_Device_Bus_200806006809080000-if02-port0 -> ../../t
tyUSB0
lrwxrwxrwx 1 root root 13 Feb 25 00:54 usb-Marvell_Mobile_Composite_Device_Bus_200806006809080000-if03-port0 -> ../../t
tyUSB3
lrwxrwxrwx 1 root root 13 Feb 25 00:54 usb-Marvell_Mobile_Composite_Device_Bus_200806006809080000-if04-port0 -> ../../t
tyUSB1
lrwxrwxrwx 1 root root 13 Feb 25 00:54 usb-Marvell_Mobile_Composite_Device_Bus_200806006809080000-if05-port0 -> ../../t
tyUSB2
root@wirenboard-A7C5WKJX:~#
А вывод lsusb
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 005: ID 1e0e:9011 Qualcomm / Option Mobile Composite Device Bus
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 0bda:b720 Realtek Semiconductor Corp. RTL8723BU 802.11b/g/n WLAN Adapter
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 031: ID 08bb:2902 Texas Instruments PCM2902 Audio Codec
Bus 001 Device 030: ID 1a86:7523 QinHeng Electronics CH340 serial converter
Bus 001 Device 029: ID 14cd:8601 Super Top 4-Port hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@wirenboard-A7C5WKJX:~#
Видно, что устройство отображается правильно!
Ещё возможно то, что у меня установлен модуль модема, может в нём дело?
Вывод
ls /dev/serial/by-path
platform-1c1c000.usb-usb-0:1:1.2-port0 platform-1c1c000.usb-usb-0:1:1.4-port0
platform-1c1c000.usb-usb-0:1:1.3-port0 platform-1c1c000.usb-usb-0:1:1.5-port0
root@wirenboard-A7C5WKJX:~#
Ну, как минимум 4 порта USB видятся с marvell и показан путь до них - можно вписывать и его (например /dev/ttyUSB0).
Дальше. Вижу USB-Serial адаптер на CH340, но не вижу “его” порта в /by-path.
Вопрос: кто из этих двух - 485 адаптер? Если CH340 - искать, почему не загрузился по /var/log/syslog и есть ли драйвер (ch341 вроде) в lsmod
. Если marvell - пробовать по очереди все его порты.
С модулем модема не помогу. Помню, что были раньше “чудеса” с modemmanager и usbmodeswitch, но давно и не вспомню, про что.