Estou tentando configurar o usbip em nossos thin clients para encaminhar (quase todos) os dispositivos USB para o servidor. O que eu não quero encaminhar são todos os dispositivos de entrada e todos os hubs / dispositivos virtuais.
Por isso, quero excluir tudo com o ID 1d6b (Linux Foundation) do fornecedor junto com os dispositivos de entrada.
Minha primeira tentativa foi
ATTRS{idVendor}=="1d6b", GOTO="do_nothing"
ENV{ID_INPUT_MOUSE}=="?*", GOTO="do_nothing"
ENV{ID_INPUT_KEYBOARD}=="?*", GOTO="do_nothing"
KERNEL=="?-?"", ACTION=="add", SUBSYSTEM=="usb", RUN+="/usr/local/sbin/add_usbip.sh $kernel"
LABEL="do_nothing"
No entanto, por razões que eu não entendo, o primeiro GOTO
é sempre acionado, resultando em nenhum comportamento.
Eu então tentei
KERNEL=="?-?", ACTION=="add", SUBSYSTEM=="usb", ENV{ID_INPUT_MOUSE}!="?*", ENV{ID_INPUT_KEYBOARD}!="?*", RUN+="/usr/local/sbin/add_usbip.sh $kernel"
e semelhantemente
KERNEL=="?-?"", ACTION=="add", SUBSYSTEM=="usb", ENV{ID_INPUT}!="?*", RUN+="/usr/local/sbin/add_usbip.sh $kernel"
que eu supus estar correto com base na escassa documentação que encontrei, mas eles também serão executados apenas para dispositivos de entrada, tornando o teclado inutilizável, uma vez que é exportado para o servidor.
Observe que isso não me ajuda a adicionar séries específicas ou identificações de produto e fornecedor, pois os teclados e mouses e outros dispositivos de entrada podem variar de cliente para cliente.