Посмотрите идентификатор поставщика USB-подключений, идентификатор продукта и ревизию

8

Я хотел бы просто просмотреть все устройства, добавленные и удаленные из моей системы, и просмотреть их идентификатор производителя USB, идентификатор продукта и редакцию, а также другую соответствующую информацию. Как я могу сделать это в Linux? Есть лог-файл, который я могу tail -fили это требует чего-то еще?

Нафтули Кей
источник
Есть dmesgдостаточно детализировано?
Рани Албег Вайн
Я не вижу никакого вывода из tailing / var / log / dmesg. Подключить / удалить = ничего.
Нафтули Кей
1
@RanyAlbegWein dmesgне отображает все события USB, только те, для которых существует обработчик и вызывает printk().
Крис Даун
Так есть ли способ получить Udev для информации?
Нафтули Кей

Ответы:

6

Эта информация появляется в журналах ядра - обычно в /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_MODELи ID_VENDORсодержат соответствующий текст
  • ID_SERIAL содержит серийный номер устройства (если доступно)
Жиль "ТАК - перестань быть злым"
источник
10

Вы можете сделать это с 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'
don_crissti
источник
0

Если вы просто хотите следить за текущими подключенными USB-устройствами, вы watch --no-title lsusbможете их оплатить.

Фредерик Дьюердт
источник