Ich habe ein 3G / GPS-Gerät, das 5 tty-Knoten erstellt, obwohl es nur eine physische USB-Verbindung ist. Grundsätzlich ein Multi-Port-USB-Seriell-Adapter.
Ich versuche, einige udev
Regeln zu erstellen , um sicherzustellen, dass diese Knoten immer den gleichen Namen oder zumindest einen Symlink zu ihnen haben.
Ich kann das Gerät tatsächlich bei finden /sys/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/
. Im Inneren befinden 1-2.2:1.0/
sich 1-2.2:1.4/
für die 5 Knoten, die es erstellt.
Ich kann es auch bei finden /sys/bus/usb/devices/1-2.2
.
Die udev-Informationen für das Gerät lauten wie folgt:
udevadm info -a -p /sys/bus/usb/devices/1-2.2/1-2.2\:1.0
looking at device '/bus/usb/devices/1-2.2/1-2.2:1.0':
KERNEL=="1-2.2:1.0"
SUBSYSTEM=="usb"
DRIVER=="option"
ATTR{bInterfaceNumber}=="00"
ATTR{bAlternateSetting}==" 0"
ATTR{bNumEndpoints}=="03"
ATTR{bInterfaceClass}=="ff"
ATTR{bInterfaceSubClass}=="01"
ATTR{bInterfaceProtocol}=="01"
ATTR{modalias}=="usb:v12D1p1506d0000dc00dsc00dp00icFFisc01ip01"
ATTR{supports_autosuspend}=="0"
Ab diesem Zeitpunkt haben alle Knoten die gleichen Informationen. Das einzige, was zwischen den Knoten variiert, ist die Eigenschaft bInterfaceNumber und der Gerätepfad. Also dachte ich daran, eine Regel über den Entwicklungspfad zu schreiben.
Aus irgendeinem Grund wird die folgende Regel von all diesen Knoten abgeglichen.
ACTION=="add", DEV="/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/1-2.2:1.0" SYMLINK+="huawey0"
Zeigt also im Grunde genommen huawey0
auf den zuletzt aufgezählten Knoten. Das Gerät hat Knoten von ttyUSB2 bis 6 erstellt, und dieser Link verweist auf USB6.
Also habe ich es mit dem Kernelknoten versucht:
ACTION=="add", KERNEL=="1-2.2:1.0" SYMLINK+="huawey0"
Jetzt erscheint nichts auf / dev.
Danach habe ich versucht, sie mit der bInterfaceNumber zu trennen. Ich habe die folgende Regel verwendet
ACTION=="add", DEV="/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/1-2.2:1.[0-4]" ATTR{bInterfaceNumber}=="00" SYMLINK+="huawey0"
Und trotzdem passiert nichts. Ich habe sogar eine abgespeckte Version der Regel ausprobiert.
ACTION=="add", ATTR{bInterfaceNumber}=="00" SYMLINK+="huawey0"
Und immer noch passiert nichts. Warum passt es nicht zusammen?