info:linux:materiel

Gestions et commandes concernant le matériel

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

update-pciids

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.

update-usbids

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

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

lspci

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

  • options d'affichage de base:
    • -m : Dump, forme compatible pour être lisible, des données des périphériques.
    • -mm : Dump, forme compatible pour être lisible par un script, des données des périphériques.
    • -t :Diagramme arborescent des bus,ponts,périphériques et inter-connexions
  • autres options d'affichage
    • -v -vv -vvv : 3 niveaux de volubilités: détaillé, très détaillé, et excessivement détaillé.
    • -k : affiche les pilotes du noyau ou les modules gérant chaque périphériques. automatiquement activé avec les options de volubilités (-v, -vv et -vvv).

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.

lsusb

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:

  • -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 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)

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

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 différents: uvcvideo et snd-usb-audio soit la video webcam et le son.

Fichier listant le nom des périphériques USB pour leurs identifications

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

lshw

liste hardware

acpi -V

udev

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

déclencher une nouvelle détection de matériel pour tous les périphériques

sudo udevadm trigger --subsystem-match=*

déclencher une nouvelle détection de matériel pour tous les périphériques USB

sudo udevadm trigger --subsystem-match=usb

déclencher une nouvelle détection de matériel pour tous les périphériques Ethernet

sudo udevadm trigger --subsystem-match=net

déclencher une nouvelle détection de matériel pour tous les périphériques audio

sudo udevadm trigger --subsystem-match=audio
  • /home/franck/dokuwiki/doc/data/pages/info/linux/materiel.txt
  • Dernière modification : 2023/09/01 10:11
  • de franck