Linux

觀看 USB 連接供應商 ID、產品 ID 和修訂版

  • May 9, 2018

我想簡單地觀察從我的系統中添加和刪除的所有設備,並查看它們的 USB 供應商 ID、產品 ID 和修訂版以及其他相關資訊。我怎樣才能在 Linux 中做到這一點?是否有我可以使用的日誌文件,tail -f或者這是否需要其他內容?

此資訊出現在核心日誌中——通常在/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"

程序的環境中填充了許多描述設備的變數,包括:

  • ACTIONaddremove
  • DEVICE是設備的路徑,如果你想訪問它
  • ID_MODEL_IDID_VENDOR_ID包含型號和供應商 ID,ID_MODELID_VENDOR包含相應的文本
  • ID_SERIAL包含設備的序列號(如果有)

你可以這樣做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'

引用自:https://unix.stackexchange.com/questions/74367