如何使用dmidecode命令查看硬件信息


引言

當我們需要獲取機器硬件信息時,可使用linux系統自帶的dmidecode工具進行查詢。

dmidecode命令通過讀取系統DMI表,顯示服務器硬件和BIOS信息。除了可使用dmidecode查詢機器現有配置,還可以查詢機器最大的可支持配置(例如現有的內存,機器最多可支持的內存)

 

dmidecode命令輸出格式

執行dmidecode命令,輸出如下:

#dmidecode | head -10
# dmidecode 2.9
SMBIOS 2.4 present.
25 structures occupying 844 bytes.
Table at 0x000DC010.
 
Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
  Vendor: LENOVO
  Version: 05CN39WW(V1.10)     
  Release Date: 08/29/2007

以上輸出中,前面4條是dmidecode命令整體信息,“25 structures occupying 844 bytes.”該行指示該機器的DMI記錄項總共有25條。

 

后面就是DMI表中各條記錄,每條記錄的輸出格式如下:

Record Header:  Handle {record id}, DMI type {dmi type id}, {record size} bytes

Record Value:   {multi line record value}

 

record id: DMI表中每條記錄唯一的標識

dmi type id記錄的類型,比如BIOS,Memory

record size: DMI表中該條記錄的大小

multi line record values多行與該DMI類型相關的字段描述

 

DMI類型

DMI表包含以下DMI類型,每個DMI Type值對應一項硬件信息:

Type   Information
----------------------------------------
  0      BIOS
  1      System
  2      Base Board
  3      Chassis
  4      Processor
  5      Memory Controller
  6      Memory Module
  7      Cache
  8      Port Connector
  9      System Slots
  10     On Board Devices
  11     OEM Strings
  12     System Configuration Options
  13     BIOS Language
  14     Group Associations
  15     System Event Log
  16     Physical Memory Array
  17     Memory Device
  18     32-bit Memory Error
  19     Memory Array Mapped Address
  20     Memory Device Mapped Address
  21     Built-in Pointing Device
  22     Portable Battery
  23     System Reset
  24     Hardware Security
  25     System Power Controls
  26     Voltage Probe
  27     Cooling Device
  28     Temperature Probe
  29     Electrical Current Probe
  30     Out-of-band Remote Access
  31     Boot Integrity Services
  32     System Boot
  33     64-bit Memory Error
  34     Management Device
  35     Management Device Component
  36     Management Device Threshold Data
  37     Memory Channel
  38     IPMI Device
  39     Power Supply

 

根據上表我們亦可知道,可以通過dmidecode命令查到哪些硬件信息,例如要查詢主板(Base Board)的信息,可以執行以下命令:

#dmidecode -t 2
# dmidecode 2.9
SMBIOS 2.4 present.
 
Handle 0x0002, DMI type 2, 8 bytes
Base Board Information
Manufacturer: LENOVO
Product Name: IGT30
Version: REFERENCE
Serial Number: 2083601501567 

 

除了使用DMI Type_id作為索引進行查詢外,還可以通過設備關鍵詞查詢,設備關鍵詞與Type_id對應關系如下:

Keyword       Types
------------------------------
bios          0, 13
system        1, 12, 15, 23, 32
baseboard     2, 10
chassis       3
processor     4
memory        5, 6, 16, 17
cache         7
connector     8
slot          9

這樣,執行“dmidecode –t baseboard”命令將顯示type_id210項的信息。

 

使用dmidecode命令查詢內存(RAM)信息

最后來看個使用dmidecode命令的例子,如何使用dmidecode命令查詢內存信息。

 

首先,可以通過以下命令查詢機器最大支持的內存總量:

#dmidecode -t 16
# dmidecode 2.9
SMBIOS 2.4 present.
 
Handle 0x000D, DMI type 16, 15 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: None
Maximum Capacity: 4 GB
Error Information Handle: Not Provided
Number Of Devices: 2

從以上輸出可知,該機器理論上支持的最大內存為4G

 

然后使用以下命令查詢機器可用的內存:

#grep MemTotal /proc/meminfo
MemTotal:        2055764 kB

可以看到機器可用的內存為2G,也即我們可以再擴2G內存。

 

但是在用的2G內存是怎么組成的?是1條2G內存?是2條1G內存?

我們可以通過以下命令進行查詢:

#dmidecode -t 17
# dmidecode 2.9
SMBIOS 2.4 present.
 
Handle 0x000E, DMI type 17, 27 bytes
Memory Device
Array Handle: 0x000D
Error Information Handle: No Error
Total Width: 32 bits
Data Width: 32 bits
Size: 1024 MB
Form Factor: SODIMM
Set: 1
Locator: M1
Bank Locator: Bank 0
Type: DDR2
⋯⋯
 
Handle 0x000F, DMI type 17, 27 bytes
Memory Device
Array Handle: 0x000D
Error Information Handle: No Error
Total Width: 32 bits
Data Width: 32 bits
Size: 1024 MB
⋯⋯

從以上信息可以看出,該機器插了2條1G的內存。

 

小結

使用linux系統自帶工具dmidecode可以查看機器硬件信息,較常用到以下幾條命令。

查詢機器型號:

#dmidecode | grep -i product
Product Name: TIANYI F41A                     
Product Name: IGT30

查詢內存條數:

#dmidecode -t 17 | grep "Size.*MB" | wc -l
2

查詢物理CPU信息:

#dmidecode -t 4

 

另外也可通過/proc查詢CPU相關信息。

查詢物理CPU個數:

#cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l
1

查詢CPU核數:

#cat /proc/cpuinfo | grep 'core id'| wc -l
2

 

本文翻譯自 How To Get Hardware Information On Linux Using dmidecode Command

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM