Looking for Computer Science & Information Technology online
courses ?
Check my new web site: https://www.yesik.it !
Sur un système Linux, le dossier /proc/bus/usb permet d'obtenir des informations sur les périphériques USB connectés à la machine. Ces informations sont maintenues par un système de fichier spécial appelé usbfs.
Or, « sur de nombreux systèmes modernes, le système de fichiers usbfs n'est pas du tout utilisé » [1]. À tel point que les distributions récentes ne le montent plus. Il se peut donc que vous ayez un jour la surprise de constater sur une machine qu'il est vide:
sh$ ls -ls /proc/bus/usb/ total 0
Si c'est le cas, vous allez devoir le monter manuellement:
sh$ sudo mount -t usbfs none /proc/bus/usb sh$ ls /proc/bus/usb/ 001 002 devices # Succès!
Une fois monté, dans /proc/bus/usb/devices les informations relatives aux differents périphériques connectés à votre système:
sh$ head /proc/bus/usb/devices T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 3 B: Alloc= 0/800 us ( 0%), #Int= 3, #Iso= 0 D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=1d6b ProdID=0002 Rev= 2.06 S: Manufacturer=Linux 2.6.32-5-amd64 ehci_hcd S: Product=EHCI Host Controller S: SerialNumber=0000:00:1d.0 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub

Remarque:
Il est aussi possible d'obtenir ces informations à partir de debugfs – le système de fichiers virtuel dédié au débogage du système. Mais ici encore, il y a fort peut de chance que ce système de fichiers soit monté par défaut sur votre machine:
sh$ mount -t debugfs /sys/kernel/debug sh$ head /sys/kernel/debug/usb/devices T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 3 B: Alloc= 0/800 us ( 0%), #Int= 3, #Iso= 0 D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=1d6b ProdID=0002 Rev= 2.06 S: Manufacturer=Linux 2.6.32-5-amd64 ehci_hcd S: Product=EHCI Host Controller S: SerialNumber=0000:00:1d.0 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
Ressources
- http://www.kernel.org/doc/Documentation/usb/proc_usb_info.txt
- http://tali.admingilde.org/linux-docbook/usb/ch07.html