J'essaie de créer un script qui identifie le produit et le fournisseur en utilisant lsusb
, puis en vérifiant cet ID pour trouver le répertoire du périphérique USB dans /sys/bus/usb/devices
.
Au départ, je pensais que le numéro de bus et de périphérique imprimé par lsusb pointerait vers le dossier approprié. Par exemple, si Bus = 002
et Device = 002
, le répertoire de la clé USB sera /usb/devices/2-2
. Malheureusement, cela s'est avéré ne pas être le cas.
Je peux trouver manuellement le dossier approprié en utilisant cette commande trouvée dans un autre fil:
for X in /sys/bus/usb/devices/*; do
echo "$X"
cat "$X/idVendor" 2>/dev/null
cat "$X/idProduct" 2>/dev/null
echo
done
Cependant, j'ai besoin d'un script capable d'automatiser la recherche de ce dossier.
Si j'ai bien compris votre question, le script suivant devrait faire l'affaire:
#!/bin/bash
if [ $# -ne 2 ];then
echo "Usage: `basename $0` idVendor idProduct"
exit 1
fi
for X in /sys/bus/usb/devices/*; do
if [ "$1" == "$(cat "$X/idVendor" 2>/dev/null)" -a "$2" == "$(cat "$X/idProduct" 2>/dev/null)" ]
then
echo "$X"
fi
done