USB sous Linux

De system.co.free.fr.
(Différences entre les versions)
(lsusb)
(Commande lspci)
 
(45 versions intermédiaires masquées)
Ligne 1 : Ligne 1 :
-
== {{PAGENAME}} ==
+
retour vers [[Linux]]
 +
 
 +
 
 +
==documentation==
 +
http://www.linux-usb.org/
 +
<br><br>
 +
== lsusb ==
 +
/usr/bin/lsusb <br>
 +
paquet:usbutils
-
==== lsusb ====
 
cette commande permet d'afficher des informations relatives aux bus USB du système et aux périphériques qui y sont connectés. <br>
cette commande permet d'afficher des informations relatives aux bus USB du système et aux périphériques qui y sont connectés. <br>
-
voir [http://www.delafond.org/traducmanfr/man/man8/lsusb.8.html| man lsusb]  
+
voir [http://www.delafond.org/traducmanfr/man/man8/lsusb.8.html| man lsusb]
-
a noter les fichiers de liste de périphériques usb sur ma Kubuntu<br><br>
+
===Exemple 1: liste de tout les périphériques usb, contrôleur usb compris===
-
/usr/share/msic/usb.ids  
+
 
-
:La liste de tous les identifiants USB connus (vendeurs, produits, classes, sous-classes et protocoles) par votre systèmes.  
+
  lsusb
-
/usr/share/kde4/apps/kcmusb/usb.ids
+
 
-
:le même fichier que précédemment. Attention cependant, il n'est pas nécessairement de la même version
+
  Bus 001 Device 002: ID 1b1c:1a03 Corsair
 +
  Bus 002 Device 002: ID 046d:0994 Logitech, Inc. QuickCam Orbit/Sphere AF
 +
  Bus 002 Device 004: ID 0bb4:0ff9 HTC (High Tech Computer Corp.) Desire / Desire HD / Hero (Charge Mode)
 +
  Bus 008 Device 002: ID 046d:c505 Logitech, Inc. Cordless Mouse+Keyboard Receiver
 +
  Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 +
  Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 +
  Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 +
  Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 +
 
 +
Pour avoir le détail sur un périphérique particulier, passer en root.<br>
 +
Et, par exemple,pour le detail de la QuickCam Sphere de la 2eme ligne:<br>
 +
-v pour le detail<br>
 +
-d avec l'identifiant vendeur suivi de ":" et de l'identifiant de périphérique. ( a la suite d' <b>ID</b> de la commande simple lsusb)<br>
 +
  sudo lsusb -v -d 046d:0994
 +
 
 +
  Bus 002 Device 002: ID 046d:0994 Logitech, Inc. QuickCam Orbit/Sphere AF
 +
  Device Descriptor:
 +
    bLength                18
 +
    bDescriptorType        1
 +
    bcdUSB              2.00
 +
    bDeviceClass          239 Miscellaneous Device
 +
    bDeviceSubClass        2 ?
 +
    bDeviceProtocol        1 Interface Association
 +
    bMaxPacketSize0        64
 +
    idVendor          0x046d Logitech, Inc.
 +
    idProduct          0x0994 QuickCam Orbit/Sphere AF
 +
    bcdDevice            0.08
 +
 
 +
    [... Il y a plus de 916 ligne, je vous les passe]
 +
 
 +
    bDeviceClass          239 Miscellaneous Device
 +
    bDeviceSubClass        2 ?
 +
    bDeviceProtocol        1 Interface Association
 +
    bMaxPacketSize0        64
 +
    bNumConfigurations      1
 +
  Device Status:    0x0000
 +
  (Bus Powered)
 +
   
 +
<br><br>
 +
 
 +
===Exemple 2: liste de tout les périphériques d'un constructeur===
 +
 
 +
Avec l'option -d vous pouvez lister tout les périphérique d'un constructeur, ou l'inverse, tout les constructeurs d'un périphérique. Ici, la liste des périphériques de chez logitech (on sait par lsusb que l'idendentifiant du constructeur est le premier nombre après ID du résultat de la commande lsusb):
 +
  lsusb -d 046d:
 +
 
 +
  Bus 002 Device 002: ID 046d:0994 Logitech, Inc. QuickCam Orbit/Sphere AF
 +
  Bus 008 Device 002: ID 046d:c505 Logitech, Inc. Cordless Mouse+Keyboard Receiver
 +
<br><br>
 +
 
 +
===Exemple 3: connaître le pilote associé a un périphérique usb===
 +
Avec l'option -t nous allons afficher l'arborescence hiérarchique des périphériques connectés (ports usb, périphérique(s) connecté a ce port, vitesse max de transmission, classes des périphériques et pilotes associés aux périphériques). Option -t n'est pas compatible avec les autres options et les annule.
 +
  lsusb -t
 +
<pre>
 +
/:  Bus 08.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
 +
  |__ Port 1: Dev 2, If 0, Class=HID, Driver=usbhid, 1.5M
 +
    |__ Port 1: Dev 2, If 1, Class=HID, Driver=usbhid, 1.5M
 +
/:  Bus 07.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
 +
/:  Bus 06.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
 +
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
 +
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
 +
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
 +
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/6p, 480M
 +
    |__ Port 4: Dev 2, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
 +
    |__ Port 4: Dev 2, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
 +
    |__ Port 4: Dev 2, If 2, Class=audio, Driver=snd-usb-audio, 480M
 +
    |__ Port 4: Dev 2, If 3, Class=audio, Driver=snd-usb-audio, 480M
 +
    |__ Port 6: Dev 4, If 0, Class=stor., Driver=usb-storage, 480M
 +
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/6p, 480M
 +
</pre>
 +
On voit ici rattaché au bus 02 le port 4 et le port 6. Ce sont 2 périphériques différents. Isolons le port 4:
 +
  lsusb -t | grep "Port 4"
 +
<pre>
 +
    |__ Port 4: Dev 2, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
 +
    |__ Port 4: Dev 2, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
 +
    |__ Port 4: Dev 2, If 2, Class=audio, Driver=snd-usb-audio, 480M
 +
    |__ Port 4: Dev 2, If 3, Class=audio, Driver=snd-usb-audio, 480M
 +
</pre>
 +
Tout cela correspond au périphérique "Logitech, Inc. QuickCam Orbit/Sphere AF". Et on voit 2 Drivers differents: uvcvideo et snd-usb-audio<br>
 +
soit la video webcam et le son.
 +
<br><br>
 +
 
 +
==Fichier listant le nom des peripheriques USB pour leurs identifications==
 +
Fichier contenant la correspondance entre id d'entreprise=nom d'entreprise et id de peripherique=nom de periphérique (les nom de la dernière colonne que vous renvoi lsusb)<br>
 +
/usr/share/misc/usb.ids <br>
 +
paquet:usbutils
 +
:La liste de tous les identifiants constructeurs et peripheriques connus (vendeurs, produits, classes, sous-classes et protocoles) par votre systèmes. <br>
 +
/usr/share/kde4/apps/kcmusb/usb.ids <br>
 +
paquet:kinfocenter
 +
:le même fichier que précédemment. Attention cependant, il n'est pas nécessairement de la même version. Il est utilisé pour identifier les périphériques par kinfocenter.
/var/lib/misc/usb.ids
/var/lib/misc/usb.ids
-
:encore le même fichier. chez moi, il a la meme version que /usr/share/kde4/apps/kcmusb/usb.ids
+
:encore le même fichier.
-
La dernière version peut être trouvé sur [http://www.linux-usb.org/usb.ids | http://www.linux-usb.org/usb.ids]
+
La dernière version peut être trouvé sur [http://www.linux-usb.org/usb.ids http://www.linux-usb.org/usb.ids]
 +
<br><br>
 +
 
 +
==Mettre a jour son fichier /usr/share/misc/usb.ids==
 +
 
 +
===Ancienne version de kubuntu===
 +
 
 +
/usr/sbin/update-usbids.sh <br>
 +
paquet:usbutils<br>
 +
met a jour le fichier /usr/share/misc/usb.ids a partir de la page http://www.linux-usb.org/usb.ids
/proc/bus/usb  
/proc/bus/usb  
:Une interface vers les périphériques USB fournie par les noyaux Linux postérieurs à la version 2.3.15. Elle contient un sous-répertoire par bus qui contient un fichier par périphérique et un fichier devices qui contient certains descripteurs pour chaque périphérique USB. Cette interface est également prise en charge par certains noyaux Linux 2.2.
:Une interface vers les périphériques USB fournie par les noyaux Linux postérieurs à la version 2.3.15. Elle contient un sous-répertoire par bus qui contient un fichier par périphérique et un fichier devices qui contient certains descripteurs pour chaque périphérique USB. Cette interface est également prise en charge par certains noyaux Linux 2.2.
 +
 +
===Version recente de Kubuntu===
 +
 +
/usr/sbin/update-usbids<br>
 +
paquet:usbutils<br>
 +
 +
met a jour le fichier /usr/share/misc/usb.ids a partir de la page http://www.linux-usb.org/usb.ids
 +
 +
 +
==Déterminer le nom et type de son contrôleur USB, coté Carte Mère==
 +
 +
===Commande lspci===
 +
la commande est <b>lspci | grep -i usb</b>. Sur ma carte mère AsRock X79 Extrême 11 cela donne:
 +
<pre>
 +
lspci | grep -i usb
 +
00:1a.0 USB controller: Intel Corporation C600/X79 series chipset USB2 Enhanced Host Controller #2 (rev 06)
 +
00:1d.0 USB controller: Intel Corporation C600/X79 series chipset USB2 Enhanced Host Controller #1 (rev 06)
 +
14:00.0 USB controller: Texas Instruments TUSB73x0 SuperSpeed USB 3.0 xHCI Host Controller (rev 02)
 +
15:00.0 USB controller: Texas Instruments TUSB73x0 SuperSpeed USB 3.0 xHCI Host Controller (rev 02)
 +
</pre>
 +
<br>
 +
J'ai donc 2 types de controleurs:<br>
 +
*USB2: intel X79/C600 ( sur le chipset Intel X79 comme me l'indique google )
 +
*USB3: Texas Instrument TUSB73x0 SuperSpeed
 +
 +
===Pour avoir plus de détail===
 +
Je note les premier caractères correspondant ici au <b>bus:slot.fonction</b> soit <b>00:1a.0 et 00:1d.0</b> pour l'usb2 et <b>14:00.0 et 15:00.0</b> pour l'usb3. Pour avoir plus d'info je regarde le <b>man lspci</b>:
 +
*Pour connaître le pilote linux utilisé:
 +
<pre>
 +
lspci -ks 14:00.0
 +
14:00.0 USB controller: Texas Instruments TUSB73x0 SuperSpeed USB 3.0 xHCI Host Controller (rev 02)
 +
        Subsystem: ASRock Incorporation Device 8241
 +
        Kernel driver in use: xhci_hcd
 +
</pre>Ici, clairement indiqué nous avons <b>xhci_hcd</b>
 +
*Pour avoir encore plus d'info (nécessite les droits root ):
 +
<pre>
 +
sudo lspci -vs 14:00.0
 +
14:00.0 USB controller: Texas Instruments TUSB73x0 SuperSpeed USB 3.0 xHCI Host Controller (rev 02) (prog-if 30 [XHCI])
 +
        Subsystem: ASRock Incorporation Device 8241
 +
        Flags: bus master, fast devsel, latency 0, IRQ 18
 +
        Memory at fbb00000 (64-bit, non-prefetchable) [size=64K]
 +
        Memory at fbb10000 (64-bit, non-prefetchable) [size=8K]
 +
        Capabilities: [40] Power Management version 3
 +
        Capabilities: [48] MSI: Enable- Count=1/8 Maskable- 64bit+
 +
        Capabilities: [70] Express Endpoint, MSI 00
 +
        Capabilities: [c0] MSI-X: Enable+ Count=8 Masked-
 +
        Capabilities: [100] Advanced Error Reporting
 +
        Capabilities: [150] Device Serial Number 08-00-28-00-00-20-00-00
 +
        Kernel driver in use: xhci_hcd
 +
</pre>
 +
*Pour avoir encore, encore, encore plus d'info (nécessite les droits root ):<pre> sudo lspci -vvvs 14:00.0
 +
14:00.0 USB controller: Texas Instruments TUSB73x0 SuperSpeed USB 3.0 xHCI Host Controller (rev 02) (prog-if 30 [XHCI])
 +
        Subsystem: ASRock Incorporation Device 8241
 +
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
 +
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
 +
        Latency: 0, Cache Line Size: 64 bytes
 +
        Interrupt: pin A routed to IRQ 18
 +
        Region 0: Memory at fbb00000 (64-bit, non-prefetchable) [size=64K]
 +
        Region 2: Memory at fbb10000 (64-bit, non-prefetchable) [size=8K]
 +
        Capabilities: [40] Power Management version 3
 +
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=100mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
 +
                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
 +
        Capabilities: [48] MSI: Enable- Count=1/8 Maskable- 64bit+
 +
                Address: 0000000000000000  Data: 0000
 +
        Capabilities: [70] Express (v2) Endpoint, MSI 00
 +
                DevCap: MaxPayload 1024 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
 +
                        ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
 +
                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
 +
                        RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
 +
                        MaxPayload 128 bytes, MaxReadReq 512 bytes
 +
                DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
 +
                LnkCap: Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <512ns, L1 <64us
 +
                        ClockPM+ Surprise- LLActRep- BwNot-
 +
                LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
 +
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
 +
                LnkSta: Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
 +
                DevCap2: Completion Timeout: Not Supported, TimeoutDis+, LTR-, OBFF Not Supported
 +
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
 +
                LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
 +
                        Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
 +
                        Compliance De-emphasis: -6dB
 +
                LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
 +
                        EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
 +
        Capabilities: [c0] MSI-X: Enable+ Count=8 Masked-
 +
                Vector table: BAR=2 offset=00000000
 +
                PBA: BAR=2 offset=00001000
 +
        Capabilities: [100 v2] Advanced Error Reporting
 +
                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
 +
                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
 +
                UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
 +
                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
 +
                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
 +
                AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
 +
        Capabilities: [150 v1] Device Serial Number 08-00-28-00-00-20-00-00
 +
        Kernel driver in use: xhci_hcd
 +
</pre>
 +
 +
 +
<br><br>
 +
 +
==Pour developpez sur usb:[[libusb]]==
 +
<br><br>

Version actuelle en date du 28 décembre 2014 à 11:23

retour vers Linux


Sommaire

documentation

http://www.linux-usb.org/

lsusb

/usr/bin/lsusb
paquet:usbutils

cette commande permet d'afficher des informations relatives aux bus USB du système et aux périphériques qui y sont connectés.
voir man lsusb

Exemple 1: liste de tout les périphériques usb, contrôleur usb compris

 lsusb
 Bus 001 Device 002: ID 1b1c:1a03 Corsair 
 Bus 002 Device 002: ID 046d:0994 Logitech, Inc. QuickCam Orbit/Sphere AF
 Bus 002 Device 004: ID 0bb4:0ff9 HTC (High Tech Computer Corp.) Desire / Desire HD / Hero (Charge Mode)
 Bus 008 Device 002: ID 046d:c505 Logitech, Inc. Cordless Mouse+Keyboard Receiver
 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Pour avoir le détail sur un périphérique particulier, passer en root.
Et, par exemple,pour le detail de la QuickCam Sphere de la 2eme ligne:
-v pour le detail
-d avec l'identifiant vendeur suivi de ":" et de l'identifiant de périphérique. ( a la suite d' ID de la commande simple lsusb)

 sudo lsusb -v -d 046d:0994
 Bus 002 Device 002: ID 046d:0994 Logitech, Inc. QuickCam Orbit/Sphere AF
 Device Descriptor:
   bLength                18
   bDescriptorType         1
   bcdUSB               2.00
   bDeviceClass          239 Miscellaneous Device
   bDeviceSubClass         2 ?
   bDeviceProtocol         1 Interface Association
   bMaxPacketSize0        64
   idVendor           0x046d Logitech, Inc.
   idProduct          0x0994 QuickCam Orbit/Sphere AF
   bcdDevice            0.08
 
   [... Il y a plus de 916 ligne, je vous les passe]
 
   bDeviceClass          239 Miscellaneous Device
   bDeviceSubClass         2 ?
   bDeviceProtocol         1 Interface Association
   bMaxPacketSize0        64
   bNumConfigurations      1
 Device Status:     0x0000
 (Bus Powered)
   



Exemple 2: liste de tout les périphériques d'un constructeur

Avec l'option -d vous pouvez lister tout les périphérique d'un constructeur, ou l'inverse, tout les constructeurs d'un périphérique. Ici, la liste des périphériques de chez logitech (on sait par lsusb que l'idendentifiant du constructeur est le premier nombre après ID du résultat de la commande lsusb):

 lsusb -d 046d:
 Bus 002 Device 002: ID 046d:0994 Logitech, Inc. QuickCam Orbit/Sphere AF
 Bus 008 Device 002: ID 046d:c505 Logitech, Inc. Cordless Mouse+Keyboard Receiver



Exemple 3: connaître le pilote associé a un périphérique usb

Avec l'option -t nous allons afficher l'arborescence hiérarchique des périphériques connectés (ports usb, périphérique(s) connecté a ce port, vitesse max de transmission, classes des périphériques et pilotes associés aux périphériques). Option -t n'est pas compatible avec les autres options et les annule.

 lsusb -t 
/:  Bus 08.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
   |__ Port 1: Dev 2, If 0, Class=HID, Driver=usbhid, 1.5M
    |__ Port 1: Dev 2, If 1, Class=HID, Driver=usbhid, 1.5M
/:  Bus 07.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 06.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/6p, 480M
    |__ Port 4: Dev 2, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
    |__ Port 4: Dev 2, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
    |__ Port 4: Dev 2, If 2, Class=audio, Driver=snd-usb-audio, 480M
    |__ Port 4: Dev 2, If 3, Class=audio, Driver=snd-usb-audio, 480M
    |__ Port 6: Dev 4, If 0, Class=stor., Driver=usb-storage, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/6p, 480M

On voit ici rattaché au bus 02 le port 4 et le port 6. Ce sont 2 périphériques différents. Isolons le port 4:

 lsusb -t | grep "Port 4"
    |__ Port 4: Dev 2, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
    |__ Port 4: Dev 2, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
    |__ Port 4: Dev 2, If 2, Class=audio, Driver=snd-usb-audio, 480M
    |__ Port 4: Dev 2, If 3, Class=audio, Driver=snd-usb-audio, 480M

Tout cela correspond au périphérique "Logitech, Inc. QuickCam Orbit/Sphere AF". Et on voit 2 Drivers differents: uvcvideo et snd-usb-audio
soit la video webcam et le son.

Fichier listant le nom des peripheriques USB pour leurs identifications

Fichier contenant la correspondance entre id d'entreprise=nom d'entreprise et id de peripherique=nom de periphérique (les nom de la dernière colonne que vous renvoi lsusb)
/usr/share/misc/usb.ids
paquet:usbutils

La liste de tous les identifiants constructeurs et peripheriques connus (vendeurs, produits, classes, sous-classes et protocoles) par votre systèmes.

/usr/share/kde4/apps/kcmusb/usb.ids
paquet:kinfocenter

le même fichier que précédemment. Attention cependant, il n'est pas nécessairement de la même version. Il est utilisé pour identifier les périphériques par kinfocenter.

/var/lib/misc/usb.ids

encore le même fichier.

La dernière version peut être trouvé sur http://www.linux-usb.org/usb.ids

Mettre a jour son fichier /usr/share/misc/usb.ids

Ancienne version de kubuntu

/usr/sbin/update-usbids.sh
paquet:usbutils
met a jour le fichier /usr/share/misc/usb.ids a partir de la page http://www.linux-usb.org/usb.ids

/proc/bus/usb

Une interface vers les périphériques USB fournie par les noyaux Linux postérieurs à la version 2.3.15. Elle contient un sous-répertoire par bus qui contient un fichier par périphérique et un fichier devices qui contient certains descripteurs pour chaque périphérique USB. Cette interface est également prise en charge par certains noyaux Linux 2.2.

Version recente de Kubuntu

/usr/sbin/update-usbids
paquet:usbutils

met a jour le fichier /usr/share/misc/usb.ids a partir de la page http://www.linux-usb.org/usb.ids


Déterminer le nom et type de son contrôleur USB, coté Carte Mère

Commande lspci

la commande est lspci | grep -i usb. Sur ma carte mère AsRock X79 Extrême 11 cela donne:

lspci | grep -i usb
00:1a.0 USB controller: Intel Corporation C600/X79 series chipset USB2 Enhanced Host Controller #2 (rev 06)
00:1d.0 USB controller: Intel Corporation C600/X79 series chipset USB2 Enhanced Host Controller #1 (rev 06)
14:00.0 USB controller: Texas Instruments TUSB73x0 SuperSpeed USB 3.0 xHCI Host Controller (rev 02)
15:00.0 USB controller: Texas Instruments TUSB73x0 SuperSpeed USB 3.0 xHCI Host Controller (rev 02)


J'ai donc 2 types de controleurs:

  • USB2: intel X79/C600 ( sur le chipset Intel X79 comme me l'indique google )
  • USB3: Texas Instrument TUSB73x0 SuperSpeed

Pour avoir plus de détail

Je note les premier caractères correspondant ici au bus:slot.fonction soit 00:1a.0 et 00:1d.0 pour l'usb2 et 14:00.0 et 15:00.0 pour l'usb3. Pour avoir plus d'info je regarde le man lspci:

  • Pour connaître le pilote linux utilisé:
lspci -ks 14:00.0
14:00.0 USB controller: Texas Instruments TUSB73x0 SuperSpeed USB 3.0 xHCI Host Controller (rev 02)
        Subsystem: ASRock Incorporation Device 8241
        Kernel driver in use: xhci_hcd
Ici, clairement indiqué nous avons xhci_hcd
  • Pour avoir encore plus d'info (nécessite les droits root ):
sudo lspci -vs 14:00.0
14:00.0 USB controller: Texas Instruments TUSB73x0 SuperSpeed USB 3.0 xHCI Host Controller (rev 02) (prog-if 30 [XHCI])
        Subsystem: ASRock Incorporation Device 8241
        Flags: bus master, fast devsel, latency 0, IRQ 18
        Memory at fbb00000 (64-bit, non-prefetchable) [size=64K]
        Memory at fbb10000 (64-bit, non-prefetchable) [size=8K]
        Capabilities: [40] Power Management version 3
        Capabilities: [48] MSI: Enable- Count=1/8 Maskable- 64bit+
        Capabilities: [70] Express Endpoint, MSI 00
        Capabilities: [c0] MSI-X: Enable+ Count=8 Masked-
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [150] Device Serial Number 08-00-28-00-00-20-00-00
        Kernel driver in use: xhci_hcd
  • Pour avoir encore, encore, encore plus d'info (nécessite les droits root ):
     sudo lspci -vvvs 14:00.0 
    

14:00.0 USB controller: Texas Instruments TUSB73x0 SuperSpeed USB 3.0 xHCI Host Controller (rev 02) (prog-if 30 [XHCI])

       Subsystem: ASRock Incorporation Device 8241
       Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
       Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
       Latency: 0, Cache Line Size: 64 bytes
       Interrupt: pin A routed to IRQ 18
       Region 0: Memory at fbb00000 (64-bit, non-prefetchable) [size=64K]
       Region 2: Memory at fbb10000 (64-bit, non-prefetchable) [size=8K]
       Capabilities: [40] Power Management version 3
               Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=100mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
               Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
       Capabilities: [48] MSI: Enable- Count=1/8 Maskable- 64bit+
               Address: 0000000000000000  Data: 0000
       Capabilities: [70] Express (v2) Endpoint, MSI 00
               DevCap: MaxPayload 1024 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
                       ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
               DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                       RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
                       MaxPayload 128 bytes, MaxReadReq 512 bytes
               DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
               LnkCap: Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <512ns, L1 <64us
                       ClockPM+ Surprise- LLActRep- BwNot-
               LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
                       ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
               LnkSta: Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
               DevCap2: Completion Timeout: Not Supported, TimeoutDis+, LTR-, OBFF Not Supported
               DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
               LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
                        Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                        Compliance De-emphasis: -6dB
               LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
                        EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
       Capabilities: [c0] MSI-X: Enable+ Count=8 Masked-
               Vector table: BAR=2 offset=00000000
               PBA: BAR=2 offset=00001000
       Capabilities: [100 v2] Advanced Error Reporting
               UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
               UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
               UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
               CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
               CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
               AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
       Capabilities: [150 v1] Device Serial Number 08-00-28-00-00-20-00-00
       Kernel driver in use: xhci_hcd




Pour developpez sur usb:libusb



Outils personnels