Estou investigando o mapeamento de nome de dispositivo dinâmico por meio do udev.
O objetivo:
Em um sistema multiusuário, cada usuário pode alocar e liberar dispositivos como conversores usb-serial ou placas PCIe (FPGAs). Se um usuário alocar um dispositivo, os nós /dev/<user>/<device>
deverão ser criados com um nome dinâmico e permissões para o usuário alocador. Se o usuário liberar o dispositivo, os nós devfs precisam ser removidos / renomeados e as permissões precisam ser revogadas.
Situação atual:
Estou experimentando em /dev/ttyUSB1
- um conversor usb-serial. Eu escrevi um script Python que é chamado pelo udev ao criar o nó dev. Ele espera o VendorID, ProductID e SerialNo de um dispositivo usb e retorna o nome do nó devfs: por exemplo, %código%. Isso funciona com links simbólicos, então o nó devfs original paebbels/ttyUSB
ainda está presente.
Como posso usar meu script para alterar o nome original do devfs?
Eu tentei usar o comando NAME na minha regra do udev, mas isso não funciona. A documentação indica: NAME só pode ser usado uma vez. Existe uma regra padrão no udev que usa NAME antes da minha regra?
ttyUSB1
não contém essa regra.
Em uma fase posterior, meu script também retornará o nome de usuário, grupo e permissões para o nó devfs.
Pergunta secundária:
Devo criar os arquivos do dispositivo conforme planejado em /etc/udev/...
ou em /dev/<user>/<device>
?