Dev ttyacm0 что это
Такого идиотского кода на C я не видел лет 15.
Самые перлы:
strcpy(cmd,»rm -f «); strcat(cmd,TMP_FILE__PID); system(cmd);
system(«rm -f /dev/modem»);
system(«mknod /dev/ttyACM0 c 166 0»);
system(«ln -s /dev/ttyACM0 /dev/modem»);
fscanf без проверки ошибок.
волшебные sleep()
Афтар, напесал бы еще свой шелл-скрипт на ассемблере !
system(«rm -f /dev/modem»); system(«mknod /dev/ttyACM0 c 166 0»); system(«ln -s /dev/ttyACM0 /dev/modem»);
int fileexist(const char* filename)
{
int res = 0;
FILE* f=fopen(filename,»rt»);
if(f!=NULL) { fclose(f); res=1; }
return res;
}
>> Код . содержит race()
Имеется ввиду, что может возникнуть блокировка файла /tmp/minimaxd.pid?
Возможно. Но каким образом.
К файлу обращается только одна запущенная копия процесса. Это
достигается вызовом в программе функции kill_copy_daemon().
Или Вы подразумеваете, что какой-либо другой процесс
может обратиться к этому файлу?
В любом случае, спасибо за дельные советы.
| Добавить комментарий |
Dev ttyacm0 что это
Hекоторые девайсы типа модемов детектятся как /dev/ttyACM0, некоторые — как
/dev/ttyUBS0.
Какой в этом глубокий смысл вообще (то есть для чего это сделано) и смысл с
точки зрения драйверов?
Nickita A Startcev
2014-06-02 17:40:10 UTC
02 Jun 14 , 19:33 Dmitry the Zuryanovich писал к All:
DtZ> Hекоторые девайсы типа модемов детектятся как /dev/ttyACM0, некоторые
DtZ> — как /dev/ttyUBS0.
DtZ> Какой в этом глубокий смысл вообще (то есть для чего это сделано) и
DtZ> смысл с точки зрения драйверов?
ttyUSBx — это симуляция компорта со всеми извратами типа битовой скорости,
RTS/CTS/etc. в общем, натягивание дохлой совы-компорта на жирный глобус USB,
причем со всякой проприетарной порнографией в формате посылок и с странными
ограничениями скорости.
ttyACM — это просто поток байтов точка-точка. бред типа битов состояния звонка
и битов (не)готовности и (не)желания приемопередавать выкинуты, ибо
(не)подтверждение приема уже есть на уровне усб-стека.
. С уважением, Hикита.
icq:240059686, lj-user:nicka_startcev
. А лицо у него было не очень физическое
В чем глубинный смысл ttyACMx?
Сабж. Прочитал несколько статей на тему разницы ttyUSBx и ttyACMx.
Как я понял, ttyUSBx это UART, подключенный на usb. А ttyACMx это нечто, прикидывающееся модемом, и вовсе необязательно ведущее себя как uart.
Т.е. вроде как tty* != uart. Или не так? зачем это сделано? Кому сейчас нужны реальные терминалы, чтобы ради них городить tty? причем так, что uart кроме как через tty недоступен. И к тому же не всякий tty это uart.
Например, в QNX, емнип, нет /dev/ttyS0, а есть /dev/ser1, который именно uart, без всяких tty заморочек.
Да, насколько я помню, tty* можно использовать так, чтобы он ничего не вставлял лишнего, а сразу гнал данные в порт. Но зачем вообще тащить это наследие времен, когда компьютеры были большими?
Перемещено mono из talks
cvs-255 ★★★★★
06.12.14 02:02:39 MSK
← 1 2 →
фиг знает. Сам давно отказался от этого в пользу /dev/serial/
demidrol ★★★★★
( 06.12.14 02:39:16 MSK )
Ответ на: комментарий от demidrol 06.12.14 02:39:16 MSK
Это где /dev/serial/?
cvs-255 ★★★★★
( 06.12.14 03:06:19 MSK ) автор топика
Ответ на: комментарий от cvs-255 06.12.14 03:06:19 MSK
в линуксах, где есть udev.
$ find /dev/serial/ /dev/serial/ /dev/serial/by-path /dev/serial/by-path/pci-0000:00:14.0-usb-0:2:1.0-port0 /dev/serial/by-id /dev/serial/by-id/usb-Silicon_Labs_CP2103_USB_to_UART_Bridge_Controller_0001-if00-port0
demidrol ★★★★★
( 06.12.14 03:08:25 MSK )
Ответ на: комментарий от demidrol 06.12.14 03:08:25 MSK
У меня есть udev. /dev/serial нету. Напиши, какие там файлы устройств?
cvs-255 ★★★★★
( 06.12.14 03:21:10 MSK ) автор топика
Ответ на: комментарий от cvs-255 06.12.14 03:21:10 MSK
там нет файлов устройств, только симлинки на них. Проверил — вроде и в дебиане анстейбле, и генте имеется.
demidrol ★★★★★
( 06.12.14 03:23:08 MSK )
Ответ на: комментарий от demidrol 06.12.14 03:23:08 MSK
На какие устройства линки?
cvs-255 ★★★★★
( 06.12.14 03:33:16 MSK ) автор топика
Ответ на: комментарий от cvs-255 06.12.14 03:33:16 MSK
ну, вроде на /dev/ttyUSB*, но если мне память не изменят, там же и /dev/ttyACM* оказывались.
demidrol ★★★★★
( 06.12.14 03:57:07 MSK )
Ответ на: комментарий от demidrol 06.12.14 03:57:07 MSK
т.е. это те же самые tty.
cvs-255 ★★★★★
( 06.12.14 03:59:39 MSK ) автор топика
Все очень просто.
ttyACM — это стандартный USB CDC ACM.
ttyUSB — это проприетарный протокол, похожий на USB CDC ACM, но с расширениями и модификациями.
Соответственно и драйверы разные для них.
alexru ★★★★
( 06.12.14 07:49:32 MSK )
Последнее исправление: alexru 06.12.14 07:53:05 MSK (всего исправлений: 1)
Ответ на: комментарий от alexru 06.12.14 07:49:32 MSK
О, хоть кто-то просветил!
А то я сильно матюкался, когда мой микроконтроллер вместо /dev/ttyUSBx определился как /dev/ttyACMx.
Ну, в принципе, теперь все ясно: если у тебя что-то вылезает на /dev/ttyUSBx, ты не можешь никаких ioctl’ов применить, кроме tty’шных. А на /dev/ttyACMx можешь.
А в остальном — те же яйца, только в профиль.
Eddy_Em ☆☆☆☆☆
( 06.12.14 08:14:26 MSK )
Ответ на: комментарий от Eddy_Em 06.12.14 08:14:26 MSK
Микроконтроллеры определяются как ttyACM потому что какой им смысл поддерживать FTDI, SiLabs и еще черт знает кого. Да чтобы потом FTDI-ные дрова убили устройство как недавно случилось.
Я бы хотел найти аналог FTDI, но поддерживающий CDC ACM, но чего-то пока не видать.
alexru ★★★★
( 06.12.14 08:41:27 MSK )
Ответ на: комментарий от alexru 06.12.14 08:41:27 MSK
Это чего за страшилка?
Eddy_Em ☆☆☆☆☆
( 06.12.14 08:58:59 MSK )
Ответ на: комментарий от Eddy_Em 06.12.14 08:58:59 MSK
Если кратко, то FTDI выпустил драйвер (для винды), который делает хитрую попытку записи 0 в EEPROM на месте PID, но операцию не завершает. Это игнорируется настоящими чипами, но убивает клоны.
FTDI уже пожалели об этом и извинились, но поздно метаться.
alexru ★★★★
( 06.12.14 09:04:18 MSK )
Ответ на: комментарий от alexru 06.12.14 07:49:32 MSK
А нет возможности увидеть девайс как uart порт, в который пишешь байт — и в порт улетел байт. Без всяких там протоколов?
cvs-255 ★★★★★
( 06.12.14 11:38:31 MSK ) автор топика
Ответ на: комментарий от cvs-255 06.12.14 11:38:31 MSK
Hу так /dev/ttyACMx и /dev/ttyUSBx дают такую возможность. Но чтобы байт «улетел» на нужной скорости порт нужно конфигурировать.
alexru ★★★★
( 06.12.14 11:45:42 MSK )
Ответ на: комментарий от alexru 06.12.14 11:45:42 MSK
Выставить baud rate, что там еще делать?
Во всяких МК, когда нужно на uart что то вывести, записываешь baudrate, после чего выводишь побайтно данные в регистр порта, и они выводятся на порт.
Почему в линуксе надо не так? Символьное устройство с ioctl, задающим скорость и всякие там стоповые биты и четность.
cvs-255 ★★★★★
( 06.12.14 12:07:09 MSK ) автор топика
Последнее исправление: cvs-255 06.12.14 12:10:20 MSK (всего исправлений: 3)
Ответ на: комментарий от cvs-255 06.12.14 12:07:09 MSK
Число бит данных, стоповых бит, бит четности и контроля потока.
Те драйверы больше ничего особо и не позволяют делать. Все остальное — как запрашивалось, послали байт, получили байт на выходе.
alexru ★★★★
( 06.12.14 12:10:37 MSK )
Ответ на: комментарий от alexru 06.12.14 11:45:42 MSK
Hу так /dev/ttyACMx и /dev/ttyUSBx дают такую возможность.
Ох, как я на днях задолбался, пытаясь установить скорость 250000 на /dev/ttyACM0 устройства, которое точно поддерживает эту скорость.
cvs-255 ★★★★★
( 06.12.14 12:11:39 MSK ) автор топика
Ответ на: комментарий от cvs-255 06.12.14 12:07:09 MSK
Можно, почему нельзя. Нужно узнать по какому адресу находится контроллер UART, mmap-нуть этот адрес в пространство процесса. После этого контроллер будет доступен как набор регистров.
alexru ★★★★
( 06.12.14 12:13:17 MSK )
Ответ на: комментарий от alexru 06.12.14 12:13:17 MSK
Только это естественно для железного COM-порта.
alexru ★★★★
( 06.12.14 12:14:32 MSK )
Ответ на: комментарий от alexru 06.12.14 12:14:32 MSK
А какие еще бывают com порты? Вот у меня есть железка с ардуиной, в ней usb com порт для связи с компом. Вполне себе «железный»
cvs-255 ★★★★★
( 06.12.14 12:14:57 MSK ) автор топика
Последнее исправление: cvs-255 06.12.14 12:16:10 MSK (всего исправлений: 2)
Ответ на: комментарий от cvs-255 06.12.14 12:14:57 MSK
Виртуальные через USB. О них в этом топике и идет речь.
alexru ★★★★
( 06.12.14 12:16:20 MSK )
Ответ на: комментарий от cvs-255 06.12.14 12:14:57 MSK
У ардуино стоит отдельный преобразователь USB-UART. Так что ищи комп с COM-портом и будет как в ардуино.
Только и с ардуино придется выкинуть преобразователь и подключать UART напрямую к компу (через преобразователь уровней RS232).
alexru ★★★★
( 06.12.14 12:17:31 MSK )
Последнее исправление: alexru 06.12.14 12:21:18 MSK (всего исправлений: 1)
Ответ на: комментарий от alexru 06.12.14 12:16:20 MSK
Чем он виртуальный? Как виртуальность зависит от того, на какой шине висит порт?
cvs-255 ★★★★★
( 06.12.14 12:29:16 MSK ) автор топика
Ответ на: комментарий от alexru 06.12.14 12:17:31 MSK
Зачем мне это? Почему нельзя нормально работать с портом на usb, а не через изврат с патченой pyserial, которая таки может перевести этот tty в нужный режим?
cvs-255 ★★★★★
( 06.12.14 12:34:25 MSK ) автор топика
Ответ на: комментарий от cvs-255 06.12.14 12:29:16 MSK
Потому что настоящий COM-порт цепляется к настоящему контроллеру UART, нет тут никакой шины. Виртуальный порт — это имитация. Те-же байты пакуются в кадры и передаются по USB и могут быть приняты только по USB .
Схема до USB: PC UART — RS-232 — кабель — RS-232 — МК UART. Схема ардуино: PC USB — USB кабель — мост USB-UART — МК UART.
Соответственно UART на стороне PC больше нет и работать с байтам «как на МК» уже не выйдет.
alexru ★★★★
( 06.12.14 12:35:44 MSK )
Ответ на: комментарий от cvs-255 06.12.14 12:34:25 MSK
Зачем мне это? Почему нельзя нормально работать с портом на usb, а
Работай. libusb и вперед изобретать велосипед (CDC ACM).
CDC ACM — это 2 конечных точки — настройки и данные. Настройки имеют заранее известный формат. Данные — это просто сырые данные (те самые байтики).
alexru ★★★★
( 06.12.14 12:38:22 MSK )
Последнее исправление: alexru 06.12.14 12:44:14 MSK (всего исправлений: 2)
Ответ на: комментарий от alexru 06.12.14 12:35:44 MSK
В случае без USB:
CPU — PCI — UART — TTL to RS232 —X— провод — RS232 to TTL — МК UART
CPU — PCI — USB — провод — UART —X— МК UART.
Расположение провода в этой цепочке, очевидно, ни на что не влияет. Преобразователь уровней напряжения ttl to rs232 тоже. В обоих случаях UART является периферийным устройством компьютера, даже если физически он на плате с ардуиной. На схеме выше области, где заканчивается периферия компьютера и начинается МК, я разделил значком «X».
Именно компьютер указывает, на какой скорости работать UART. А контроллер управляет тем, на какой скорости работает МК UART. И было бы неплохо, чтобы эти скорости совпадали.
cvs-255 ★★★★★
( 06.12.14 15:15:12 MSK ) автор топика
Последнее исправление: cvs-255 06.12.14 15:20:03 MSK (всего исправлений: 2)
Ответ на: комментарий от cvs-255 06.12.14 15:15:12 MSK
Но как я понял, ttyACM0 это совсем не serial порт, а какой-то другой тип устройств, который по какому-то недоразумению в линуксе тоже работает через tty абстракцию.
cvs-255 ★★★★★
( 06.12.14 15:36:36 MSK ) автор топика
Ответ на: комментарий от alexru 06.12.14 09:04:18 MSK
мастдайкоюзвери должны страдать.
Eddy_Em ☆☆☆☆☆
( 06.12.14 16:19:14 MSK )
Ответ на: комментарий от cvs-255 06.12.14 15:36:36 MSK
ttyACM0 это совсем не serial порт
Очень даже serial. У меня, например, почти все ioctl’ы поддерживаются. Потому что я использую их для задания скорости USART’а (у микроконтроллера 2 USART’а и 1 USB, к компьютеру подключение по USB, а параметры USART’а МК узнает при подключении посредством ioctl’ов — скорость, четность и т.п. так и задается).
Вот только мне не нужны DTR и т.п., поэтому их я не обрабатываю. А нужны были бы — тоже поддерживал бы эти ioctl’ы.
Eddy_Em ☆☆☆☆☆
( 06.12.14 16:25:00 MSK )
Ответ на: комментарий от Eddy_Em 06.12.14 16:25:00 MSK
Если ttyACM это тоже serial, то в чем его тогда отличия от ttyUSB?
Казалось бы, serial это 2 провода — RX и TX. А также параметры — скорость и биты конца и четности.
Казалось бы, все. Драйвер serial порта должен уметь выставлять скорость, параметры стоб битов и четности, при записи в файл устройства посылать их в uart, а при чтении читать из uart.
но некоторые устройства видятся как ttyUSB, а некоторые как ttyACM. Но если они оба это uart, то в чем различие?
или различие в том, что они это не только драйвера собственно uart, но и еще поверх него что-то реализуют, и это что-то разное?
cvs-255 ★★★★★
( 06.12.14 16:52:40 MSK ) автор топика
Ответ на: комментарий от cvs-255 06.12.14 16:52:40 MSK
Железный UART конфигурируется локально и физически посылает биты на нужной скорости.
Через USB конфигурируется внешний контроллер, а сама конфигурация и данные посылаются на максимальной для USB скорости и с соответствующей запаковкой в кадры и разделением шины между устройствами. USB CDC и не-CDC — это протоколы общения с этим контроллером.
Тот-же /dev/ttyUSBx может быть интерфейсом к параллельному контроллеру, например.
Если хочется общаться напрямую с МК, то нужно брать МК с контроллером USB и тогда можно не мучиться с /dev/ttyUSB и протоколом CDC, а напрямую слать данные в МК с любом формате на максимальной для USB скорости.
alexru ★★★★
( 06.12.14 20:00:35 MSK )
Последнее исправление: alexru 06.12.14 20:00:47 MSK (всего исправлений: 1)
Ответ на: комментарий от alexru 06.12.14 09:04:18 MSK

