有時候我們會需要查詢電腦的硬體資訊,例如 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