Eu tenho um dispositivo 3G / GPS que cria 5 nós tty, embora seja apenas uma conexão USB física. Basicamente, um adaptador usb-serial de várias portas.
Estou tentando criar algumas regras udev
para garantir que esses nós sempre tenham o mesmo nome ou pelo menos um link simbólico para eles.
Eu posso encontrar o dispositivo em /sys/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/
. Dentro estão 1-2.2:1.0/
to 1-2.2:1.4/
, para os 5 nós que cria.
Eu também posso encontrá-lo em /sys/bus/usb/devices/1-2.2
.
As informações do udev para o dispositivo são as seguintes:
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"
Deste ponto em diante, todos os nós têm a mesma informação. E a única coisa que varia entre os nós é a propriedade bInterfaceNumber e o caminho do dispositivo. Então, pensei em escrever uma regra pelo caminho do desenvolvedor.
Agora, por algum motivo, a seguinte regra é correspondida por todos esses nós.
ACTION=="add", DEV="/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/1-2.2:1.0" SYMLINK+="huawey0"
Então, basicamente, huawey0
aponta para o último nó enumerado. O dispositivo criou nós de ttyUSB2 a 6 e esse link aponta para USB6.
Então, eu tentei pelo nó do kernel:
ACTION=="add", KERNEL=="1-2.2:1.0" SYMLINK+="huawey0"
Agora, nada aparece em / dev.
Depois disso, tentei usar o bInterfaceNumber para separá-los. Eu usei a seguinte regra
ACTION=="add", DEV="/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/1-2.2:1.[0-4]" ATTR{bInterfaceNumber}=="00" SYMLINK+="huawey0"
E ainda assim, nada acontece. Eu até tentei uma versão reduzida da regra ..
ACTION=="add", ATTR{bInterfaceNumber}=="00" SYMLINK+="huawey0"
E ainda nada acontece. Por que não está combinando?