Se você quiser verificar a ordem das ações, use:
udevadm monitor --property
ao fazer isso, você recebe uma lista de ações. Quando você adiciona sua câmera, é provável que uma das primeiras entradas seja algo como:
KERNEL[110935.814197] add /devices/.../video4linux/video1 (video4linux)
ACTION=add
DEVNAME=/dev/video1 <<<<---- devname
Como destacado por @goldilocks :
Unfortunately, if you are using systemd, it's version of udev has a complex "persistent naming scheme" that's hard coded into udevd, so you are right, just parsing the
rules.d
stuff could leave a lot of mysteries.
Também de man udev
para systemd:
The following keys can get values assigned:
NAME The name to use for a network interface. See systemd.link(5) for a higher-level mechanism for setting the interface name. The name of a device node cannot be changed by udev, only additional symlinks can be created.
Nomeação e depuração
Sua melhor opção provavelmente usará algo como:
udevadm test $(udevadm info -q path -n video1)
Ele oferece uma "execução de teste" na (s) regra (s) e informa todos os erros.
Depois de adicionar / alterar uma regra, lembre-se de recarregar com:
udevadm control --reload-rules
Quando se trata de nomear um dispositivo, você provavelmente terá algo como:
NAME="smile2thecamera" ignored, kernel device nodes can not be renamed;
please fix it in /etc/udev/rules.d/83-webcam.rules:6
Você poderia usar um SYMLINK (se isso for suficiente) como em:
KERNEL=="video[0-9]", .... SYMLINK+="video-logitech"
Deve ser algo assim no teste:
creating link '/dev/video-logitech' to '/dev/video1'
creating symlink '/dev/video-logitech' to 'video1'
DEVLINKS=.... /dev/video-logitech