Portál AbcLinuxu, 3. listopadu 2025 01:22
/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.