Displaying hardware data on CentOS Linux hosts
I was reviewing the hardware configuration on one of my Centos Linux 5.3 hosts this past weekend, and was curious which chipset was in use and if the host supported the AMD virtualization extensions. To get a high level overview of the devices installed in the system, I looked through /etc/sysconfig/hwconf ( this file is populated at boot time with the current hardware configuration):
$ more /etc/sysconfig/hwconf
- class: OTHER bus: PCI detached: 0 driver: shpchp desc: "nVidia Corporation CK804 PCIE Bridge" vendorId: 10de deviceId: 005d subVendorId: 0000 subDeviceId: 0000 pciType: 1 pcidom: 0 pcibus: 80 pcidev: e pcifn: 0 - .....
To see if the CPUs supported the AMD virtualization extensions, I poked around /proc/cpuinfo:
$ cat /proc/cpuinfo
processor : 0 vendor_id : AuthenticAMD cpu family : 15 model : 37 model name : AMD Opteron(tm) Processor 254 stepping : 1 cpu MHz : 1000.000 cache size : 1024 KB fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni lahf_lm bogomips : 2008.99 TLB size : 1024 4K pages clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management: ts fid vid ttp processor : 1 vendor_id : AuthenticAMD cpu family : 15 model : 37 model name : AMD Opteron(tm) Processor 254 stepping : 1 cpu MHz : 2800.000 cache size : 1024 KB fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni lahf_lm bogomips : 5625.17 TLB size : 1024 4K pages clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management: ts fid vid ttp
After reviewing the processor details, I use lspci to extract some additional details from the PCI buses:
$ lspci -v |more
00:00.0 Memory controller: nVidia Corporation CK804 Memory Controller (rev a3) Subsystem: Sun Microsystems Computer Corp. Unknown device 534a Flags: bus master, 66MHz, fast devsel, latency 0 Capabilities: [44] HyperTransport: Slave or Primary Interface Capabilities: [e0] HyperTransport: MSI Mapping 00:01.0 ISA bridge: nVidia Corporation CK804 ISA Bridge (rev a3) Subsystem: Sun Microsystems Computer Corp. Unknown device 534a Flags: bus master, 66MHz, fast devsel, latency 0 I/O ports at00:01.1 SMBus: nVidia Corporation CK804 SMBus (rev a2) Subsystem: Sun Microsystems Computer Corp. Unknown device 534a Flags: 66MHz, fast devsel I/O ports at 1000 [size=32] I/O ports at 7000 [size=64] I/O ports at 7040 [size=64] Capabilities: [44] Power Management version 2
Once I looked through the lspci output, I ran dmidecode to gather the SMBIOS data (this has the chipset information):
$ dmidecode
Handle 0x0004, DMI type 4, 35 bytes. Processor Information Socket Designation: CPU0-Socket 940 Type: Central Processor Family: Opteron Manufacturer: AMD ID: 51 0F 02 00 FF FB 8B 07 Signature: Extended Family 0, Model 5, Stepping 1 Flags: FPU (Floating-point unit on-chip) VME (Virtual mode extension) DE (Debugging extension) PSE (Page size extension) TSC (Time stamp counter) MSR (Model specific registers) PAE (Physical address extension) MCE (Machine check exception) CX8 (CMPXCHG8 instruction supported) APIC (On-chip APIC hardware supported) SEP (Fast system call) MTRR (Memory type range registers) PGE (Page global enable) MCA (Machine check architecture) CMOV (Conditional move instruction supported) PAT (Page attribute table) PSE-36 (36-bit page size extension) CLFSH (CLFLUSH instruction supported) MMX (MMX technology supported) FXSR (Fast floating-point save and restore) SSE (Streaming SIMD extensions) SSE2 (Streaming SIMD extensions 2) Version: AMD Voltage: 1.2 V External Clock: 200 MHz Max Speed: 3000 MHz Current Speed: 2800 MHz Status: Populated, Enabled Upgrade: None L1 Cache Handle: 0x0008 L2 Cache Handle: 0x0009 L3 Cache Handle: Not Provided Serial Number: Not Specified Asset Tag: Not Specified Part Number: Not Specified
I like the fact that dmidecode breaks down the processor flags for you, since it saved me a round-trip to the kernel source code. I found exactly what I needed in the output above, and am now off to purchase another machine (one that has 2 PCI-X slots and virtualization extensions) for my lab.








mike on April 9th, 2009
Sweet dude! I didn’t know that dmidecode had the CPU flags detailed. I’ve gone to the kernel source a few times trying to figure that crap out.