我只想查看系统中添加和删除的所有设备,并查看其 USB 供应商 ID、产品 ID 和版本以及其他相关信息。我怎样才能在 Linux 中做到这一点?是否有我可以使用的日志文件,tail -f
或者这是否需要其他内容?
答案1
你可以这样做udevadm
:
udevadm monitor --subsystem-match=usb --property
或者
udevadm monitor --subsystem-match=usb --property --udev
仅过滤udev
事件。如果您想要grep
特定的属性,则必须取消缓冲udevadm
输出(使用诸如stdbuf
, script
, unbuffer
... 之类的工具):
stdbuf -i 0 -o 0 -e 0 udevadm monitor --subsystem-match=usb --property --udev | grep DEVPATH
或者
script -q /dev/null -c "udevadm monitor --subsystem-match=usb --property --udev" | grep PRODUCT
或者
unbuffer udevadm monitor --subsystem-match=usb --property --udev | grep -E 'ID_VENDOR_ID|ID_MODEL_ID'
答案2
此信息出现在内核日志中 - 通常在/var/log/kern.log
、 或/var/log/syslog
或其他一些文件中(这取决于您的系统日志配置,不同的发行版有不同的默认值)。
如果您想要预先过滤某些内容,可以添加 udev 规则。创建一个/etc/udev/rules.d/tkk-log-usb.rules
包含以下内容的文件:
SUBSYSTEM=="usb", RUN+="/usr/local/sbin/tkk-usb-event"
程序的环境填充了许多描述设备的变量,包括:
ACTION
(add
或者remove
)DEVICE
是设备的路径(如果您想访问它)ID_MODEL_ID
并ID_VENDOR_ID
包含型号和供应商 ID,并ID_MODEL
包含ID_VENDOR
相应的文本ID_SERIAL
包含设备的序列号(如果有)
答案3
如果您只想监控当前插入的 USB 设备watch --no-title lsusb
可能符合要求。