Espere - eu vejo isso. Duas coisas:
- Você usou
ATTRS{product}=="6011"
quando quis dizerATTRS{idProduct}=="6011"
. Que faltaid
vai quebrá-lo. Copie e cole deudevadm info --attribute-walk
para evitar erros de digitação como este. - Seu padrão está errado; deve ser
KERNEL=="ttyUSB[0-9]*"
. É uma expressão regular (muito limitada), por isso[0-15]*
significa "qualquer um dos caracteres 0-1 ou 5, repetido qualquer número de vezes".
Além disso, você provavelmente deseja usar SYMLINK+=
em vez de SYMLINK==
para preservar os outros links. Você está certo de que precisa ser SUBSYSTEMS=="usb"
para corresponder ao produto / fornecedor.
Para numerar seus dispositivos AMPM, você precisa fornecer udev
do número. Infelizmente, isso faz parte do dispositivo usb-serial
, não do usb
one. Então você não pode simplesmente usar %s{port_number}
/ $attr{port_number}
. Em vez disso, peça emprestado um truque de 60-persistent-serial.rules
em versões mais recentes de udev
e faça algo assim:
SUBSYSTEMS=="usb-serial", ENV{.LOCAL_PORT_NUM}="$attr{port_number}"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB[0-9]*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", SYMLINK+="AMPM$env{.LOCAL_PORT_NUM}"
Em udev
mais antigo, talvez seja necessário usar %E{…}
em vez de $env{…}
.
Ou, como alternativa, se o udev
for novo o suficiente, use apenas /dev/serial/by-id
:
$ ls -l /dev/serial/by-id/
total 0
lrwxrwxrwx 1 root root 13 Jan 4 06:02 usb-067b_2303-if00-port0 -> ../../ttyUSB0
Você deve ver o código do seu fornecedor / produto e todas as suas portas.