我添加了一条 udev 规则,该规则仅允许已知的 USB 设备,但它不会授权我的集线器,因此每个 USB 端口都未经授权。这是我的集线器 udev 规则:
# Skeep not USB
SUBSYSTEM!="usb", GOTO="usb_end"
# Skeep remove actions
ACTION=="remove", GOTO="usb_end"
# 2.0 root hub
SUBSYSTEMS=="usb", ACTION=="add", ATTR{product}=="EHCI Host Controller", ATTR{serial}=="0000:00:1a.0", \
ATTR{idVendor}=="1d6b", ATTR{idProduct}=="0002", ATTR{bDeviceClass}=="09", ATTR{authorized}="1", GOTO="usb_end"
# Disable all other USB devices
SUBSYSTEMS=="usb", ACTION=="add", ATTR{authorized}="0"
LABEL="usb_end"
操作系统:Gentoo 强化版
内核:4.7.9-硬化
答案1
您可以通过设置 udev 规则执行脚本来调试 udev 规则。该脚本可以记录各种项目。
例如:$DEVNAME、$ACTION
从 USB 集线器记录所有数据后,您将能够看到缺少哪些设备或缺少哪些信息。
udev 规则,需要 RUN+="/usr/local/bin/log.sh"
在 log.sh 中, env >> /tmp/blabla.log,或 echo "$DEVNAME $ACTION ..." >> /tmp/blabla.log