Regarder l'ID du fournisseur des connexions USB, l'ID du produit et la révision

8

Je voudrais simplement regarder tous les appareils ajoutés et supprimés de mon système et voir leur ID de fournisseur USB, ID de produit et révision et d'autres informations pertinentes. Comment puis-je faire cela sous Linux? Existe-t-il un fichier journal que je peux tail -fou cela nécessite-t-il autre chose?

Naftuli Kay
la source
Est-ce dmesgassez détaillé?
Rany Albeg Wein
Je ne vois aucune sortie de tailing / var / log / dmesg. Branchez / retirez = rien.
Naftuli Kay
1
@RanyAlbegWein dmesgn'affiche pas tous les événements USB, seuls ceux pour lesquels un gestionnaire existe et appelle printk().
Chris Down
Existe-t-il un moyen de suivre udev pour l'information?
Naftuli Kay

Réponses:

6

Ces informations apparaissent dans les journaux du noyau - typiquement /var/log/kern.log, ou /var/log/syslog, ou un autre fichier (cela dépend de votre configuration syslog, les différentes distributions ont différentes valeurs par défaut).

Si vous souhaitez quelque chose de pré-filtré, vous pouvez ajouter une règle udev. Créez un fichier /etc/udev/rules.d/tkk-log-usb.rulescontenant quelque chose comme:

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

L'environnement du programme est rempli de nombreuses variables décrivant l'appareil, notamment:

  • ACTION( addou remove)
  • DEVICE est un chemin vers l'appareil si vous souhaitez y accéder
  • ID_MODEL_IDet ID_VENDOR_IDcontiennent le modèle et l'ID du fournisseur, ID_MODELet ID_VENDORcontiennent le texte correspondant
  • ID_SERIAL contient le numéro de série de l'appareil (si disponible)
Gilles 'SO- arrête d'être méchant'
la source
10

Vous pouvez le faire avec udevadm:

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

ou

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

pour filtrer uniquement les udevévénements. Si vous voulez grepune propriété particulière , vous devrez un tampon de udevadmsortie (avec des outils comme stdbuf, script, unbuffer...):

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

ou

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

ou

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

Si vous souhaitez simplement surveiller les périphériques USB actuellement branchés, cela watch --no-title lsusbpourrait convenir.

Frederik Deweerdt
la source