Linux下顯示硬體信息
Linux下顯示硬體信息
作者:FinalBSD
原載: http://www.sanotes.net/html/y2009/312.html
版權所有。轉載時必須以鏈接形式註明作者和原始出處及本聲明。
dmidecode以一種可讀的方式dump出機器的DMI(Desktop Management Interface)信息。
這些信息包括了硬體以及BIOS,既可以得到當前的配置,也可以得到系統支持的最大配置,比如說支持的最大內存數等。
DMI有人也叫SMBIOS(System Management BIOS),這兩個標準都由DMTF(Desktop Management Task Force)開發。
dmidecode的輸出格式一般如下:
----------------------------------------
Handle 0x0002
DMI type 2, 8 bytes
Base Board Information
Manufacturer:Intel
Product Name: C440GX+
Version: 727281-0001
Serial Number: INCY92700942
----------------------------------------
其中的前三行都稱為記錄頭(recoce Header), 其中包括了:
1、recode id(handle): DMI表中的記錄標識符,這是唯一的,比如上例中的Handle 0x0002。
2、dmi type id: 記錄的類型,譬如說:BIOS,Memory,上例是type 2,即"Base Board Information"
3、recode size: DMI表中對應記錄的大小,上例為8 bytes.(不包括文本信息,所有實際輸出的內容比這個size要更大。)
記錄頭之後就是記錄的值:
4、decoded values: 記錄值可以是多行的,比如上例顯示了主板的製造商(manufacturer)、
model、version以及serial Number。
dmidecode的使用方法
1. 最簡單的的顯示全部dmi信息:
# dmidecode
這樣將輸出所有的dmi信息,你可能會被一大堆的信息嚇壞,通常可以使用下面的方法。
2.更精簡的信息顯示:
# dmidecode -q
-q(--quite) 只顯示必要的信息,這個很管用哦。
3.顯示指定類型的信息:
通常我只想查看某類型,比如CPU,內存或者磁碟的信息而不是全部的。這可以使用-t(--type TYPE)來指定信息類型:
# dmidecode -t bios
# dmidecode -t bios, processor (這種方式好像不可以用,必須用下面的數字的方式)
# dmidecode -t 0,4 (顯示bios和processor)
dmidecode到底支持哪些type?
這些可以在man dmidecode裡面看到:
文本參數支持:
bios, system, baseboard, chassis, processor, memory, cache, connector, slot
數字參數支持很多:(見附錄)
4.通過關鍵字查看信息:
比如只想查看序列號,可以使用:
# dmidecode -s system-serial-number
-s (--string keyword)支持的keyword包括:
---------------------------------------------------------------------------------------------------------------------
bios-vendor,bios-version, bios-release-date,
system-manufacturer, system-product-name, system-version, system-serial-number,
baseboard-manu-facturer,baseboard-product-name, baseboard-version,
baseboard-serial-number, baseboard-asset-tag,
chassis-manufacturer, chas-sis-version, chassis-serial-number, chassis-asset-tag,
processor-manufacturer, processor-version.
---------------------------------------------------------------------------------------------------------------------
5.示例
5.1 查看當前內存和支持的最大內存
Linux下,可以使用free或者查看meminfo來獲得當前的物理內存: # free
total used free shared buffers cached
Mem: 8182532 8010792 171740 0 148472 4737896
-/+ buffers/cache: 3124424 5058108
Swap: 4192956 3304 4189652
# grep MemTotal /proc/meminfo
MemTotal: 8182532 kB
這裡顯示了當前伺服器的物理內存是8GB。
伺服器到底能擴展到多大的內存?
#dmidecode -t 16
# dmidecode 2.7
SMBIOS 2.4 present.
Handle 0x0013, DMI type 16, 15 bytes.
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: Multi-bit ECC
Maximum Capacity: 64 GB (可擴展到64GB)
Error Information Handle: Not Provided
Number Of Devices: 4但是,事實不一定如此,因此插槽可能已經插滿了。也就是我們還必須查清這裡的8G到底是4*2GB,
2*4GB還是其他? 如果是4*2GB,那麼儘管可以擴展到64GB,但是插槽已經插滿,無法擴展了: #dmidecode -t 17
# dmidecode 2.7
SMBIOS 2.4 present.
Handle 0x0015, DMI type 17, 27 bytes.
Memory Device
Array Handle: 0x0013
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 2048 MB 【插槽1有1條2GB內存】
Form Factor: DIMM
Set: None
Locator: DIMM00
Bank Locator: BANK
Type: Other
Type Detail: Other
Speed: 667 MHz (1.5 ns)
Manufacturer:
Serial Number: BZACSKZ001
Asset Tag: RAM82
Part Number: MT9HTF6472FY-53EA2
Handle 0x0017, DMI type 17, 27 bytes.
Memory Device
Array Handle: 0x0013
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 2048 MB 【插槽2有1條2GB內存】
Form Factor: DIMM
Set: None
Locator: DIMM10
Bank Locator: BANK
Type: Other
Type Detail: Other
Speed: 667 MHz (1.5 ns)
Manufacturer:
Serial Number: BZACSKZ001
Asset Tag: RAM83
Part Number: MT9HTF6472FY-53EA2
Handle 0x0019, DMI type 17, 27 bytes.
Memory Device
Array Handle: 0x0013
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 2048 MB 【插槽3有1條2GB內存】
Form Factor: DIMM
Set: None
Locator: DIMM20
Bank Locator: BANK
Type: Other
Type Detail: Other
Speed: 667 MHz (1.5 ns)
Manufacturer:
Serial Number: BZACSKZ001
Asset Tag: RAM84
Part Number: MT9HTF6472FY-53EA2
Handle 0x001B, DMI type 17, 27 bytes.
Memory Device
Array Handle: 0x0013
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 2048 MB 【插槽4有1條2GB內存】
Form Factor: DIMM
Set: None
Locator: DIMM30
Bank Locator: BANK
Type: Other
Type Detail: Other
Speed: 667 MHz (1.5 ns)
Manufacturer:
Serial Number: BZACSKZ001
Asset Tag: RAM85
Part Number: MT9HTF6472FY-53EA2根據上面輸出可以發現,如果要擴展,只有將上面的內存條換成16GB的,才能達到4*16GB=64GB的最大支持內存。
附錄:
dmidecode支持的數字參數:
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 Supplylshw
lshw(Hardware Lister)是另外一個可以查看硬體信息的工具,不僅如此,它還可以用來做一些硬體的benchmark。
這個工具其實就是用/proc裡面讀取一些文件來顯示相關的信息,它用到了如下文件和目錄(下的文件):
/proc/cpuinfo 顯示CPU信息
/proc/bus/pci 顯示pci信息
/proc/scsi 顯示scsi信息
/proc/net/dev 顯示網路設備信息
/proc/kcore 從內存映像讀取相關信息
/proc/ide 顯示IDE設備信息
/proc/devices
/proc/mounts
/proc/fstab
下載和安裝:
-------------------------------------------------------------
cd /tmp
wget http://ezix.org/software/files/lshw-B.02.14.tar.gz
tar lshw-B.02.14.tar.gz
cd lshw-B.02.14
make && make install
-------------------------------------------------------------
用法:
1.最簡單的用法:
# lshw
和dmidecode一樣,輸出一大堆的東西。
2. 以html/xml格式輸出
# lshw -html >info.html
# lshw -xml >info.xml
3. 顯示設備列表,輸出包括設備路徑(path)、類別(class)以及簡單描述
# lshw -short
4. 顯示設備列表,輸出包括匯流排信息、SCSI、USB、IDE、PCI地址等。
# lshw -businfo
5. 顯示指定類別的設備
# lshw -C class
# lshw -class class
如:
lshw -C network 顯示網卡
這裡的class可以通過lshw -short來查看。比如
# lshw -C memory
相對來說lshw相信的信息比較簡單,沒有dmidecode豐富。
《解決方案》
謝謝分享