Linux下检查和收集硬件信息
2014-06-12 14:59:43 阿炯

在Linux系统中,有许多指令可用于查询主机的硬件信息。一些命令只针对特定的硬件组件,比如CPU、内存,另外一些命令可以查询多个硬件信息。

本文只是简单的获取硬件信息的基本命令使用,包括:lscpu、hwinfo、lshw、lspci、lsblk、lsusb、dmidecode、hardinfo等,它们在正常运行可能要在最高权限下。

1、lscpu

用于查询CPU信息。

$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 23
Stepping:              6
CPU MHz:               1600.000
BogoMIPS:              5585.96
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              6144K
NUMA node0 CPU(s):     0,1

2、lshw

显示硬件信息列表

lshw(Hardware Lister)命令应用普遍,它可通过个人需求而列出多种不同的硬件参数:CPU、内存、硬盘、USB控制器、lshw卡片等等,本质上就是从/proc目录不同文件中中提取对应的硬件信息。下面将简单查看本机的硬件信息,与lspci有些类似。它是另外一个可以查看硬件信息的工具,不仅如此,其还可以用来做一些硬件的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
        
用法:
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

这里的class可以通过lshw -short来查看,比如:
# lshw -C memory
       
相对来说lshw相信的信息比较简单,没有dmidecode丰富。

$ lshw -short
WARNING: you should run this program as super-user.
H/W path       Device  Class          Description
=================================================
                       system         Computer
/0                     bus            Motherboard
/0/0                   memory         7900MiB System memory
/0/1                   processor      Intel(R) Core(TM)2 Duo CPU     T9600  @ 2.80GHz
/0/100                 bridge         Mobile 4 Series Chipset Memory Controller Hub
/0/100/1               bridge         Mobile 4 Series Chipset PCI Express Graphics Port
/0/100/1/0             display        RV635 [Mobility Radeon HD 3650]
/0/100/2               display        Mobile 4 Series Chipset Integrated Graphics Controller
/0/100/3               communication  Mobile 4 Series Chipset MEI Controller
/0/100/3.3             communication  Mobile 4 Series Chipset AMT SOL Redirection
/0/100/19      eth0    network        82567LM Gigabit Network Connection
/0/100/1a              bus            82801I (ICH9 Family) USB UHCI Controller #4
/0/100/1a.1            bus            82801I (ICH9 Family) USB UHCI Controller #5
/0/100/1a.2            bus            82801I (ICH9 Family) USB UHCI Controller #6
/0/100/1a.7            bus            82801I (ICH9 Family) USB2 EHCI Controller #2
/0/100/1b              multimedia     82801I (ICH9 Family) HD Audio Controller
/0/100/1c              bridge         82801I (ICH9 Family) PCI Express Port 1
/0/100/1c.1            bridge         82801I (ICH9 Family) PCI Express Port 2
/0/100/1c.1/0  wlan0   network        PRO/Wireless 5100 AGN [Shiloh] Network Connection
/0/100/1c.3            bridge         82801I (ICH9 Family) PCI Express Port 4
/0/100/1c.4            bridge         82801I (ICH9 Family) PCI Express Port 5
/0/100/1d              bus            82801I (ICH9 Family) USB UHCI Controller #1
/0/100/1d.1            bus            82801I (ICH9 Family) USB UHCI Controller #2
/0/100/1d.2            bus            82801I (ICH9 Family) USB UHCI Controller #3
/0/100/1d.7            bus            82801I (ICH9 Family) USB2 EHCI Controller #1
/0/100/1e              bridge         82801 Mobile PCI Bridge
/0/100/1e/0            bridge         RL5c476 II
/0/100/1e/0.1          bus            R5C832 IEEE 1394 Controller
/0/100/1e/0.2          generic        R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter
/0/100/1e/0.4          generic        R5C592 Memory Stick Bus Host Adapter
/0/100/1e/0.5          generic        xD-Picture Card Controller
/0/100/1f              bridge         ICH9M-E LPC Interface Controller
/0/100/1f.2            storage        82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode]
/0/100/1f.3            bus            82801I (ICH9 Family) SMBus Controller

