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


8

我只想看所有在系统中添加和删除的设备,并查看其USB供应商ID,产品ID和版本以及其他相关信息。如何在Linux中执行此操作?是否有我可以的日志文件,tail -f或者这还需要其他内容?


是否dmesg足够详细?
Rany Albeg Wein

我看不到/ var / log / dmesg结尾的任何输出。插入/删除=无。
Naftuli Kay

1
@RanyAlbegWein dmesg不会显示所有USB事件,仅显示存在处理程序并对其调用的事件printk()
克里斯·

那么有没有办法让udev尾随信息?
Naftuli Kay

Answers:


6

此信息显示在内核日志中-通常显示在/var/log/kern.log,或中/var/log/syslog,或其他文件中(取决于您的syslog配置,不同的发行版具有不同的默认值)。

如果您需要预先过滤的内容,则可以添加udev规则。创建一个/etc/udev/rules.d/tkk-log-usb.rules包含以下内容的文件:

SUBSYSTEM=="usb", RUN+="/usr/local/sbin/tkk-usb-event"

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

  • ACTIONaddremove
  • DEVICE 是要访问设备的路径
  • ID_MODEL_IDID_VENDOR_ID包含型号和供应商ID,ID_MODELID_VENDOR包含相应的文本
  • ID_SERIAL 包含设备的序列号(如果有)

10

您可以使用udevadm

udevadm monitor --subsystem-match=usb --property

要么

udevadm monitor --subsystem-match=usb --property --udev

仅过滤udev事件。如果你想grep为特定的属性,你将不得不取消缓冲udevadm输出(带工具喜欢stdbufscriptunbuffer...):

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'

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.