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 -f
oder erfordert dies etwas anderes?
8
dmesg
detailliert genug?dmesg
zeigt nicht alle USB-Ereignisse an, sondern nur diejenigen, für die ein Handler vorhanden ist und die aufgerufen werdenprintk()
.Antworten:
Diese Informationen werden in den Kernel-Protokollen angezeigt - normalerweise in
/var/log/kern.log
oder/var/log/syslog
oder 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.rules
die Folgendes enthält:Die Umgebung des Programms enthält viele Variablen, die das Gerät beschreiben, darunter:
ACTION
(add
oderremove
)DEVICE
ist ein Pfad zum Gerät, wenn Sie darauf zugreifen möchtenID_MODEL_ID
undID_VENDOR_ID
enthalten die Modell- und Lieferanten-IDID_MODEL
sowieID_VENDOR
den entsprechenden TextID_SERIAL
enthält die Seriennummer des Geräts (falls verfügbar)quelle
Sie können das tun mit
udevadm
:oder
um nur
udev
Ereignisse zu filtern . Wenn Sie möchtengrep
für eine bestimmte Eigenschaft sind Sie in der un-Puffer habenudevadm
Ausgang (mit Werkzeugen wiestdbuf
,script
,unbuffer
...):oder
oder
quelle
Wenn Sie nur die aktuell angeschlossenen USB-Geräte überwachen möchten,
watch --no-title lsusb
könnte dies genau das Richtige für Sie sein.quelle