Comment trouver le modèle de matériel sous Linux?


89

J'ai utilisé un utilitaire d'informations système pour prendre le numéro de modèle d'un système, ainsi que celui de la carte mère.

DMI System Manufacturer     LENOVO
DMI System Product          2306CTO
DMI System Version          ThinkPad X230
DMI Motherboard Product     2306CTO  

Existe-t-il un moyen d'obtenir le numéro de modèle, dans ce cas 2306CTO, sous Linux?



2
Pour plus de clarté, il semble que vous soyez intéressé par le produit matériel, pas spécifiquement par la carte mère. Par exemple, "ThinkPad X230" est un type d’ordinateur, pas une carte mère.
Bratchley

1
Vous pouvez également obtenir des informations sans paquets supplémentaires en exécutant la commande dmesg ou en vérifiant / var / log / dmesg *.
Blake Russo le

Réponses:


114

en utilisant la dmidecode | grep -A3 '^System Information'commande. Vous y trouverez toutes les informations du BIOS et du matériel. Ce sont des exemples sur trois machines différentes (ceci est un extrait de la sortie complète):

System Information
    Manufacturer: Dell Inc.
    Product Name: Precision M4700

System Information
    Manufacturer: MICRO-STAR INTERANTIONAL CO.,LTD
    Product Name: MS-7368

System Information
    Manufacturer: HP
    Product Name: ProLiant ML330 G6

25
FWIW, il est probablement préférable de prendre l’habitude de filtrer certains types de DMI plutôt que d’utiliser grep. Pour le modèle matériel global, ce serait dmidecode -t1. De cette façon, vous disposez d'une méthode simpliste pour extraire des données de dmidecode et vous devez simplement vous rappeler les types DMI courants. L’habitude devient vraiment utile lorsqu’on examine les installations RAM ( dmidecode -t17) lorsque grep peut produire des résultats vraiment déplaisants si vous saisissez les mauvaises données. De plus, la sortie de -test plus complète
Bratchley

@JoelDavis, je n'étais pas au courant de ces options auparavant. Je vais les utiliser. Merci.
eppesuig

13
Note: besoin de racine. Si vous voulez toutes les informations pour lesquelles vous avez des autorisations sous l'utilisateur actuel, utilisez: cat /sys/devices/virtual/dmi/id/*(et cela vous permettra d'obtenir le nom du modèle et le tri à l'aide d'un utilisateur normal)
qwertzguy le

Transférer la sortie de dmidecode sans arguments vers grep est intéressant, mais n’est pas le moyen le plus efficace d’obtenir les informations. dmidecode peut imprimer exactement ce que l'OP demande en spécifiant la chaîne de mot-clé 'system-product-name': sudo dmidecode -s nom-produit-système
cjac

Je pense qu’il est intéressant de noter que les anciens systèmes ne disposent pas d’indicateurs dmidecode, ni même de pages de manuel. La réponse ci-dessus est la réponse la plus portable sur Linux ici, je pense. Les indicateurs -tet -ssont utiles sur les nouveaux systèmes.
Joshua Detwiler

32

Essayez sudo dmidecode -t baseboarddes informations complètes sur les DMI t contenus pertinents capables de votre carte de base, sous une forme lisible par l' homme. Pour seulement le Nom du produit système , vous pouvez utiliser (type dmidecode -spour obtenir une liste de s Trings mots - clés):

sudo dmidecode -s system-product-name
sudo dmidecode -s baseboard-product-name

Les autres options pertinentes pour les informations de carte mère sont

sudo dmidecode -s system-version
sudo dmidecode -s baseboard-version
sudo dmidecode -s system-manufacturer
sudo dmidecode -s baseboard-manufacturer

Essayez sudo dmidecode -sune liste complète des chaînes DMI du système disponibles.


24