Пожалели, не пожалели — проблема до сих пор сохраняется, что с дровами с сайта, что с теми что винда сама ставит. Уже 5 раз перешивал. Кабели к AirConsole оказались с подделкой.
VinilNavigator ★
( 06.12.14 21:31:45 MSK )
Ответ на: комментарий от alexru 06.12.14 20:00:35 MSK
Вот у меня есть шнурок мост usb-rs232. Я его втыкаю в usb порт и посылаю данные. И из него идут данные с указанной скоростью, а не со скорость usb. В случае ардуины, как я понял, то же самое, только uart сторона моста сразу к юарту мк подключена.
Atmega2560 вообще не имеет usb. Она имеет 2 юарта. И к одному из юартов подключен мост.
cvs-255 ★★★★★
( 06.12.14 22:33:49 MSK ) автор топика
Последнее исправление: cvs-255 06.12.14 22:40:02 MSK (всего исправлений: 1)
Ответ на: комментарий от cvs-255 06.12.14 22:33:49 MSK
Я его втыкаю в usb порт и посылаю данные. И из него идут данные с указанной скоростью, а не со скорость usb.
Ага, но до моста данные идут со скоростью USB.
Да, и поэтому со стороны меги соединение выглядит как простой UART, а со стороны компа как сложный USB. Я не понимаю в чем проблема. Если хочется так же просто со стороны компа, то нужно подключать к комповому-же железному UART-у.
А так комп посылает не последовательные данные, а команды мосту, который посылает данные. И формат этих команд определяется протоколом CDC ACM. И поэтому нужен специальный драйвер, который делает этот USB мост похожим на COM-порт. Но драйвер не обязателен, можно взять libusb и говорить с железкой напрямую, никакого COM-порта в этом случае не будет.
Я не знаю как это объяснить еще проще.
alexru ★★★★
( 06.12.14 22:50:04 MSK )
Ответ на: комментарий от alexru 06.12.14 22:50:04 MSK
А есть еще мосты Ethernet-UART. И с ними абсолютно та же ситуация.
alexru ★★★★
( 06.12.14 22:54:44 MSK )
Ответ на: комментарий от alexru 06.12.14 22:50:04 MSK
Более того на новых ардуинах мост сделан на МК ATxmega16U4 или подобном и прошивка открыта. Так что можно ее поправить, например зафиксировав скорость и настройки порта. Тога конфигурация со стороны ПК не будет требоваться и можно будет просто слать и принимать данные (через libusb естественно). Это по сути изобретение собственного «удобного» протокола.
alexru ★★★★
( 06.12.14 23:03:24 MSK )
Ответ на: комментарий от Eddy_Em 06.12.14 08:14:26 MSK

