观看 USB 连接供应商 ID、产品 ID 和版本

观看 USB 连接供应商 ID、产品 ID 和版本

我只想查看系统中添加和删除的所有设备,并查看其 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"

程序的环境填充了许多描述设备的变量,包括:

  • ACTIONadd或者remove
  • DEVICE是设备的路径(如果您想访问它)
  • ID_MODEL_IDID_VENDOR_ID包含型号和供应商 ID,并ID_MODEL包含ID_VENDOR相应的文本
  • ID_SERIAL包含设备的序列号(如果有)

答案3

如果您只想监控当前插入的 USB 设备watch --no-title lsusb可能符合要求。

相关内容