Como descubro o nó do dispositivo correspondente ao meu dispositivo no SuSE 8?

5

Eu sou forçado a trabalhar com um monte de sistemas de ponto de venda executando o SuSE 8. Eles são os computadores do meu cliente. Estamos presos em lidar com esses sistemas antigos até que eles atualizem toda a sua frota para o SLE 11.

O problema: o sistema agora tem dois dispositivos que competem pelos nós do dispositivo de caractere ttyUSB *. Eles possuem ID de fornecedor e ID de produto diferentes. O SuSE 8 não tem o udev, mas o devfs.

Conhecendo o ID do fornecedor e o ID do produto do dispositivo e o módulo do kernel responsável pelo dispositivo (é o módulo do kernel ipaq), como descobrir qual nó do dispositivo de caractere ele foi atribuído, de uma forma que possa ser armazenado em uma string (por exemplo, $ DeviceNode) em um script de shell POSIX?

Neste momento, estou fazendo isso de uma maneira muito burra no meu shell script:

DeviceNode=$(dmesg | tac | grep "PocketPC PDA converter now attached to" | set -n 's/.*now attached to \([[:alnum:]]\{1,\}\).*//p')

Então eu recebo, por exemplo

> echo $DeviceNode
ttyUSB1
>

É claro que um dos problemas é que o dispositivo já pode ter sido desconectado e eu não seria capaz de dizer com esse método ingênuo.

Existe alguma maneira melhor?

EDITAR: Então, encontrei este artigo esta manhã. Posso supor que, em / proc / tty / driver / usbserial, a partir da segunda linha, o primeiro número de cada linha é o número menor de um dos ttyUSBx?

EDIT 2: Uma solução alternativa (e talvez melhor) seria obter associação de nó persistente (por exemplo, sempre obtendo um dispositivo com um ID de fornecedor conhecido e um ID de produto conhecido a ser associado a ttyUSB1). Isso é possível em devfs?

    
por Kal 02.11.2012 / 11:07

0 respostas