Há nenhuma maneira de altere os nomes dos dispositivos no diretório / dev . Talvez isso não esteja definido para dispositivos de entrada como gamepads. Eu não posso testar isso porque não tenho gamepads ao redor.
Mas isso será necessário para sua abordagem. Então, a primeira resposta é: é impossível.
A segunda resposta é mais uma sugestão para uma maneira que pode ajudá-lo a lidar com sua ideia:
Como você pode atribuir links simbólicos a dispositivos usando regras do udev, talvez você possa lidar com isso dessa maneira. Vou explicar isso por meio de um usb-stick.
O que fazemos é:
- Disconnect the usb stick using a command
- create a temporary rule for assigning a symlink
- Reconnect the usb stick using a command
- delete the temporary rule
Para o fundo, leia estes artigos: udev , sobre as regras do udev , Autorizando dispositivos USB e acesso ao echo sudo negado
Como pré-requisito, precisamos de algumas informações sobre o stick usb de segmentação. Remova o bastão e execute o comando
udevadm monitor
Conecte o bastão a uma grande quantidade de informações na tela. Eu extraio o caminho do dispositivo no barramento usb da primeira linha de saída:
add /devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.1 (usb)
^^^^^
Com esta informação, execute o comando
udevadm test /sys/bus/usb/devices/4-1.1
^^^^^
Mais uma vez, há muita saída. Estamos interessados em
ID_SERIAL_SHORT=08606E5EDA173E6D3F37746D
Este é um número serial exclusivo para o dispositivo usb.
Agora vamos dar a este stick um link simbólico.
Primeiro, temos que desconectar o nosso pendrive:
echo 0 | sudo tee /sys/bus/usb/devices/4-1.1/authorized > /dev/null
Agora criamos uma regra temporária para o udev:
echo "KERNEL==\"sd?1\", SUBSYSTEMS==\"usb\", ATTRS{serial}==\"08606E5EDA173E6D3F37746D\", SYMLINK+=\"myusb300\"" | sudo tee /etc/udev/rules.d/90-tmp-001.rules > /dev/null
O próximo passo é reconectar o pen drive:
echo 1 | sudo tee /sys/bus/usb/devices/4-1.1/authorized > /dev/null
Agora você encontra um link simbólico / dev / myusb300 para / deb / sdb1
A ideia por trás de tudo isso é que, mesmo que você não possa renomear /dev/js0
, você pode criar links simbólicos, ou seja, /dev/js10
, para o controlador do gamepad. Esses links simbólicos podem ser trocados, apenas no fly ou por meio de desconexão programática e reconectar o controlador. O aplicativo (o jogo) deve ser configurado para usar os gamepads / dev / js10, / dev / js11 e assim por diante.
Nos números de série exclusivos dos gamepads, você pode sempre atribuir um link simbólico específico a um gamepad escolhido.
Talvez seja possível encontrar mais possibilidades de lidar com o udev. Isso depende não apenas da solução concreta que você está procurando, mas também da aplicação, dos controladores e de outras coisas.