Ну, в принципе, теперь все ясно: если у тебя что-то вылезает на /dev/ttyUSBx, ты не можешь никаких ioctl’ов применить, кроме tty’шных. А на /dev/ttyACMx можешь.
ммммм? а можно с этого места поподробнее? почему понятно? а то недавно бился с устройством на уарт.
next_time ★★★★★
( 06.12.14 23:19:48 MSK )
Ответ на: комментарий от cvs-255 06.12.14 12:07:09 MSK

Во всяких МК, когда нужно на uart что то вывести, записываешь baudrate, после чего выводишь побайтно данные в регистр порта, и они выводятся на порт.
во всяких МК точно также задаются стоповые биты и чётность
next_time ★★★★★
( 06.12.14 23:22:32 MSK )
Ответ на: комментарий от alexru 06.12.14 11:45:42 MSK

эх, где вы были. недавно задавал в технических разделах вопрос, никто не осилил дать вразумительный ответ, как же это сделать.
next_time ★★★★★
( 06.12.14 23:23:52 MSK )
Ответ на: комментарий от next_time 06.12.14 23:23:52 MSK


mono на мой взгляд, данному вопросу место в технических разделах.
next_time ★★★★★
( 06.12.14 23:27:21 MSK )
Ответ на: комментарий от next_time 06.12.14 23:23:52 MSK
недавно задавал в технических разделах вопрос, никто не осилил дать вразумительный ответ, как же это сделать.
alexru ★★★★
( 07.12.14 00:33:18 MSK )
Ответ на: комментарий от alexru 07.12.14 00:33:18 MSK

