Linux
觀看 USB 連接供應商 ID、產品 ID 和修訂版
我想簡單地觀察從我的系統中添加和刪除的所有設備,並查看它們的 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"
程序的環境中填充了許多描述設備的變數,包括:
ACTION
(add
或remove
)DEVICE
是設備的路徑,如果你想訪問它ID_MODEL_ID
並ID_VENDOR_ID
包含型號和供應商 ID,ID_MODEL
並ID_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'