分類: Linux

在 Linux 下查詢硬體資訊的工具指令

有時候我們會需要查詢電腦的硬體資訊,例如 CPU、顯示卡、記憶體等,最直接的方式就是拆開電腦機殼,找每一個硬體的資訊,但這樣實在很麻煩,尤其是在有些電腦的硬體不見得從外觀上就可以看得出來。

這裡將介紹在 Linux 系統下查詢硬體資訊的一些小工具,有了這些工具,可以省下不少時間,而且得到的電腦硬體資訊也更為詳細。

lshw

第一個介紹的工具是 lshw,他是 list hardware 的縮寫,這個工具必須以 root 權限來執行(若是以一般使用者來執行,就會出現一些警告訊息):

sudo lshw

這個工具會列出電腦中所有的硬體資訊,第一個部份是一般性的資訊,看起來就像這樣:

seal-laptop               
    description: Computer
    product: iBook G4
    vendor: Copyright 1983-2004 Apple Computer, Inc. All Rights Reserved
    serial: QJP
    width: 32 bits

這是在筆者的 iBook G4 上執行的結果,其顯示電腦的型號是 iBook G4,製造廠商是 Apple Computer,另外也顯示這是一台 32 位元的機器,接著會列出其他細部的資訊,lshw 所提供的資訊非常詳細,大致尚可分為下面幾項:

  • firmware -- motherboard and BIOS information
  • cpu -- CPU information
    • cache -- cache information
  • memory -- memory information
    • bank -- specific bank memory information
  • pci -- PCI bus information
    • display -- PCI display adapter
    • multimedia -- PCI audio adapter
    • pci -- other PCI devices
    • network -- PCI network adapter
  • usb -- USB devices
  • ide -- IDE information
    • disk -- individual disks
      • volume -- volumes on this disk

以下是節錄的輸出訊息:

  *-core
       description: Motherboard
       physical id: 0
       clock: 133MHz
       capabilities: powerbook6_5 macrisc3 power_macintosh
     *-firmware
          product: OpenFirmware 3
          physical id: 0
          logical name: /proc/device-tree
          capabilities: bootinfo
     *-memory
          description: System memory
          physical id: 1
          size: 768MiB
        *-bank:0
             description: Memory bank
             physical id: 0
             version: 0000,00 00,00
             slot: DIMM0/BUILT-IN
             size: 256MiB
        *-bank:1
             description: Memory bank
             physical id: 1
             version: 0000,2D 04,54
             serial: TS64MSD64V6J
             slot: DIMM1/J31
             size: 512MiB
     *-cpu
          description: CPU
          product: 7447A, altivec supported
          physical id: 2
          bus info: cpu@0
          version: 1.1 (pvr 8003 0101)
          size: 1066MHz
          capacity: 1066MHz
          clock: 133MHz
          capabilities: altivec performance-monitor cpufreq
        *-cache:0
             description: L1 Cache
             physical id: 0
             size: 32KiB
        *-cache:1
             description: L2 Cache (unified)
             physical id: 1
             size: 512KiB
             clock: 1066MHz (0.9ns)
[略]

由細部的資訊可以看出這台電腦的記憶體有兩條,一條是 256M,另一條是 512M。

雖然 lshw 所提供的資訊相當完整,但有時候我們只需要查詢某一部份的資訊,其實不需要將所有的資訊全部列出來,這時候可以改用其他的工具來處理。

lscpu

lscpu 是專門用來查詢 CPU 資訊的工具:

lscpu

其輸出類似像這樣:

Architecture:          ppc
CPU(s):                1
Model:                 PowerBook6,5
L1d cache:             32K
L1i cache:             32K
L2 cache:              512K

lscpu 的輸出資訊可以看出這台機器只有一顆 ppc 的 CPU。下面是筆者在另一台機器上的 lscpu 輸出:

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
CPU(s):                4
Thread(s) per core:    1
Core(s) per socket:    4
CPU socket(s):         1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 15
Stepping:              11
CPU MHz:               2405.096
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              4096K

這裡的輸出就比較詳細了:CPU 的製造廠商是 Intel,四核心、64 bits,時脈是 2.4 GHz。

lspci

若是要查看顯示卡的型號,可以使用 lspci 這個工具,它會列出所有 PCI bus 上的硬體裝置資訊:

lscpi

以下是 lspci 的輸出:

0000:00:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 AGP
0000:00:10.0 VGA compatible controller: ATI Technologies Inc M9+ 5C63 [Radeon Mobility 9200 (AGP)] (rev 01)
0001:10:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 PCI
0001:10:12.0 Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03)
0001:10:17.0 Unassigned class [ff00]: Apple Computer Inc. KeyLargo/Intrepid Mac I/O
0001:10:18.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB
0001:10:19.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB
0001:10:1a.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB
0001:10:1b.0 USB Controller: NEC Corporation USB (rev 43)
0001:10:1b.1 USB Controller: NEC Corporation USB (rev 43)
0001:10:1b.2 USB Controller: NEC Corporation USB 2.0 (rev 04)
0002:20:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 Internal PCI
0002:20:0d.0 Unassigned class [ff00]: Apple Computer Inc. UniNorth/Intrepid ATA/100
0002:20:0e.0 FireWire (IEEE 1394): Apple Computer Inc. UniNorth 2 FireWire (rev 81)
0002:20:0f.0 Ethernet controller: Apple Computer Inc. UniNorth 2 GMAC (Sun GEM) (rev 80)