видеть девайс как uart порт, в который пишешь байт — и в порт улетел байт
next_time ★★★★★
( 07.12.14 11:02:24 MSK )
Елки, что вы тут развели флейм ни о чем?
Нет никакой разницы между ttyACM и ttyUSB. Суть в том, что используются просто два разных подхода для распространения девайсов:
1. Это когда вендор создает новый USB-serial чип, но ему влом писать свой драйвер.
Тогда он просто реализует в своем чипе прошивку согласно USB CDC ACM спецификации. И реализует (или не реализует) в ней поддержку нужных команд. Например, не делает (или делает) поддержку baud rate, не делает (или делает) parity и прочее в соответствии с CDC ACM спекой (тут уже про это говорили). Т.е. на все воля вендора. В этом случае юзер — программер при попытке установить baud rate и прочие не поддерживаемые вещи (всякие другие ioctl) получит ошибки с определенными кодами.
Основной цимус в этом подходе в том, что вендору не нужно писать свой драйвер, т.к. CDC ACM девайс — это class-specific устройство для которого в любой оси есть уже встроенный драйвер. И этот девайс будет работать в любой оси без проблем (в идеале). И все фичи строго регламентируются/ограничиваются CDC ACM спецификацией и тем «стандартным» драйвером, который есть в ОС.
2. Это когда вендор создает новый USB-serial чип, но ему хочется написать свой драйвер.
Тогда он пишет драйвер для каждой из платформ. В котором также он может реализовать или нет определенные serial фичи, а также добавить в него некие дополнительные ioctl (например, включить лампочку на устройстве или подрыгать дополнительными GPIO ножками и прочее). Здесь с точки зрения конечного юзера-программера нет никакой разницы. т.е. также могут не поддерживаться установки baud rate и прочих плюх.
Основной цимус в этом подходе в том, что вендору не нужно писать специфичную прошивку для девайса в соответствии с CDC ACM спекой. Вендор тут волен делать все что ему хочется. Но он должен предоставить драйвер с описанием всех поддерживаемых фич (ioctl и прочее). Хотя, по-хорошему., и в п.1. он тоже должен предоставить описание всех фич.
Кроме того, вендор может вообще не предоставлять свой девайс как serial/tty девайс. А может просто как некий иной кастомный девайс (dev/myCoolDevice), в котором напридумывать свой API для его конфигурирования и прочее (привет, FTDI 🙂 ). Например как 1-Wire, SPI и прочее.. А может сделать тот-же SPI и прочее через serial..
Резюмируя: Для конечного пользователя нет разницы вообще. Поэтому — забейте. 🙂
UPD: И это касается не только serial устройств, а вообще любых. Например, те-же USB Audio/Video и прочее.
kuzulis ★★
( 07.12.14 15:38:28 MSK )
Последнее исправление: kuzulis 07.12.14 15:45:19 MSK (всего исправлений: 2)
Подключение устройств
Номера ( ttyUSB0 , ttyUSB1 ) присваиваются в порядке подключения и после перезагрузки могут оказаться другими.
Кроме того , эти же устройства доступны по длинным именам , зависящим от порта подключения и наименования устройства.
Их можно искать в /dev/serial/by-id/ и /dev/serial/by-path .
Например , у меня одно последовательно устройство :
crw-rw—- 1 root dialout 166, 0 июля 7 10:05 /dev/ttyACM0
имеет еще два представления usb-Swamp_Swamp-if00 (по наименованию или серийному номеру) и pci-0000:00:1d.0-usb-0:1.4:1.0 (по точке подключения)
lrwxrwxrwx 1 root root 13 июня 29 12:25 usb-Swamp_Swamp-if00 -> ../../ttyACM0
ls -l /dev/serial/by-path/
lrwxrwxrwx 1 root root 13 июня 29 12:25 pci-0000:00:1d.0-usb-0:1.4:1.0 -> ../../ttyACM0
Тем самым можно указывать в качестве файла устройства :
Посмотреть какие вообще USB устройства в системе подключены можно используя lsusb
Bus 002 Device 031: ID 0483:5740 STMicroelectronics STM32F407
Bus 002 Device 007: ID 0518:0001 EzKEY Corp. USB to PS2 Adaptor v1.09
Посмотреть информацию по конкретному PID:VID
lsusb -vd 0483:5740
ну и конечно dmesg
dmesg | grep -B5 tty
это команда выведет пять строк из dmesg предшествующие каждому упоминанию tty