(거의 모든) 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를 추가하는 데 도움이 되지 않습니다.