Vous pouvez le faire avec udevadm
:
udevadm monitor --subsystem-match=usb --property
ou
udevadm monitor --subsystem-match=usb --property --udev
pour filtrer uniquement udev
événements. Si vous voulez grep
pour une propriété particulière, vous devrez dé-buffer udevadm
sortie (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'
Ces informations apparaissent dans les journaux du noyau — généralement en /var/log/kern.log
, ou /var/log/syslog
, ou un autre fichier (cela dépend de votre configuration syslog, différentes distributions ont des valeurs par défaut différentes).
Si vous souhaitez quelque chose de pré-filtré, vous pouvez ajouter une règle udev. Créer un fichier /etc/udev/rules.d/tkk-log-usb.rules
contenant quelque chose comme :
SUBSYSTEM=="usb", RUN+="/usr/local/sbin/tkk-usb-event"
L'environnement du programme est peuplé de nombreuses variables décrivant l'appareil, notamment :
ACTION
(add
ouremove
)DEVICE
est un chemin vers l'appareil si vous souhaitez y accéderID_MODEL_ID
etID_VENDOR_ID
contenir le modèle et l'ID du fournisseur, etID_MODEL
etID_VENDOR
contenir le texte correspondantID_SERIAL
contient le numéro de série de l'appareil (si disponible)