Bagaimana saya dapat menemukan model perangkat keras di Linux?

89

Saya menggunakan utilitas informasi sistem untuk mengambil nomor model sistem, dan juga dari motherboard.

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

Apakah ada cara untuk mendapatkan nomor model, dalam hal ini 2306CTO, di Linux?

Eduard Florinescu
sumber
2
Lihatlah ini
Achu
2
Untuk kejelasan sepertinya Anda tertarik dengan produk perangkat keras, tidak khusus motherboard. Misalnya, "ThinkPad X230" adalah jenis komputer, bukan motherboard.
Bratchley
1
Anda juga bisa mendapatkan beberapa info tanpa paket tambahan dengan menjalankan perintah dmesg atau memeriksa / var / log / dmesg *.
Blake Russo

Jawaban:

114

menggunakan dmidecode | grep -A3 '^System Information'perintah. Di sana Anda akan menemukan semua informasi dari BIOS dan perangkat keras. Ini adalah contoh pada tiga mesin yang berbeda (ini adalah kutipan dari output lengkap):

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
sumber
25
FWIW, mungkin lebih baik untuk membiasakan penyaringan untuk jenis DMI tertentu daripada menggunakan grep. Untuk keseluruhan model perangkat keras itu dmidecode -t1. Dengan begitu Anda memiliki cara sederhana untuk menarik data dari dmidecode dan hanya perlu mengingat tipe DMI yang umum. Kebiasaan menjadi sangat berguna ketika memeriksa pemasangan RAM ( dmidecode -t17) ketika grep dapat membuat beberapa keluaran yang benar-benar jelek jika Anda mengunci data yang salah. Plus, output dari -tlebih lengkap
Bratchley
@ JoelDavis, saya tidak mengetahui opsi itu sebelumnya. Saya akan menggunakannya. Terima kasih.
eppesuig
13
Catatan: membutuhkan root. Jika Anda ingin semua info yang Anda miliki izin untuk di bawah pengguna saat ini, gunakan: cat /sys/devices/virtual/dmi/id/*(dan itu memang memungkinkan Anda untuk mendapatkan nama model dan jenis menggunakan pengguna normal)
qwertzguy
Memipipkan output dari dmidecode tanpa argumen ke grep memang menarik, tetapi bukan cara yang paling efisien untuk mendapatkan informasi. dmidecode dapat mencetak dengan tepat apa yang diminta OP dengan menentukan string kata kunci 'sistem-produk-nama': sudo dmidecode -s-sistem-nama-produk
cjac
Saya pikir perlu dicatat bahwa sistem yang lebih lama tidak memiliki bendera yang tersedia dmidecode, atau bahkan halaman manual. Jawaban di atas adalah jawaban yang paling portabel untuk Linux, saya kira. Tanda -tdan -sberguna untuk sistem yang lebih baru.
Joshua Detwiler
32

Coba sudo dmidecode -t baseboarduntuk informasi lengkap tentang DMI t konten yang relevan dengan alas tiang Anda, dalam bentuk yang dapat dibaca manusia. Untuk hanya Nama Produk Sistem , Anda dapat menggunakan salah (tipe dmidecode -suntuk mendapatkan daftar s Trings kata kunci):

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

Opsi lain yang relevan untuk info motherboard adalah

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

Coba sudo dmidecode -suntuk daftar lengkap string DMI sistem yang tersedia.

eToThePiIPower
sumber
24

Sebagai catatan, banyak informasi ini tersedia di / sys / devices / virtual / dmi / id di Linuces modern (yaitu, sejak setidaknya 2011), dan banyak jika itu - terutama, tidak termasuk nomor seri - dapat dibaca oleh pengguna biasa . Untuk menjawab pertanyaan pengirim asli, product_nameadalah file yang berisi nama model sistem.

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

Dan di sini akan ada skrip berguna-keren yang bisa dijalankan oleh pengguna mana pun, untuk menampilkan kebaikan:

#!/bin/bash

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

Tidak ada nama file yang memiliki ruang di dalamnya, sehingga informasi ini mudah dimanipulasi oleh utilitas seperti awk, untuk tujuan jahat Anda sendiri!

Mike S
sumber
Hebat, itu hebat dengan berbasis linux sebagian besar jika Anda tidak menemukan alat yang Anda butuhkan (OS, info hardware) ada di suatu tempat di /sysatau /proc. Terima kasih
Eduard Florinescu
2
Luar biasa! Solusi yang berfungsi untuk non-root!
qwertzguy
1
Perhatikan bahwa informasi dmi ini hanya dapat berlaku untuk PC berbasis Intel. Saya memiliki perangkat jaringan yang digerakkan oleh komputer ARM berbasis Linux, dan tidak ada dmicode atau path di / sys yang tersedia.
Mike S
12

Pada sistem Linux modern, Anda dapat dengan mudah melakukan hal-hal seperti ini sebagai pengguna mana pun:

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

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

Ini juga berfungsi dengan baik untuk CoreOS, yang tidak disertakan bersama dmidecode.

Catatan : Ini telah disebutkan dalam jawaban / komentar lain, tetapi mudah-mudahan lebih terlihat di sini, karena ini adalah metode yang jauh lebih mudah daripada menggunakan dmidecode.

spkane
sumber
6

Mencoba:

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

Semua orang di sini berbicara tentang dmidecodeperintah dan -tparameter hebat, tetapi dengan sudo lshw -shortAnda juga mendapatkan dengan mudah nama dan model produk:

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

Perintah hebat lainnya untuk mendapatkan info perangkat keras:

  • lscpu # Lebih baik dari / proc / cpuinfo
  • lsusb [-v]
  • lsblk[-a] # Lebih baik daripada df -h. Blokir Informasi Perangkat.
  • sudo hdparm /dev/sda1
Pablo A
sumber
Selain dari lshw, tidak ada perintah yang menjawab pertanyaan OP. Mereka adalah utilitas yang sangat berguna, ya, tetapi tidak persis dalam lingkup pertanyaan ...
Shadur
@ Shadur mengapa Anda menurunkan saya? Saya menjawab pertanyaan dengan cara yang dilakukan oleh jawaban lain, dan kemudian hanya menawarkan informasi tambahan yang bermanfaat, apa itu perintah cantik pada setiap posting hebat.
Pablo A
2

Alat informasi sistem inxi menunjukkan informasi dengan bersih dan tanpa harus melakukan semua pemeriksaan dmidecode / / sys secara manual. Lihat halaman manual untuk daftar fitur lengkap.

Ini mendukung sistem dengan dan tanpa / sys, meskipun dengan / sys data, Anda tidak perlu menjadi root untuk mendapatkan output perangkat keras lengkap, dengan dmidecode yang Anda lakukan.

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

Anda dapat, sebagai root, juga memaksa data berasal dari 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 tersedia di repo dari sebagian besar distribusi GNU / Linux, atau dapat diinstal langsung hanya dengan mengambil skrip dan menginstalnya.

Contoh mode keluaran dasar (-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

Format output baru dalam 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
sumber
Terlihat bagus. Saya ingin tahu apakah ada cara agar alat ini mengembalikan sistem atau nomor seri papan? Maka Anda tidak perlu root untuk introspeksi sistem apa pun seperti ini. (Saya kira jawabannya adalah "tidak").
Mike S
Sebelum perubahan di kernel linux, yang menciptakan sistem file / sys, Anda bisa mendapatkan nomor seri untuk hal-hal ini tanpa menjadi root, tetapi setelah perubahan, yang benar-benar di luar kendali inxi, Anda harus root, dan tidak ada cara untuk mengatasi itu. Jelas itu adalah keputusan konyol dan regresi berdasarkan ide buruk seseorang, tetapi tidak ada yang bisa dilakukan untuk menyelesaikan masalah itu. sudo inxi -Mxxx selalu mengembalikan serial. Pada beberapa sistem tidak diperlukan sudo, tergantung pada versi kernel yang saya pikir.
Lizardx
Perhatikan bahwa inxi 3.0 dan yang lebih baru tidak menggunakan -! 33 lagi, mereka menggunakan --dmidecode
Lizardx
1

Anda dapat gunakan:

dmidecode -t 1

Yang menghasilkan sesuatu seperti:

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

jika didukung oleh pabrikan, akan memberi Anda informasi.

dmidecode adalah alat untuk membuang DMI komputer (ada yang bilang SMBIOS) isi tabel dalam format yang bisa dibaca manusia. Tabel ini berisi deskripsi komponen perangkat keras sistem, serta informasi lain yang bermanfaat seperti nomor seri dan revisi BIOS. Berkat tabel ini, Anda dapat mengambil informasi ini tanpa harus mencari perangkat keras yang sebenarnya. Meskipun ini adalah poin yang baik dalam hal kecepatan dan keamanan laporan, ini juga membuat informasi yang disajikan mungkin tidak dapat diandalkan.

Necktwi
sumber
grepbutuh penawaran.
Joshua Detwiler
1

Atau ini

lshw -short | grep system
DimiDak
sumber