Como fazer meu trabalho de regra do udev

1

Meu dispositivo USB continua mudando seu número em seu nome /dev/ttyUSB? .

Eu vi e this , e tentou fazer o mesmo sem sorte.

gauthier@sobel:/etc/udev/rules.d $ udevadm info -a -p $(udevadm info -q path -n /dev/ttyUSB1)

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/ttyUSB1/tty/ttyUSB1':
    KERNEL=="ttyUSB1"
    SUBSYSTEM=="tty"
    DRIVER==""

  looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/ttyUSB1':
    KERNELS=="ttyUSB1"
    SUBSYSTEMS=="usb-serial"
    DRIVERS=="ftdi_sio"
    ATTRS{port_number}=="0"
    ATTRS{latency_timer}=="1"
[...]

Então eu criei um arquivo /etc/udev/rules.d/50-udev.rules (ele não existia) e coloquei dentro:

SUBSYSTEM=="usb-serial", KERNEL=="ttyUSB?", SYMLINK+="ttyUSBserial"

Mas não obteve o link simbólico, mesmo depois de udevadm trigger :

gauthier@sobel:/etc/udev/rules.d $ ls /dev|grep USB
ttyUSB1

Como posso criar um nome de dispositivo que não seja alterado? O que estou fazendo de errado com a minha regra?

    
por Gauthier 13.08.2014 / 11:02

2 respostas

2

Se eu tivesse lido corretamente, teria notado as diferenças entre os atributos do dispositivo (KERNEL, SUBSYSTEM) e do dispositivo pai (KERNEL ** S **, SUBSYSTEM ** S **).

Adicionando os 'S's na regra funcionou!

No caminho, eu também notei que o udev criou um link simbólico persistente em / dev / serial / by-id / usb- *, através de suas regras em /lib/udev/rules.d/60-persistent-serial.rules , que eu poderia usar em seu lugar.

    
por Gauthier 15.08.2014 / 13:11
1

oh, eu também segui sua jornada e não consigo fazer o symlink funcionar mesmo depois que eu adicionei 'S' depois. Demorei séculos para descobrir que você tem que usar as regras do próprio dispositivo (sem um 'S'), ou um pai SINGLE ... Eu fiz referência a 2 níveis dos pais, então eu não consegui criar o symlink .. Só para compartilhar com outros caras que por acaso tinham um caso semelhante comigo.

    
por ryandali 08.02.2016 / 13:06