Eu tenho dois (e possivelmente no futuro, mais) dispositivos seriais USB que são idênticos (até o número de série, infelizmente) - eles são realmente mineiros BTC. Atualmente, eles terminam como ttyUSBX
onde X é 0, 1 ou 2, pois também há outro dispositivo serial USB não relacionado (que não precisa se preocupar aqui).
Eu gostaria de escrever uma regra do udev que os atribua a nomes previsíveis /dev
, como /dev/miner0
onde o zero é um número inteiro crescente. Eu não ligo para qual deles acaba como qual, mas preciso que eles estejam dentro de um intervalo previsível que não mude.
Atualmente eu tenho isso:
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SYMLINK+="miner%n"
Isso é bem próximo, pois acabo com nomes como eu quero. O único problema é que, uma vez que os mineradores e o terceiro dispositivo podem aparecer em uma ordem aleatória, eu posso acabar com dois de miner0
, miner1
e miner2
, mas nunca sei quais deles (sem olhar manualmente). Se eu adicionar mais dispositivos seriais usb não mineradores (o que é uma possibilidade), isso agravará o problema.
Eu tinha encontrado uma referência à %e
qual parecia exatamente o que eu queria, mas parece não existir mais .
Como posso dar nomes previsíveis a esses dispositivos? Eu preferiria não amarrá-los à sua localização no barramento USB também, se possível.
Mais informações / antecedentes
Vale ressaltar que não sou tão incomodado com o nome, apenas com o fato de serem conhecidos e imutáveis, mesmo se / quando o dispositivo for conectado a um soquete USB diferente. Eu simplesmente esqueceria a coisa toda do udev e usaria as entradas /dev/serial/by-id
, mas como elas têm o mesmo número de série, há apenas uma delas lá!
Também vale a pena mencionar que a razão para fazer isso é que o software de mineração precisa receber uma lista de dispositivos para sondar e encontrar. Eu posso fazer tudo (basicamente encontra todos os mineiros válidos no ttyUSB*
intervalo), mas isso irrita o dispositivo não mineiro. Por isso, preciso dos nomes dos mineiros conhecidos com antecedência, para que eu possa configurá-lo para usar apenas esses. Infelizmente, ele não aceita um curinga (portanto, apenas dizer a ele para usar /dev/miner*
parece estar fora de questão), daí esse problema.
/dev/btcminer/*
) para uma lista como esta: -S /dev/btcminer/0 -S /dev/btcminer/1 <and so on if present>
quais são os parâmetros que o software utiliza.