Beobachten Sie die Hersteller-ID, die Produkt-ID und die Revision der USB-Verbindungen


8

Ich möchte einfach alle Geräte beobachten, die zu meinem System hinzugefügt und daraus entfernt wurden, und deren USB-Hersteller-ID, Produkt-ID und Revision sowie andere relevante Informationen anzeigen. Wie kann ich das unter Linux machen? Gibt es eine Protokolldatei, die ich kann tail -foder erfordert dies etwas anderes?


Ist dmesgdetailliert genug?
— Rany Albeg Wein

Ich sehe keine Ausgabe von tailing / var / log / dmesg. Einstecken / Entfernen = nichts.
— Naftuli Kay

1
@RanyAlbegWein dmesgzeigt nicht alle USB-Ereignisse an, sondern nur diejenigen, für die ein Handler vorhanden ist und die aufgerufen werden printk().
— Chris Down

Gibt es also eine Möglichkeit, udev nach Informationen zu durchsuchen?
— Naftuli Kay

Antworten:


6

Diese Informationen werden in den Kernel-Protokollen angezeigt - normalerweise in /var/log/kern.logoder /var/log/syslogoder einer anderen Datei (abhängig von Ihrer Syslog-Konfiguration haben unterschiedliche Distributionen unterschiedliche Standardeinstellungen).

Wenn Sie etwas vorgefiltert haben möchten, können Sie eine udev-Regel hinzufügen. Erstellen Sie eine Datei, /etc/udev/rules.d/tkk-log-usb.rulesdie Folgendes enthält:

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

Die Umgebung des Programms enthält viele Variablen, die das Gerät beschreiben, darunter:

  • ACTION( addoder remove)
  • DEVICE ist ein Pfad zum Gerät, wenn Sie darauf zugreifen möchten
  • ID_MODEL_IDund ID_VENDOR_IDenthalten die Modell- und Lieferanten-ID ID_MODELsowie ID_VENDORden entsprechenden Text
  • ID_SERIAL enthält die Seriennummer des Geräts (falls verfügbar)

10

Sie können das tun mit udevadm:

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

oder

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

um nur udevEreignisse zu filtern . Wenn Sie möchten grepfür eine bestimmte Eigenschaft sind Sie in der un-Puffer haben udevadmAusgang (mit Werkzeugen wie stdbuf, script, unbuffer...):

stdbuf -i 0 -o 0 -e 0 udevadm monitor --subsystem-match=usb --property --udev | grep DEVPATH

oder

script -q /dev/null -c "udevadm monitor --subsystem-match=usb --property --udev" | grep PRODUCT

oder

unbuffer udevadm monitor --subsystem-match=usb --property --udev | grep -E 'ID_VENDOR_ID|ID_MODEL_ID'

0

Wenn Sie nur die aktuell angeschlossenen USB-Geräte überwachen möchten, watch --no-title lsusbkönnte dies genau das Richtige für Sie sein.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.