lspci 的輸出可以看出這台機器的顯示卡是 ATI 的 Radeon Mobility 9200。

在安裝硬體驅動程式時,有了這個資訊就可以上 Google 查一下如何對這張顯示卡做最佳化的設定。

lsusb

lsusb 可以列出所有的 USB 裝置:

lsusb

以下是其輸出:

Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 045e:00cb Microsoft Corp. Basic Optical Mouse v2.0
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

由這個輸出可以看出來目前的 USB 裝置只有一個 Microsoft 的滑鼠。

lsmod

最後一個檢查硬體的方式是從 Linux 系統所載入的模組來看,lsmod 這個指令會列出所有被系統載入的模組:

lsmod

其輸出為:

Module                  Size  Used by
sg                     30929  0 
binfmt_misc             8080  1 
parport_pc             38386  0 
ppdev                   7570  0 
lp                      8921  0 
parport                36140  3 parport_pc,ppdev,lp
arc4                    1357  2 
b43                   318676  0 
mac80211              282008  1 b43
radeon               1040735  2 
ttm                    66008  1 radeon
drm_kms_helper         33273  1 radeon
drm                   200444  5 radeon,ttm,drm_kms_helper
cfg80211              167453  2 b43,mac80211
snd_aoa_i2sbus         19627  0 
rtc_generic             1407  0 
snd_aoa_soundbus        4824  1 snd_aoa_i2sbus
therm_adt746x           9532  0 
apm_emu                 1480  0 
apm_emulation           6952  2 apm_emu
uninorth_agp            7604  1 
snd_powermac           66253  2 
snd_pcm                84435  2 snd_aoa_i2sbus,snd_powermac
snd_seq_midi            5492  0 
snd_rawmidi            21923  1 snd_seq_midi
snd_seq_midi_event      7179  1 snd_seq_midi
snd_seq                57836  2 snd_seq_midi,snd_seq_midi_event
snd_timer              23210  2 snd_pcm,snd_seq
snd_seq_device          6870  3 snd_seq_midi,snd_rawmidi,snd_seq
snd                    59885  11 snd_aoa_i2sbus,snd_powermac,snd_pcm,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
soundcore               1148  1 snd
snd_page_alloc          7313  1 snd_pcm
usbhid                 41179  0 
hid                    77979  1 usbhid
ssb                    49052  1 b43
firewire_ohci          32381  0 
mmc_core               82058  1 ssb
firewire_core          58790  1 firewire_ohci
sungem                 31873  0 
sungem_phy             11933  1 sungem
crc_itu_t               1475  1 firewire_core

由系統載入的模組也可以多少看出有哪些硬體存在。

/proc/cpuinfo

要查詢 CPU 的資訊除了上述的方式外,也可以直接查看 /proc/cpuinfo 這個檔案:

cat /proc/cpuinfo

其輸出的資訊更為詳細:

processor : 0
vendor_id : GenuineIntel
cpu family : 6
model  : 15
model name : Intel(R) Core(TM)2 Quad CPU    Q6600  @ 2.40GHz
stepping : 11
cpu MHz  : 2405.096
cache size : 4096 KB
physical id : 0
siblings : 4
core id  : 0
cpu cores : 4
apicid  : 0
initial apicid : 0
fpu  : yes
fpu_exception : yes
cpuid level : 10
wp  : yes
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm dts tpr_shadow vnmi flexpriority
bogomips : 4810.19
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model  : 15
model name : Intel(R) Core(TM)2 Quad CPU    Q6600  @ 2.40GHz
stepping : 11
cpu MHz  : 2405.096
cache size : 4096 KB
physical id : 0
siblings : 4
core id  : 3
cpu cores : 4
apicid  : 3
initial apicid : 3
fpu  : yes
fpu_exception : yes
cpuid level : 10
wp  : yes
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm dts tpr_shadow vnmi flexpriority
bogomips : 4811.10
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
[略]

dmidecode

dmidecode 可以輸出一些 BIOS 中的資訊,例如主機板的資訊:

sudo dmidecode -t 2
# dmidecode 3.0
# SMBIOS entry point at 0x000f04d0
Found SMBIOS entry point in EFI, reading table from /dev/mem.
SMBIOS 2.7 present.

Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
	Manufacturer: Supermicro
	Product Name: X9DRG-QF
	Version: 0123456789
	Serial Number: 0123456789
	Asset Tag: To be filled by O.E.M.
	Features:
		Board is a hosting board
		Board is replaceable
	Location In Chassis: To be filled by O.E.M.
	Chassis Handle: 0x0003
	Type: Motherboard
	Contained Object Handles: 0

Invalid entry length (16). Fixed up to 11.

以下是使用 dmidecode 查詢各種硬體資訊的指令:

dmidecode -t processor  # CPU
dmidecode -t slot       # PCI 插槽
dmidecode -t system     # 主機廠商
dmidecode -t baseboard  # on-board 設備

參考網站:Linux Journal

G. T. Wang

個人使用 Linux 經驗長達十餘年,樂於分享各種自由軟體技術與實作文章。

Recent Posts

光陽 KYMCO GP 125 機車接電發動、更換電瓶記錄

本篇記錄我的光陽 KYMCO ...

2 年 ago

[開箱] YubiKey 5C NFC 實體金鑰

本篇是 YubiKey 5C ...

2 年 ago

[DIY] 自製竹火把

本篇記錄我拿竹子加上過期的苦茶...

3 年 ago