Tem o / sys / bus / usb / a mesma estrutura em todas as distribuições Linux

0

Estou portando o aplicativo mono do Windows para o Linux. O aplicativo se comunica com o conselho externo. Esta placa é visível como três portas seriais virtuais. Cada um desempenha um papel diferente.

O aplicativo detecta automaticamente essas portas. Posso retransmitir a estrutura e as informações no /sys/bus/usb/ , ou seja, elas são as mesmas nas diferentes distribuições do Linux?

    
por P__J__ 19.08.2018 / 11:19

1 resposta

1

Sim, você pode confiar na estrutura em /sys/bus/usb/ para ser idêntica nas distribuições, porque ela depende apenas do kernel, e é madura o suficiente, então é improvável que ela mude em futuras versões do kernel (mas quem sabe ...) .

No entanto, essa é a abordagem errada para resolver seu problema. A abordagem correta é incluir uma regra de udev personalizada com seu aplicativo e certificar-se de que essa regra udev seja copiada para o local correto (geralmente /etc/udev/rules.d , mas isso pode depender da distro. Em caso de dúvida, deixe o usuário configurá-lo) durante a instalação. A regra udev pode então atribuir links simbólicos (semelhantes aos que você vê em /dev/disks ) para os três dispositivos seriais, usando qualquer informação (por exemplo, identificador de fornecedor / dispositivo) que identifique sua placa exclusivamente. Seus aplicativos devem usar os links simbólicos.

Em uma pitada, você também pode usar a estrutura usb-tree que estava planejando usar para o ryle. Veja udevadm info --attribute-walk ... para obter uma lista de propriedades disponíveis para seus dispositivos.

    
por 19.08.2018 / 16:34