3、hwinfo

更全面硬件信息。

hwinfo类似于lshw,也能查询硬件信息,且应用广泛。它也能输出多个硬件部分的详细或者简要信息,但是不同的是有时hwinfo比lshw的信息更详细。

通过'hwinfo -short'可以得到比较简单硬件信息。

4、lspci

查询系统总线上的设备。

lsppci命令可列出PCI总线的信息以及连接到PCI总线上的设备信息,比如VGA适配器、SATA控制器、其他模块等等。lspci工具是pciutils包的一部分,所以在使用lspci之前,需要安装pciutils包。可在指令后跟多个(-vvv)的选项来调整输出的详细程度。

$ lspci
00:00.0 Host bridge: Intel Corporation Mobile 4 Series Chipset Memory Controller Hub (rev 07)
00:01.0 PCI bridge: Intel Corporation Mobile 4 Series Chipset PCI Express Graphics Port (rev 07)
00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07)
00:03.0 Communication controller: Intel Corporation Mobile 4 Series Chipset MEI Controller (rev 07)
00:03.3 Serial controller: Intel Corporation Mobile 4 Series Chipset AMT SOL Redirection (rev 07)
00:19.0 Ethernet controller: Intel Corporation 82567LM Gigabit Network Connection (rev 03)
00:1a.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 03)
00:1a.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 03)
00:1a.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 03)
00:1a.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 03)
00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 03)
00:1c.1 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 2 (rev 03)
00:1c.3 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 4 (rev 03)
00:1c.4 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 5 (rev 03)
00:1d.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03)
00:1d.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03)
00:1d.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 03)
00:1d.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 93)
00:1f.0 ISA bridge: Intel Corporation ICH9M-E LPC Interface Controller (rev 03)
00:1f.2 SATA controller: Intel Corporation 82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode] (rev 03)
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 03)
01:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI RV635 [Mobility Radeon HD 3650]
03:00.0 Network controller: Intel Corporation PRO/Wireless 5100 AGN [Shiloh] Network Connection
15:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev ba)
15:00.1 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller (rev 04)
15:00.2 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 21)
15:00.4 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 11)
15:00.5 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 11)

5、lsusb

列出USB总线信息。

这个命令可列出USB控制器的设备信息,lsusb工具是usbutils包的一部分。

$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 0461:4d81 Primax Electronics, Ltd
Bus 006 Device 002: ID 413c:2107 Dell Computer Corp.

6、lsblk

列出块设备的信息。

$ lsblk
NAME                   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                      8:0    0 465.8G  0 disk
├─sda1                   8:1    0    94M  0 part /boot
├─sda2                   8:2    0  14.9G  0 part /
├─sda3                   8:3    0     1K  0 part
└─sda5                   8:5    0 450.8G  0 part
  ├─vg0-lv_tmp (dm-0)  254:0    0   980M  0 lvm  
  ├─vg0-lv_home (dm-1) 254:1    0 346.1G  0 lvm  /home
  ├─vg0-lv_swap (dm-2) 254:2    0   3.7G  0 lvm  [SWAP]
  └─vg0-lv_vm (dm-3)   254:3    0   100G  0 lvm  /home/hto/vm
sr0                     11:0    1  1024M  0 rom

7、dmidecode

使用标准格式得到全面的硬件信息。

Dmidecode reports information about the system's hardware as described in the system BIOS according to the SMBIOS/DMI standard.

以一种可读的方式dump出机器的DMI(Desktop Management Interface)信息。这些信息包括了硬件以及BIOS,既可以得到当前的配置,也可以得到系统支持的最大配置,像可支持的最大内存数等。DMI有人也叫SMBIOS(System Management BIOS),这两个标准都由DMTF(Desktop Management Task Force)开发。

