在 Linux 系統可以透過 lshw 以及 lspci 看系統資訊,但這兩個執行檔的差別是什麼呢??
完整系統硬體資訊
- #lshw (list Hardware) – https://benjr.tw/53000
透過 lshw 的功能可以檢視系統的硬體設施. 包括記憶體組態 (memory configuration),韌體版本 (firmware version),主機板組態 (mainboard configuration),處理器版本以及速度 (CPU version and speed),快取組態 (cache configuration),匯流排速度 (bus speed), 等….. - #discover – https://benjr.tw/95257
功能類似於 lshw 功能可以檢視系統的硬體設施. - #hwinfo – https://benjr.tw/99441
功能類似於 lshw 功能可以檢視系統的硬體設施. - #hwloc – https://benjr.tw/98373
hwloc (Portable Hardware Locality) 功能類似於 lshw 功能可以檢視系統的硬體設施,但除了文字介面外還提供了系統的架構圖可供檢視. - #dmidecode – https://benjr.tw/214
SMBIOS (System Management BIOS, SMBIOS)/ DMI(Desktop Management Interface) 都是存儲系統硬體或是 BIOS 資訊. - #vpddecode – https://benjr.tw/11113
VPD 主要是儲存製造系統廠商的硬體資訊.而 SMBIOS 主要是所有零件的資訊.FRU (Field Replacable Unit)EEPROM 位於 BMC 架構下的一塊 EEPROM ,主要儲存了 Memory (DIMM),Power Supply, 插入式的板卡等製照商,序號,出廠日 資料. - hardinfo
特定硬體資訊
- PCI-E
- #lspci (list all PCI devices) 是最常用來看 PCI-(E) Bus 的系統硬體相關訊息的指令,請參考 https://benjr.tw/10851
- 透過 #lspci 查詢 PCI-E Bus 匯流排速度,請參考 https://benjr.tw/10842
- 關於 lspci 詳細資訊所代表的意思,請參考 https://benjr.tw/98087
- USB
透過 #lsusb (list USB devices) 可以看到關於 usb 控制器,埠 (port) 以及裝置的相關訊息,請參考 https://benjr.tw/210 - Hard Disk
- 透過 #lsscsi (list SCSI devices) 可以看到關於硬碟裝置的相關訊息,請參考 https://benjr.tw/98475
- 透過 #nvme 可以查到與 PCI-E NVME 碟裝置的相關訊息,請參考 https://benjr.tw/98887
- 透過 #lsblk (list block devices) 可以看到關於硬碟裝置的相關訊息,請參考 https://benjr.tw/97549
- 透過硬碟本身所提供的 S.M.A.R.T. (Self-Monitoring Analysis and Reporting Technology )技術 ,他可以根據檢測屬性的結果來決定該顆硬碟的使用狀態(包含 Link Speed),請參考 https://benjr.tw/95984 , S.M.A.R.T. attributes 請參考 https://benjr.tw/98889
- SATA / SAS Link Speed 無法透過 #lspci 或是 #lshw 查到,可以透過 #dmesg 查詢,或是 /sys/ 目錄下查詢,請參考 https://benjr.tw/80914
- 透過 hdparm 讀取/設定 SATA/IDE 設備參數,請參考 https://benjr.tw/450
- 透過 udevadm info 可以看到關於硬碟裝置的相關訊息,請參考 https://benjr.tw/10622
- PCI-E NVMe 頻寬,請參考 https://benjr.tw/99238
- CPU
- 透過指令 #lscpu (display information about the CPU architecture) 或是其他方式都可以檢視與 CPU 相關訊息,請參考 https://benjr.tw/98347 .
- Intel NUMA (Non-uniform memory access),把 CPU 與記憶體區分成不同的結點 Node (不同的 CPU 各自擁有記憶體),彼此的 CPU 節點再透過 QPI (Intel QuickPath Interconnect) 這個介面做溝通,請參考 https://benjr.tw/96788
- CPU 依據省電模式有區分為 Processor Operating States (C-states) 與 Processor Performance States (P-states),請參考 cpupower https://benjr.tw/99146
- CPU MSR 是 model specific register 的縮寫,CPU 的工作模式就是透過這一些暫存器來控制,請參考 https://benjr.tw/99163
- IO(Interrupt) 與 CPU 的對應可以參考 irqbalance 說明 https://benjr.tw/93539 ,如果要設定對應可以透過 CPU Affinity taskset (cpuset) – https://benjr.tw/99353
- i7z
- GPU
- Nvidia 可以透過指令 #nvidia-smi(NVIDIA System Management Interface)檢視 GPU 相關訊息,請參考 https://benjr.tw/98666 , https://benjr.tw/98732 .
- AMD 可以透過指令 TBD.
- I2C Sensor
- 透過指令 #i2cdetect (detect I2C chips) 可以檢視 i2C 裝置相關訊息,請參考 https://benjr.tw/93915
- Temperature sensor with integrated SPD ,請參考 https://benjr.tw/93901 , https://benjr.tw/2998
- PSMI (Power Supply Management Interface),請參考 https://benjr.tw/93924
- PMbus (Power Management Bus),請參考 https://benjr.tw/94214
- Lm_Sensors (Linux monitoring sensors),請參考 https://benjr.tw/98312
- IPMI (Intelligent Platform Management Interface),請參考 https://benjr.tw/97471
- Print
lpinfo 會列出所有可用的 CUPS server.CUPS 是一套開源標準的列印系統.因為我也沒有真正用過我猜大概是找出目前可用的 “印表機” .
現在在 Linux 也有一些 GUI Hardware detection 檢視硬體資源的程式可以供使用,如 hardinfo , i-nex , cpu-g 安裝方式請參考說明 https://benjr.tw/97220
特定硬體的錯誤 Error count 資訊
- Network 的 TCP / IP 的錯誤檢視 – https://benjr.tw/94371
- HD , Network , FC 的 Error count – https://benjr.tw/95995
- PCI-E 的 AER (Advanced Error Reporting) 狀態 – https://benjr.tw/98087
- EDAC & rasdaemon – https://benjr.tw/98123