Linux – How to find hardware/chipset name using terminal in Linux

hardwareinfolinux

How reliably check the chipset of a machine? I tried to use "lspci" "hwinfo" "lshw" "dmidecode" commands on my old Asus K50ij with linux mint, but the output does not provide precise enough information about northbridge. I found out that it's chipset is Intel® Mobilny GL40 Express +ICH9M on a Asus's website, but I would like to be able to find that only using the terminal, if that's possible. The above commands return a lot of information but not the one I'm looking for. For instance, one line of Output from lspci:

Host bridge: Intel corporation Mobile 4 Series Chipset Memory Controller Hub (rev09)

but my output expectation would be:

Intel® Mobilny GL40 Express Chipset +ICH9M

the output of lspci narrows down chipsets to this list, but that's still a lot to pick from:
https://ark.intel.com/content/www/us/en/ark/products/series/34468/intel-4-series-chipsets.html

Because of output about sata controller I could identify the southbridge:

  PCI 1f.2: 0106 SATA controller (AHCI 1.0)
  [Created at pci.378]
  Unique ID: w7Y8.1UWGXuPHmx0
  SysFS ID: /devices/pci0000:00/0000:00:1f.2
  SysFS BusID: 0000:00:1f.2
  Hardware Class: storage
  Model: "Intel 82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode]
  Vendor: pci 0x8086 "Intel Corporation"

and with that, I could check on the intel chipset list that it pairs with GL40 northbridge. But it feels like a lot of work for a piece of simple information, especially that on my other machines lspci outputs precise chipset model name.

Edit
response to a comment, the full output of lspci -nn -d 8086:

00:00.0 Host bridge [0600]: Intel Corporation Mobile 4 Series Chipset Memory Controller Hub [8086:2a40] (rev 09)
00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller [8086:2a42] (rev 09)
00:02.1 Display controller [0380]: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller [8086:2a43] (rev 09)
00:1a.0 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 [8086:2937] (rev 03)
00:1a.1 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 [8086:2938] (rev 03)
00:1a.2 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 [8086:2939] (rev 03)
00:1a.7 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 [8086:293c] (rev 03)
00:1b.0 Audio device [0403]: Intel Corporation 82801I (ICH9 Family) HD Audio Controller [8086:293e] (rev 03)
00:1c.0 PCI bridge [0604]: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 [8086:2940] (rev 03)
00:1c.1 PCI bridge [0604]: Intel Corporation 82801I (ICH9 Family) PCI Express Port 2 [8086:2942] (rev 03)
00:1c.5 PCI bridge [0604]: Intel Corporation 82801I (ICH9 Family) PCI Express Port 6 [8086:294a] (rev 03)
00:1d.0 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 [8086:2934] (rev 03)
00:1d.1 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 [8086:2935] (rev 03)
00:1d.2 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 [8086:2936] (rev 03)
00:1d.7 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 [8086:293a] (rev 03)
00:1e.0 PCI bridge [0604]: Intel Corporation 82801 Mobile PCI Bridge [8086:2448] (rev 93)
00:1f.0 ISA bridge [0601]: Intel Corporation ICH9M LPC Interface Controller [8086:2919] (rev 03)
00:1f.2 SATA controller [0106]: Intel Corporation 82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode] [8086:2929] (rev 03)

output of cat /proc/cpuinfo

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Pentium(R) Dual-Core CPU       T4300  @ 2.10GHz
stepping        : 10
microcode       : 0xa0b
cpu MHz         : 1196.901
cache size      : 1024 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
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 cpuid aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm xsave lahf_lm pti dtherm
bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips        : 4189.09
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           : 23
model name      : Pentium(R) Dual-Core CPU       T4300  @ 2.10GHz
stepping        : 10
microcode       : 0xa0b
cpu MHz         : 1196.897
cache size      : 1024 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
apicid          : 1
initial apicid  : 1
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
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 cpuid aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm xsave lahf_lm pti dtherm
bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips        : 4189.09
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

Edit, output of sudo lspci -vv -d 8086:2a40

00:00.0 Host bridge: Intel Corporation Mobile 4 Series Chipset Memory Controller Hub (rev 09)
        Subsystem: ASUSTeK Computer Inc. Mobile 4 Series Chipset Memory Controller Hub
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
        Latency: 0
        Capabilities: [e0] Vendor Specific Information: Len=0a <?>

edit, I don't know where to look in output of lspci -xxx -d 8086:2a40

00:00.0 Host bridge: Intel Corporation Mobile 4 Series Chipset Memory Controller Hub (rev 09)
00: 86 80 40 2a 06 00 90 20 09 00 00 06 00 00 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 43 10 67 18
30: 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00
40: 01 90 d1 fe 00 00 00 00 01 00 d1 fe 00 00 00 00
50: 00 00 50 03 19 00 00 00 00 00 00 00 00 00 00 00
60: 01 00 00 e0 00 00 00 00 01 80 d1 fe 00 00 00 00
70: 00 00 00 00 00 00 00 00 01 08 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 10 11 11 00 00 33 33 00 40 00 4f 00 00 1a 38 00
a0: 20 00 00 14 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 70 02 00 00
e0: 09 00 0a 61 b1 6d 51 1f b9 e1 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 a0 0f 09 00 00 00 00 00

Best Answer

Your particular chipset’s PCI id is shared by the four variants in the family, and distinguishing between them involves looking at the capability identifier in the PCI configuration registers. Section 19.1.36 of the datasheet has the details; the relevant information is stored at offset 0xE5 in the configuration registers, and bits 2 to 4 at that offset will tell you which variant you have:

  • 111 = PM45
  • 001 = GM45
  • 011 = GL40
  • 100 = GS45

You should be able to see this with lspci -xxx -d 8086:2a40. But I doubt you’ll find a utility which would give you the name of the chipset using this information.

In your case, the relevant line in the output of lspci -xxx is

e0: 09 00 0a 61 b1 6d 51 1f b9 e1 00 00 00 00 00 00

This needs to be read backwards; the 80 capability bits are 0xE1B91F516DB1610A0009. Bits 44:42 are 011 (the sixth value in the line is 0x6D, 0b01101101, and bits 4:2 in that are 011).

Related Question