SMBIOS(System Management BIOS)是主板或系统制造者以标准格式显示产品管理信息所需遵循的统一规范。

DMI (Desktop Management Interface, DMI)就是帮助收集电脑系统信息的管理系统,DMI信息的收集必须在严格遵照SMBIOS规范的前提下进行。

SMBIOS和DMI是由行业指导机构Desktop Management Task Force (DMTF)起草的开放性的技术标准,其中,DMI设计适用于任何的平台和操作系统。

This information typically includes system manufacturer, model name, serial number, BIOS version, asset tag as well as a lot of other details of varying level of interest and reliability depending on the manufacturer. This will often include usage status for the CPU sockets, expansion slots (e.g. AGP, PCI, ISA) and memory module slots, and the list of I/O ports (e.g. serial, parallel, USB).

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.


机器型号
dmidecode | grep "Product"

查看详细的主板信息
dmidecode | grep -A16 "System Information$"

厂商
dmidecode| grep  "Manufacturer"

序号信息
dmidecode | grep -B 4 "Serial Number"  | more

CPU 信息
dmidecode | grep  "CPU"

查看详细的内存信息
dmidecode | grep -A16 "Memory Device$"
dmidecode -t memory

查看内存的插槽数,已经使用多少插槽,每条内存多大,已使用内存多大
dmidecode | grep  -P  -A5  "Memory\s+Device" | grep Size | grep -v Range

查看可支持的最大内存容量
dmidecode | grep -P  'Maximum\s+Capacity'

查看内存的频率
dmidecode | grep -A16 "Memory Device" | grep "Speed"

dmidecode -t processor
dmidecode -t memory
dmidecode -t bios
dmidecode -t 0 ## code for bios (see table below) ##

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



8、hardinfo

HardInfo 在一个简单的图形界面中显示所有这些信息。它就像适用于 Linux 的 Windows 设备管理器。

为 Linux实现了类似的目的,并且具有同样的易用性。它显然是在 Windows 设备管理器之后建模的,具有非常相似的图形用户界面 (GUI),带有树和主显示窗口。这意味着您无需学习 命令行命令及其参数 即可找到所需的信息。HardInfo 提供的命令行工具没有的一件事是一组简单的基准测试功能。


界面非常简单。不同类别的硬件在树形视图的左侧窗格中列出。突出显示的树项目的详细信息显示在主窗口中。默认视图是计算机摘要。这提供了计算机中主要组件的高级视图。可以使用“向上箭头”、“向下箭头”、“Home”、“End”、“Page Up”和“Page Down”键移动树选择栏,还可以单击要检查的树项目。选择“摘要”选项会显示更全面的摘要。


虽然 HardIfno 主要专用于硬件,但它确实显示了一些不基于硬件的系统属性。例如,它可以显示有关用户和组的信息。同时它还提供“报告”导出功能。从 RAM 中读取基于电可擦可编程只读存储器(EEPROM) 的串行存在检测 (SPD) 数据,需要运行命令来启动 EEPROM 内核模块。这为 HardInfo 提供了一些可供查询的内容以从中检索 SPD 数据。

硬信息基准

HardInfo 提供了八种不同的基准。这些是计算要求高的活动:CPU、浮点单元和显卡硬件越快结果就会越好。
Blowfish:执行Blowfish加密和解密例程。
CryptoHash:执行加密散列函数。
斐波那契:计算连续的斐波那契数。
N-Queens:解决N 的连续值的N-Queens 国际象棋问题。
Zlib:执行zlib 压缩和解压缩操作。
FFT:执行傅里叶变换。
FPU 光线追踪:使用 FPU 通过计算光路在图形平面中的相交位置来计算许多图形点。
GPU 绘图:绘制许多不同类型的图像构建块,例如颜色、线条和文本。