Intereting Posts
Как увидеть содержание tar, включая uid и gid? Существуют ли какие-либо программы создания комиксов? Почему setxkbmap создает ключ с другими ключами? Как я могу безопасно гарантировать, что переменная содержит только действительное имя файла? Почему -a в «#! / Bin / sh -a» влияет на sed, а «set -a» – нет? Ath9k 802.11n 300 Мбит на низкой скорости sed – найти строку из 4 чисел с предшествующим символом и добавить символ Почему удаление openjdk автоматически запускает установку альтернатив на zypper openSUSE? Как использовать конкретную копию файла etc / apt / sources.list для загрузки определенного программного обеспечения Ошибка сценария Rsync bash (отправка: команда не найдена) Что означает «rc» в /etc/rc.d? При установке обновленной версии Linux, как повторно использовать старый домашний каталог? Порт прямого хоста LXC NAT для контейнера Не удалось смонтировать тома NetApp через NFS: rpcinfo: RPC: тайм-аут Xargs с несколькими записями аргументов – используйте аргумент переменной окружения после sh -c '…'

ttyACM0 и sdb, созданные с одного физического устройства USB

У меня есть USB-устройство, основанное на полупроводниковых полупроводниковых полупроводниках nRF51 SoC. Как только я подключу его к своей машине Ubuntu, он запускает создание как /dev/ttyACM1 и /dev/sdb . До сих пор я воспринимал /dev/ttyACM1 как последовательное устройство UART. Я не знаю, что с этим делать. Пользовательских правил udev не добавлено.

Выход lsusb -v :

 Bus 002 Device 022: ID 1366:1015 SEGGER Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 ? bDeviceProtocol 1 Interface Association bMaxPacketSize0 64 idVendor 0x1366 SEGGER idProduct 0x1015 bcdDevice 1.00 iManufacturer 1 SEGGER iProduct 2 J-Link iSerial 3 000680636054 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 121 bNumInterfaces 4 bConfigurationValue 1 iConfiguration 4 Configuration bmAttributes 0x80 (Bus Powered) MaxPower 100mA Interface Association: bLength 8 bDescriptorType 11 bFirstInterface 0 bInterfaceCount 2 bFunctionClass 2 Communications bFunctionSubClass 0 bFunctionProtocol 0 iFunction 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 2 Communications bInterfaceSubClass 2 Abstract (modem) bInterfaceProtocol 1 AT-commands (v.25ter) iInterface 5 CDC ACM CDC Header: bcdCDC 1.10 CDC Call Management: bmCapabilities 0x03 call management use DataInterface bDataInterface 1 CDC ACM: bmCapabilities 0x06 sends break line coding and serial state CDC Union: bMasterInterface 0 bSlaveInterface 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x87 EP 7 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 8 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 Unused bInterfaceProtocol 0 iInterface 6 CDC DATA Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 7 J-Link Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 8 Mass Storage bInterfaceSubClass 6 SCSI bInterfaceProtocol 80 Bulk-Only iInterface 8 MSD Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x85 EP 5 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x06 EP 6 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 1 Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 ? bDeviceProtocol 1 Interface Association bMaxPacketSize0 64 bNumConfigurations 1 Device Status: 0x0000 (Bus Powered) 

Каким будет механизм, который будет запускать ttyACM1 для распознавания как ttyACM1 и /dev/sdb ?

Устройства USB могут иметь несколько интерфейсов (например, динамик с кнопками управления). Каждый интерфейс является независимым, хотя может быть дескриптор, говорящий, что они должны работать в ассоциации. Если интерфейс использует класс устройств, поддерживаемый Linux, то для его доступности будет использоваться драйвер класса. Существуют драйверы класса для класса устройств связи и массового хранения . В вашем случае, возможно, последовательный порт предназначен для отправки команд, а массовое хранилище предназначено для записи флэш-памяти. Посмотрите на выход lsusb -v для вашего устройства, чтобы узнать подробности об интерфейсах.