update-pciids: pour mettre a jour le tableau de correspondance entre les numéros <id fabricant>:<id periph> et le nom du périphérique pci
update-usbids: pour mettre a jour le tableau de correspondance entre les numéros <id fabricant>:<id periph> et le nom du périphérique usb
paquet : pciutils
Permet de télécharger la dernière version du fichier des Identifiants de fabricants et des identifiants de périphériques pci.
Ce fichier local /usr/share/misc/pci.ids , permet d'avoir un nom de constructeur et de périphérique lorsque l'on passe la commande lspci.
sudo update-pciids
Le téléchargement du dernier fichier pci.ids, n'influe pas sur le système et ses pilotes. Il ne permet pas à Linux de piloter un nouveau périphérique. C'est le rôle des pilotes de périphérique. Il vous permettra seulement d'avoir le nom, au lieu de l'id du périphérique et de pouvoir faire des recherches internet avec ce nom.
paquet: usbutils
Cette commande est supprimé du paquet a partir de la version 008 (appelé 1.008 sous Ubuntu) du 21 octobre 2014 et n'est pas remplacé, pour minimiser les dépendances du paquet (wget, curl, …)
Permet de télécharger la dernière version du fichier des Identifiants de fabricants et des identifiants de périphériques usb.
Permet d'avoir un nom de constructeur et de périphérique lorsque l'on passe la commande lsusb.
sudo update-usbids
a partir de la version 008 d'usbutils et/ou si vous n'avez pas la commande update-usbids, pour une Ubuntu 19.04 et sup ( pour les autres faites une commande sudo find / -type f -name usb.ids pour trouver la destination locale du fichier usb.ids et éviter les liens symboliques):
sudo wget http://www.linux-usb.org/usb.ids -O /var/lib/usbutils/usb.ids
consulter http://www.linux-usb.org/ pour des informations avancé sur l’USB sous Linux.
Le téléchargement du dernier fichier usb.ids, n'influe pas sur le système et ses pilotes. Il ne permet pas à Linux de piloter un nouveau périphérique. C'est le rôle des pilotes de périphérique. Il vous permettra seulement d'avoir le nom, au lieu de l'id du périphérique et de pouvoir faire des recherches internet avec ce nom.
dmidecode est un outil qui liste la table DMI et SMBIOS et l'affiche sous un format lisible par un humain.
Cette table contient les noms et les descriptions des éléments matériels.
sudo dmidecode
liste les péripheriques pci
voir https://www.kernel.org/doc/html/latest/admin-guide/media/pci-cardlist.html
affiche des informations sur le bus PCI et les périphériques connectés.
voir les pages man de lspci pour toutes les options.
man page en francais par Mr Delafond
utiliser la commande suivante en remplaçant 1102:0012 par l'IDVendor:IDDevice du périphérique pour lequel vous recherche l’identifiant de sous système (subsystem ID). Les options importantes sont “-vn”
Sans les droits root (sudo) vous aurez moins d'informations, mais quand même l'id du sous-système.
sudo lspci -vn -d 1102:0012
09:00.0 0403: 1102:0012 (rev 01) Subsystem: 1102:0191 Flags: bus master, fast devsel, latency 0, IRQ 16 Memory at fb504000 (64-bit, non-prefetchable) [size=16K] Memory at fb500000 (64-bit, non-prefetchable) [size=16K] Capabilities: [40] Power Management version 3 Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+ Capabilities: [70] Express Endpoint, MSI 00 Capabilities: [100] Advanced Error Reporting Capabilities: [140] Virtual Channel Capabilities: [170] Device Serial Number 00-00-00-00-00-00-00-00 Capabilities: [180] Power Budgeting <?> Kernel driver in use: snd_hda_intel Kernel modules: snd_hda_intel
Ici pour ma carte Sound BlasterX AE-5 Plus l'ID du vendeur est 1102 Creative Labs et 0012 pour la carte Blaster AE-5 avec processeur de son CA0132. Le subsystem ID reprend l'ID d'entreprise et rajoute un identifiant (probablement) unique au type de carte, le 0191. Il permet aux pilotes d'identifier les spécificités de la carte, dont ses processeurs CA0132-4AN HF nommée Sound Core3D, le CA0113-4AG HF et un DAC ESS ES9016K2M SABRE.
paquet: usbutils
documentation : http://www.linux-usb.org/
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
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:
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 lignes sur 1 seul peripherique, j'en passe la majorité]
bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 ? bDeviceProtocol 1 Interface Association bMaxPacketSize0 64 bNumConfigurations 1 Device Status: 0x0000 (Bus Powered)
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
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 différents: uvcvideo et snd-usb-audio soit la video webcam et le son.
Fichier contenant la correspondance entre id d'entreprise=nom d'entreprise et id de périphérique=nom de périphé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 périphériques 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
liste hardware
Pour gérer udev, vous avez deux commandes : udevadm et udevctl.
paquet: udev
utilitaire de gestion udev
Usage: udevadm [--help] [--version] [--debug] COMMAND [COMMAND OPTIONS] info query sysfs or the udev database trigger request events from the kernel settle wait for the event queue to finish control control the udev daemon monitor listen to kernel and udev events test simulation run
Pour avoir plus d'information ur une commande de udevadm lancer la commande udenadm COMMAND –help . Exemple:
udevadm trigger --help
N'oubliez pas d'exécuter ces commandes en tant que superutilisateur (root) pour avoir les autorisations nécessaires.
Pour accéder aux informations d'un périphérique du point de vue de udev, utilisez la commande suivante :
udevadm info --query=all --name=/dev/[device]
Remplacez [device] par le nom du périphérique que vous souhaitez inspecter. Par exemple, pour lister les informations sur le périphérique /dev/sda, vous exécuterez la commande suivante :
udevadm info --query=all --name=/dev/sda
Cette commande affiche toutes les informations disponibles sur le périphérique spécifié. Cela peut inclure des détails tels que le fabricant, le modèle, les identifiants de produit, les chemins de périphérique, les règles udev associées, etc.
Vous pouvez également utiliser d'autres options avec la commande udevadm info pour obtenir des informations spécifiques. Par exemple, pour afficher uniquement les informations d'identification du périphérique, vous pouvez utiliser l'option –attribute-walk comme ceci :
udevadm info --attribute-walk --name=/dev/[device]
Encore une fois, remplacez [device] par le nom du périphérique que vous souhaitez inspecter.
man udevadm nous indique la signification des préfixes des lignes :
Préfixes | Signification |
P: | Device path in /sys/ |
N: | Kernel device node name |
---|---|
L: | Device node symlink priority |
S: | Device node symlink |
E: | Device property |
l'option “–type=all” de udevadm trigger été supprimée à partir de la version 239 de systemd, qui a été publiée en mai 2022.
Récupérez les informations d'utilisation de la commande trigger de udevadm:
udevadm trigger --help
ou
man udevadm
sudo udevadm trigger --subsystem-match=*
sudo udevadm trigger --subsystem-match=usb
sudo udevadm trigger --subsystem-match=net
sudo udevadm trigger --subsystem-match=audio