Wie finde ich das Hardwaremodell unter Linux?

89

Ich habe ein Systeminformationsdienstprogramm verwendet, um die Modellnummer eines Systems und auch des Motherboards zu ermitteln.

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

Gibt es eine Möglichkeit, die Modellnummer in diesem Fall 2306CTOunter Linux zu ermitteln?

Eduard Florinescu
quelle
2
Aus Gründen der Übersichtlichkeit sind Sie anscheinend an einem Hardwareprodukt interessiert, nicht an dem Motherboard. Beispielsweise ist "ThinkPad X230" ein Computertyp und kein Motherboard.
Bratchley
1
Sie können Informationen auch ohne zusätzliche Pakete abrufen, indem Sie den Befehl dmesg ausführen oder / var / log / dmesg * überprüfen.
Blake Russo

Antworten:

114

mit dem dmidecode | grep -A3 '^System Information'Befehl. Dort finden Sie alle Informationen aus dem BIOS und der Hardware. Dies sind Beispiele für drei verschiedene Maschinen (dies ist ein Auszug aus der gesamten Ausgabe):

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
eppesuig
quelle
25
FWIW, es ist wahrscheinlich besser, sich daran zu gewöhnen, nach bestimmten DMI-Typen zu filtern, als sie zu verwenden grep. Für das gesamte Hardwaremodell wäre das dmidecode -t1. Auf diese Weise haben Sie eine vereinfachte Möglichkeit, Daten aus dmidecode zu ziehen und müssen sich nur an gängige DMI-Typen erinnern. Gewohnheit wird beim Untersuchen von RAM-Installationen ( dmidecode -t17) sehr nützlich, wenn grep eine wirklich hässliche Ausgabe machen kann, wenn Sie die falschen Daten abtasten. Außerdem ist die Ausgabe von -tvollständiger
Bratchley
@ JoelDavis, mir waren diese Optionen vorher nicht bekannt. Ich werde sie benutzen. Vielen Dank.
14.
13
Hinweis: benötigt root. Wenn Sie alle Informationen wünschen, für die Sie unter dem aktuellen Benutzer Berechtigungen haben, verwenden Sie: cat /sys/devices/virtual/dmi/id/*(und es ermöglicht Ihnen, den Modellnamen und die Sortierung unter Verwendung eines normalen Benutzers
abzurufen
Die Ausgabe von dmidecode ohne Argumente an grep weiterzuleiten ist interessant, aber nicht das effizienteste Mittel, um die Informationen zu erhalten. dmidecode kann genau das ausgeben, wonach das OP fragt, indem der Schlüsselwort-String 'system-product-name' angegeben wird: sudo dmidecode -s system-product-name
cjac
Ich denke, es ist erwähnenswert, dass auf älteren Systemen weder Flags verfügbar sind dmidecode, noch eine Manpage. Die Antwort oben ist meiner Meinung nach die am besten für Linux tragbare Antwort. Die -tund -sFlags sind auf neueren Systemen sicher nützlich.
Joshua Detwiler
32

Versuchen Sie sudo dmidecode -t baseboardfür weitere Informationen über die DMI t der Lage , Inhalte zu Ihrer Fußleiste, in einer für Menschen lesbaren Form. Sie können entweder nur den Systemproduktnamen verwenden (geben Sie ein dmidecode -s, um eine Liste der Schlüsselwörter für s trings abzurufen):

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

Andere relevante Optionen für Motherboard-Informationen sind

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

Versuchen Sie, sudo dmidecode -seine vollständige Liste der verfügbaren System-DMI-Zeichenfolgen abzurufen.

eToThePiIPower
quelle
24

Zu Ihrer Information, viele dieser Informationen sind unter / sys / devices / virtual / dmi / id auf modernen Linuces verfügbar (dh seit mindestens 2011), und viele, insbesondere ohne Seriennummern, sind für reguläre Benutzer lesbar . Um die Frage des ursprünglichen Posters zu beantworten, product_nameist die Datei, die den Modellnamen des Systems enthält.

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

Und hier wäre ein handliches Skript, das jeder Benutzer ausführen könnte, um die Güte anzuzeigen:

#!/bin/bash

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

Da in Dateinamen keine Leerzeichen enthalten sind, können diese Informationen leicht von Hilfsprogrammen wie awk für Ihre eigenen schändlichen Zwecke bearbeitet werden!

Mike S
quelle
Großartig, das ist großartig mit Linux-basierten Systemen. Die meisten Tools (Betriebssystem, Hardware-Informationen) befinden sich irgendwo in /sysoder, wenn Sie kein Tool finden /proc. Danke
Eduard Florinescu
2
Genial! Eine Lösung, die auch für Nicht-Root-Benutzer funktioniert!
Qwertzguy
1
Beachten Sie, dass diese DMI-Informationen möglicherweise nur für Intel-basierte PCs gelten. Ich habe ein Netzwerkgerät, das von einem Linux-basierten ARM-Computer angetrieben wird, und weder DMICODE noch der Pfad in / sys sind verfügbar.
Mike S
12

Auf modernen Linux-Systemen können Sie als jeder Benutzer auf einfache Weise Folgendes tun:

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

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

Dies funktioniert auch gut für CoreOS, das nicht im Lieferumfang enthalten ist dmidecode.

Hinweis : Dies wurde in anderen Antworten / Kommentaren erwähnt, ist hier jedoch hoffentlich sichtbarer, da dies eine viel einfachere Methode als die Verwendung ist dmidecode.

spkane
quelle
6

Versuchen:

sudo dmidecode -s baseboard-product-name
Stéphane Chazelas
quelle
4

Jeder hier spricht über den großartigen dmidecodeBefehl und den -tParameter, aber bei sudo lshw -shortIhnen erhalten Sie auch leicht den Produktnamen und das Modell:

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

Andere großartige Befehle zum Abrufen von Hardwareinformationen:

  • lscpu # Besser als / proc / cpuinfo
  • lsusb [-v]
  • lsblk[-a] # Besser als df -h. Geräteinformationen blockieren.
  • sudo hdparm /dev/sda1
Pablo A
quelle
Abgesehen von lshw beantwortet keiner dieser Befehle die vom OP gestellte Frage. Sie sind sehr nützliche Dienstprogramme, ja, aber nicht genau im Rahmen der Frage ...
Shadur
@shadur warum hast du mich abgelehnt? Ich beantworte die Frage auf eine Art und Weise, wie es jede andere Antwort tut, und biete dann einfach zusätzliche nützliche Informationen an, was für einen tollen Beitrag ein hübscher Befehl ist.
Pablo A
2

Das Systeminformationstool inxi zeigt die Informationen sauber und ohne alle Überprüfungen von dmidecode / / sys manuell durchführen zu müssen. Die vollständige Funktionsliste finden Sie auf der Manpage .

Es unterstützt Systeme mit und ohne / sys, obwohl Sie mit / sys-Daten nicht als Root angemeldet sein müssen, um die vollständige Hardwareausgabe mit dem von Ihnen verwendeten dmidecode zu erhalten.

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

Sie können als root auch erzwingen, dass die Daten von dmidecode kommen:

#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 ist in den Repos der meisten GNU / Linux-Distributionen verfügbar oder kann direkt installiert werden, indem Sie das Skript einfach herunterladen und installieren.

Beispiel für den grundlegenden Ausgabemodus (-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: [email protected], [email protected]
           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

Neues Ausgabeformat in 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
Lizardx
quelle
Sieht gut aus. Ich frage mich, ob es eine Möglichkeit gibt, dass dieses Tool System- oder Platinen-Seriennummern zurückgibt. Dann brauchen Sie für so ziemlich jede System-Introspektion kein root. (Ich vermute, die Antwort ist "nein").
Mike S
Vor einer Änderung im Linux-Kernel, der das / sys-Dateisystem erstellt, könnten Sie die Seriennummern für diese Dinge erhalten, ohne root zu sein, aber nach der Änderung, die völlig außerhalb der Kontrolle von inxi liegt, müssen Sie root sein und Daran lässt sich nichts ändern. Offensichtlich war das eine dumme Entscheidung und eine Regression, die auf einer schlechten Idee beruhte, die jemand hatte, aber es gibt nichts, was inxi tun kann, um dieses Problem zu lösen. sudo inxi -Mxxx gibt immer Serien zurück. Auf einigen Systemen wird kein Sudo benötigt, hängt von der Kernelversion ab, die ich denke.
Lizardx
Beachten Sie, dass inxi 3.0 und neuer - nicht verwenden! 33 mehr verwenden sie --dmidecode
Lizardx
1

Sie können verwenden:

dmidecode -t 1

Welche Ausgaben wie:

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
Peque
quelle
1
# dmidecode -t baseboard

Wenn vom Hersteller unterstützt, erhalten Sie die Informationen.

dmidecode ist ein Tool zum Speichern des Inhalts einer DMI-Tabelle (manche sagen SMBIOS) eines Computers in einem für Menschen lesbaren Format. Diese Tabelle enthält eine Beschreibung der Hardwarekomponenten des Systems sowie weitere nützliche Informationen wie Seriennummern und BIOS-Revision. Dank dieser Tabelle können Sie diese Informationen abrufen, ohne nach der tatsächlichen Hardware suchen zu müssen. Dies ist zwar ein guter Punkt in Bezug auf die Berichtsgeschwindigkeit und die Sicherheit, macht jedoch die präsentierten Informationen möglicherweise unzuverlässig.

Necktwi
quelle
grepbraucht Zitate.
Joshua Detwiler
1

Oder dieses

lshw -short | grep system
DimiDak
quelle