Portál AbcLinuxu, 12. května 2025 11:26
/dev/ttyUSBn
.
Konkrétně tu mám řadu převodníků:
Bus 007 Device 010: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 255 Vendor Specific Class bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x1a86 QinHeng Electronics idProduct 0x7523 HL-340 USB-Serial adapter bcdDevice 2.54 iManufacturer 0 iProduct 2 USB2.0-Serial iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 39 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 96mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 1 bInterfaceProtocol 2 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0020 1x 32 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0020 1x 32 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 1 Device Status: 0x0000 (Bus Powered)A potřeboval bych mezi nimi rozlišovat (a nakonec si vytvářet vlastní symbolické odkazy typu
/dev/moje-tiskarna-1
).
Vím, že u takového FTDI se dá měnit idVendor/idProduct. To bych ani nepotřeboval, klidně bych nechal ty původní, stačilo by mi nastavit sériové číslo, podle kterého bych poznal, který převodník je který – teď mají všechny nastavenou nulu. V katalogových listech jsem nenašel jak na to.
Další možnost je identifikovat zařízení dotazem – po sériové lince pošlu dotaz a zařízení mi odpoví, co je zač. Ale to je jednak takové neelegantní a jednak se nevyhnu posílání dotazů cizím zařízením a ta by se mohla dostat do nějakého divného stavu.
$ cat /etc/udev/rules.d/50-ttyUSB.rules KERNEL=="ttyUSB*", DRIVERS=="ftdi_sio", KERNELS=="7-2:1.0", SYMLINK+="Orange", OWNER="smsd", GROUP="tty", MODE="600" KERNEL=="ttyUSB*", DRIVERS=="pl2303", KERNELS=="7-1:1.0", SYMLINK+="SmartUPS", OWNER="root", GROUP="root", MODE="600"
A jak ten program funguje? Pošle něco do zařízení a podle odpovědi zjistí, co je zač?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.