Onde o nome do dispositivo padrão (por exemplo, / dev / ttyUSBx) é especificado?

5

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> ?

    
por Paebbels 02.10.2015 / 20:48

1 resposta

2

1. Pergunta:

Não tenho certeza, mas dê uma olhada em /lib/udev/rules.d/60-persistent-serial.rules

2. Pergunta:

Se o próprio udev designar os nomes dos dispositivos, eu os colocaria todos em um subdiretório de /dev . Se não estiver em /run/$UID/devices .

    
por 11.10.2015 / 13:08