Dirkt gab also einen Kommentar, der mich zum Nachdenken anregte, und ich überprüfte noch einmal einige Fakten. Mit udevadm monitor und anschließender Verbindung der Geräte erhielt ich Folgendes:
Kobalt :
KERNEL[25393.161856] add /devices/pci0000:00/0000:00:14.0/usb3/3-8 (usb) KERNEL[25393.165873] add /devices/pci0000:00/0000:00:14.0/usb3/3-8/3-8:1.0 (usb) KERNEL[25393.165941] bind /devices/pci0000:00/0000:00:14.0/usb3/3-8 (usb) UDEV [25393.183044] add /devices/pci0000:00/0000:00:14.0/usb3/3-8 (usb) UDEV [25393.185175] add /devices/pci0000:00/0000:00:14.0/usb3/3-8/3-8:1.0 (usb) UDEV [25393.186958] bind /devices/pci0000:00/0000:00:14.0/usb3/3-8 (usb)
D4i
KERNEL[24333.615580] add /devices/pci0000:00/0000:00:14.0/usb3/3-8 (usb) KERNEL[24333.618406] add /devices/pci0000:00/0000:00:14.0/usb3/3-8/3-8:1.0 (usb) KERNEL[24333.618444] add /devices/pci0000:00/0000:00:14.0/usb3/3-8/3-8:1.0/ttyUSB0 (usb-serial) KERNEL[24333.618615] add /devices/pci0000:00/0000:00:14.0/usb3/3-8/3-8:1.0/ttyUSB0/tty/ttyUSB0 (tty) KERNEL[24333.618644] bind /devices/pci0000:00/0000:00:14.0/usb3/3-8/3-8:1.0/ttyUSB0 (usb-serial) KERNEL[24333.618685] bind /devices/pci0000:00/0000:00:14.0/usb3/3-8/3-8:1.0 (usb) KERNEL[24333.618729] bind /devices/pci0000:00/0000:00:14.0/usb3/3-8 (usb) UDEV [24333.637591] add /devices/pci0000:00/0000:00:14.0/usb3/3-8 (usb) UDEV [24333.639773] add /devices/pci0000:00/0000:00:14.0/usb3/3-8/3-8:1.0 (usb) UDEV [24333.641366] add /devices/pci0000:00/0000:00:14.0/usb3/3-8/3-8:1.0/ttyUSB0 (usb-serial) UDEV [24333.648159] add /devices/pci0000:00/0000:00:14.0/usb3/3-8/3-8:1.0/ttyUSB0/tty/ttyUSB0 (tty) UDEV [24333.648969] bind /devices/pci0000:00/0000:00:14.0/usb3/3-8/3-8:1.0/ttyUSB0 (usb-serial) UDEV [24333.649799] bind /devices/pci0000:00/0000:00:14.0/usb3/3-8/3-8:1.0 (usb) UDEV [24333.650906] bind /devices/pci0000:00/0000:00:14.0/usb3/3-8 (usb)
Ich vermutete, dass die richtigen udev-Subsysteme sein sollten:
- d4i -> tty
- Kobalt -> usb
Und wie bereits erwähnt, verwenden Sie ATTRS anstelle von ATTR, um den gesamten Gerätepfad abzugleichen. Also änderte ich die udev-Regeln in:
# My Cobalt2 DiveComputer SUBSYSTEM=="usb", ATTR=="0471", ATTR=="0888", SYMLINK+="my_cobalt", GROUP="dialout", MODE="0660" # My Suunto D4i DiveComputer SUBSYSTEM=="tty", ATTRS=="0403", ATTRS=="6001", ATTRS=="DiYISDGK", SYMLINK+="my_d4i", GROUP="dialout", MODE="0660"
Nach dem Neustart von udev und dem erneuten Verbinden des Geräts erhielt ich:
ls -l / dev / tty_d4i
lrwxrwxrwx 1 root root 7 mei 22 00:43 tty_d4i -> ttyUSB0
Und das machte es so, wie ich wollte. Ich bin immer noch nicht zu 100% sicher warum, aber ich denke, das ist mein begrenztes Wissen über udev. Ich werde weiter nach udev recherchieren, aber vorerst scheint das gelöst zu sein. Also danke dirkt für den Hinweis.
Zur Referenz die Ausgabe von:
Sudo Udevadm Info -a -n / dev / ttyUSB0
Udevadm-Info beginnt mit dem vom devpath angegebenen Gerät und dann geht die Kette der übergeordneten Geräte hinauf. Es wird für jedes Gerät gedruckt gefunden, alle möglichen Attribute im Schlüsselformat der udev-Regeln. Eine übereinstimmende Regel kann aus den Attributen des Geräts bestehen und die Attribute von einem einzigen übergeordneten Gerät. Blick auf Gerät '/devices/pci0000:00/0000:00:14.0/usb3/3-7/3-7:1.0/ttyUSB0/tty/ttyUSB0': KERNEL == "ttyUSB0" SUBSYSTEM == "tty" FAHRER == "" Blick auf das übergeordnete Gerät '/devices/pci0000:00/0000:00:14.0/usb3/3-7/3-7:1.0/ttyUSB0': KERNELS == "ttyUSB0" SUBSYSTEMS == "usb-serial" FAHRER == "ftdi_sio" ATTRS == "16" ATTRS == "0" Blick auf das übergeordnete Gerät '/devices/pci0000:00/0000:00:14.0/usb3/3-7/3-7:1.0': KERNELS == 3-7: 1,0 SUBSYSTEMS == "usb" FAHRER == "ftdi_sio" ATTRS == "1" ATTRS == "0" ATTRS == "ff" ATTRS == "00" ATTRS == "ff" ATTRS == "ff" ATTRS == "02" ATTRS == "Serielles USB-Kabel" ATTRS == "1" beim übergeordneten Gerät '/devices/pci0000:00/0000:00:14.0/usb3/3-7' suchen: KERNELS == "3-7" SUBSYSTEMS == "usb" FAHRER == "usb" ATTRS == "1" ATTRS == "0" ATTRS == "1" ATTRS == "00" ATTRS == "00" ATTRS == "00" ATTRS == "8" ATTRS == "500mA" ATTRS == "1" ATTRS == "1" ATTRS == "0600" ATTRS == "a0" ATTRS == "3" ATTRS == "" ATTRS == "14" ATTRS == "7" ATTRS == "6001" ATTRS == "0403" ATTRS == "nein" ATTRS == "Smartinterface" ATTRS == "0" ATTRS == "Serielles USB-Kabel" ATTRS == "0x0" ATTRS == "entfernbar" ATTRS == "DiYISDGK" ATTRS == "12" ATTRS == "15" ATTRS == "2.00" Blick auf das übergeordnete Gerät '/devices/pci0000:00/0000:00:14.0/usb3': KERNELS == "usb3" SUBSYSTEMS == "usb" FAHRER == "usb" ATTRS == "1" ATTRS == "1" ATTRS == "0" ATTRS == "1" ATTRS == "09" ATTRS == "01" ATTRS == "00" ATTRS == "64" ATTRS == "0mA" ATTRS == "1" ATTRS == "1" ATTRS == "0415" ATTRS == "e0" ATTRS == "3" ATTRS == "" ATTRS == "1" ATTRS == "0" ATTRS == "0002" ATTRS == "1d6b" ATTRS == "1" ATTRS == "nein" ATTRS == "Linux 4.15.0-20-generic xhci-hcd" ATTRS == "15" ATTRS == "xHCI Host Controller" ATTRS == "0x0" ATTRS == "unbekannt" ATTRS == "0000: 00: 14.0" ATTRS == "480" ATTRS == "264" ATTRS == "2.00" Beim übergeordneten Gerät '/devices/pci0000:00/0000:00:14.0' suchen: KERNELS == "0000: 00: 14.0" SUBSYSTEMS == "pci" FAHRER == "xhci_hcd" ATTRS == "0" ATTRS == "0x0c0330" ATTRS == "64" ATTRS == "1" ATTRS == "deaktiviert" ATTRS == "0x8d31" ATTRS == "64" ATTRS == "(null)" ATTRS == "1" ATTRS == "19" ATTRS == "0-11" ATTRS == "fff" ATTRS == "1" ATTRS == "0" ATTRS == "0x05" ATTRS == "0x7a54" ATTRS == "0x1462" ATTRS == "0x8086" Blick auf das übergeordnete Gerät '/ devices / pci0000: 00': KERNELS == "pci0000: 00" SUBSYSTEMS == "" FAHRER == ""