(ほとんどすべての)USBデバイスをサーバーに転送するために、シンクライアントでusbipを設定しようとしています。渡したくないのは、すべての入力デバイスとすべてのハブ/仮想デバイスです。
そのため、ベンダーIDが1d6b(Linux Foundation)のすべての項目と入力デバイスを除外したいと思います。
私の最初の試みは
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"
ただし、理解できない理由から、最初の項目GOTO
は常にトリガーされ、まったく動作しません。
それから試しました。
KERNEL=="?-?", ACTION=="add", SUBSYSTEM=="usb", ENV{ID_INPUT_MOUSE}!="?*", ENV{ID_INPUT_KEYBOARD}!="?*", RUN+="/usr/local/sbin/add_usbip.sh $kernel"
そして同様に
KERNEL=="?-?"", ACTION=="add", SUBSYSTEM=="usb", ENV{ID_INPUT}!="?*", RUN+="/usr/local/sbin/add_usbip.sh $kernel"
私が見つけた希少な文書によると、これが正しいと仮定していますが、入力デバイスに対してのみ実行されるため、キーボードをサーバーにエクスポートするときにキーボードを使用できなくなります。
キーボード、マウス、その他の入力デバイスはクライアントごとに異なる可能性があるため、特定のシリアル番号やベンダー、製品IDを追加することはできません。