Como posso impedir que os drivers liguem dispositivos USB em um determinado barramento?

5

Eu tenho uma configuração com dois receptores Logitech Unifying, cada receptor tem um teclado vinculado a ele. Um dos receptores deve ser usado pela máquina física à qual os dispositivos estão conectados, o outro deve ser passado para uma máquina virtual do QEMU.

Eu posso desvincular manualmente um receptor seguindo as instruções em Como usar a interface de vinculação / desvinculação do driver de kernel do Linux para USB- Dispositivos HID? . Este método tem algumas desvantagens:

  • Eu tenho que determinar o identificador do dispositivo manualmente, olhando para o dmesg.
  • Cada vez que a máquina virtual é fechada e a cada reinicialização, o processo de desvinculação deve ser repetido.

Eu então tentei encontrar as opções do módulo do kernel que impedem o driver USB de vinculá-lo a todos e encontrei a quirks opção para usbhid . Infelizmente, esse parâmetro não pode ser usado, pois tenho dois receptores idênticos com o mesmo fornecedor e ID de dispositivo.

Os dois dispositivos são distinguíveis por seus barramentos separados. Ou seja, lsusb se parece com:

Bus 001 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 002 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver

Existe uma maneira de impedir que hid-logitech-dj (ou usbhid ) vincule um dispositivo USB em um determinado barramento?

A máquina de destino está executando o Arch Linux 64-bit com um kernel do Linux 3.9.

    
por Lekensteyn 04.06.2013 / 15:30

1 resposta

1

Dentro do UDEV, é possível adicionar uma regra para procurar o barramento específico e definir as opções para "ignore_device". Você mencionou a versão do Kernel ou o SO?

    
por 04.06.2013 / 19:04