Pour mémoire, une grande partie de ces informations est disponible sous / sys / devices / virtual / dmi / id sur les linuces modernes (c'est-à-dire depuis au moins 2011), et une grande partie si, notamment, les numéros de série, y compris, n'est pas lisible par les utilisateurs habituels. . Pour répondre à la question de l'affiche d'origine, product_namele fichier contient-il le nom du modèle du système?

bios_date
bios_vendor
bios_version
board_asset_tag
board_name
board_serial
board_vendor
board_version
chassis_asset_tag
chassis_serial
chassis_type
chassis_vendor
chassis_version
modalias
power
product_name
product_serial
product_uuid
product_version
smbios_version
subsystem
sys_vendor
uevent

Et voici un script très utile que tout utilisateur peut exécuter pour afficher les avantages:

#!/bin/bash

cd /sys/devices/virtual/dmi/id/
for f in *; do
        printf "$f "
        cat $f 2>/dev/null || echo "***_Unavailable_***"
done

Aucun nom de fichier ne contient d'espaces. Cette information est donc facilement manipulable par des utilitaires tels que awk, à des fins néfastes!


Génial, c’est génial avec la plupart des systèmes basés sur Linux, si vous ne trouvez pas d’outil, les éléments dont vous avez besoin (système d’exploitation, informations sur le matériel) se trouvent quelque part /sysou /proc. Merci
Eduard Florinescu

2
Impressionnant! Une solution qui fonctionne pour non-root!
Qwertzguy

1
Notez que ces informations DMI peuvent uniquement être applicables aux PC basés sur Intel. J'ai un périphérique réseau piloté par un ordinateur ARM basé sur Linux et ni le dmicode ni le chemin d'accès dans / sys ne sont disponibles.
Mike S

12

Sur les systèmes Linux modernes, vous pouvez facilement faire ce genre de choses en tant qu'utilisateur:

cat /sys/devices/virtual/dmi/id/sys_vendor

cat /sys/devices/virtual/dmi/id/product_name

Cela fonctionne également bien pour CoreOS, qui n’est pas livré avec dmidecode.

Remarque : Ceci a été mentionné dans d'autres réponses / commentaires, mais nous espérons qu'il est plus visible ici, car c'est une méthode beaucoup plus facile que d'utiliser dmidecode.



4

Tout le monde ici parle de l'excellente dmidecodecommande et du -tparamètre, mais sudo lshw -shortvous obtenez également facilement le nom du produit et son modèle:

$ sudo lshw -short
H/W path       Device     Class          Description
====================================================
                          system         UX303UB (ASUS-NotebookSKU)
/0                        bus            UX303UB

Autres commandes intéressantes pour obtenir des informations sur le matériel:

  • lscpu # Mieux que / proc / cpuinfo
  • lsusb [-v]
  • lsblk[-a] # Mieux que df -h. Bloquer les informations sur le périphérique.
  • sudo hdparm /dev/sda1

Hormis lshw, aucune de ces commandes ne répond à la question posée par le PO. Ce sont des utilitaires très utiles, oui, mais pas exactement dans le cadre de la question ...
Shadur

@shadur pourquoi vous me votez? Je réponds à la question de la même manière que toute autre réponse, puis je propose simplement des informations supplémentaires utiles, qui sont plutôt intéressantes pour un message de qualité.
Pablo Un

2

L'outil d'informations système inxi affiche les informations proprement et sans avoir à effectuer manuellement toutes les vérifications de dmidecode / / sys. Voir la page de manuel pour la liste complète des fonctionnalités.

Il prend en charge les systèmes avec et sans / sys, bien qu'avec les données / sys, vous n'avez pas besoin d'être root pour obtenir la sortie matérielle complète, avec dmidecode.

$inxi -M
Machine:   Device: desktop Mobo: ASRock model: A770DE+
           BIOS: American Megatrends v: P1.70 date: 09/07/2010

Vous pouvez également, en tant que root, forcer les données à provenir de dmidecode:

#inxi -! 33 -Mxxx ## inxi 2.3.56 and older
#inxi --dmidecode -Mxxx ## inxi 2.9 and newer
Machine:   Device: desktop Mobo: ASRock model: A770DE+
           BIOS: American Megatrends v: P1.70 rv 8.14 date: 09/07/2010 rom size: 1024 kB

inxi est disponible dans les dépôts de la plupart des distributions GNU / Linux ou peut être installé directement en saisissant simplement le script et en l'installant.

Exemple du mode de sortie de base (-b)

$inxi -bxx
System:    Host: my-box Kernel: 4.6-6.1-liquorix-686-pae i686 (32 bit gcc: 5.4.1)
           Desktop: Xfce 4.12.3 (Gtk 2.24.30) dm: lightdm
           Distro: Debian GNU/Linux 7.0
Machine:   Device: desktop Mobo: ASRock model: A770DE+
           BIOS: American Megatrends v: P1.70 date: 09/07/2010
CPU:       Dual core AMD Athlon 64 X2 5000+ (-MCP-) speed/max: 1000/2600 MHz
Graphics:  Card: NVIDIA GT218 [GeForce 210] bus-ID: 02:00.0 chip-ID: 10de:0a65
           Display Server: X.Org 1.19.0 driver: nvidia
           Resolution: 1280x1024@60.02hz, 1280x1024@60.02hz
           GLX Renderer: GeForce 210/PCIe/SSE2/3DNOW!
           GLX Version: 3.3.0 NVIDIA 340.101 Direct Rendering: Yes
Network:   Card: Intel 82574L Gigabit Network Connection
           driver: e1000e v: 3.2.6-k port: c800
           bus-ID: 01:00.0 chip-ID: 8086:10d3
Drives:    HDD Total Size: 1080.2GB (36.8% used)
Info:      Processes: 313 Uptime: 26 days Memory: 4457.2/8094.0MB
           Init: systemd v: 232 runlevel: 5 default: 3
           Gcc sys: 6.3.0 alt: 4.0/4.2/4.4/4.5/4.6/4.7/4.8/4.9/5
           Client: Shell (bash 4.4.51 running in xfce4-terminal) inxi: 2.3.8

Nouveau format de sortie dans inxi 3.x

inxi -bxxxzy80
System:
  Host: yawn Kernel: 4.17.0-10.1-liquorix-amd64 x86_64 bits: 64 compiler: gcc 
  v: 7.3.0 Desktop: Xfce 4.12.4 tk: Gtk 2.24.31 info: xfce4-panel wm: xfwm4 
  dm: lightdm 1.18.3 Distro: Debian GNU/Linux buster/sid 
Machine:
  Type: Desktop System: Gigabyte product: X470 AORUS ULTRA GAMING v: N/A 
  serial: <filter> 
  Mobo: Gigabyte model: X470 AORUS ULTRA GAMING-CF v: x.x serial: <filter> 
  UEFI [Legacy]: American Megatrends v: F2 date: 03/14/2018 
CPU:
  6-Core: AMD Ryzen 5 2600 type: MT MCP arch: Zen speed: 2300 MHz 
  min/max: 1550/3400 MHz 
Graphics:
  Card-1: NVIDIA GT218 [GeForce 210] vendor: Gigabyte driver: nvidia 
  v: 340.107 bus ID: 09:00.0 chip ID: 10de:0a65 
  Display: x11 server: X.Org 1.20.0 driver: nvidia 
  resolution: 1280x1024~60Hz, 1280x1024~60Hz 
  OpenGL: renderer: GeForce 210/PCIe/SSE2 v: 3.3.0 NVIDIA 340.107 
  direct render: Yes 
Network:
  Card-1: Intel I211 Gigabit Network driver: igb v: 5.4.0-k port: f000 
  bus ID: 06:00 chip ID: 8086:1539 
  Card-2: Apple Ethernet Adapter [A1277] type: USB driver: asix bus ID: 1:13 
  chip ID: 05ac:1402 
Drives:
  Local Storage: total: 1.08 TiB used: 496.05 GiB (45.0%) 
Info:
  Processes: 339 Uptime: 3d 6h 22m Memory: 31.43 GiB used: 4.04 GiB (12.8%) 
  Init: systemd v: 239 runlevel: 5 Compilers: gcc: 8.1.0 alt: 5/6/7/8 
  Shell: bash v: 4.4.23 running in: xfce4-terminal inxi: 3.0.20

À l'air cool. Je me demande s’il est possible que cet outil retourne les numéros de série du système ou de la carte. Vous n’avez alors pas besoin de root pour effectuer une introspection de système comme celle-ci. (Je suppose que la réponse est "non").
Mike S

Avant une modification du noyau Linux, qui crée le système de fichiers / sys, vous pouvez obtenir les numéros de série de ces éléments sans être root, mais après la modification, qui est totalement hors du contrôle d’inxi, vous devez être root et il n'y a aucun moyen de contourner ce problème. De toute évidence, il s’agissait d’une décision idiote et d’une régression fondée sur une mauvaise idée que quelqu'un avait, mais rien ne peut faire pour résoudre ce problème. sudo inxi -Mxxx renvoie toujours les publications en série. Sur certains systèmes, aucun sudo n'est requis, cela dépend de la version du noyau, je pense.
Lizardx

Notez que inxi 3.0 et les versions plus récentes n'utilisent pas -! 33 plus, ils utilisent --dmidecode
Lizardx

1

Vous pouvez utiliser:

dmidecode -t 1

Ce qui sort quelque chose comme:

System Information
    Manufacturer: Dell Inc.
    Product Name: PowerEdge R210 II
    Version: Not Specified
    Serial Number: 1234ABC
    UUID: ABABABAB-0101-2323-5A5A-ABCDEF123456
    Wake-up Type: Power Switch
    SKU Number: Not Specified
    Family: Not Specified

1
# dmidecode -t baseboard

si pris en charge par le fabricant, vous donnera les informations.

dmidecode est un outil permettant de vider le contenu de la table DMI (certains disent SMBIOS) d'un ordinateur dans un format lisible par l'homme. Ce tableau contient une description des composants matériels du système, ainsi que d'autres informations utiles telles que les numéros de série et la révision du BIOS. Grâce à cette table, vous pouvez récupérer ces informations sans avoir à rechercher le matériel réel. Bien que ce soit un bon point en termes de vitesse et de sécurité des rapports, cela rend également les informations présentées potentiellement peu fiables.


grepa besoin de citations.
Joshua Detwiler

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.