How to get motherboard info on Ubuntu / Debian / CentOS / Linux

By | December 7, 2023

Get Motherboard Info on Linux

To get details about the motherboard on your desktop pc or laptop, there are a couple of commands available on Linux. These commands will show the motherboard vendor, model name / part number and some other details like what bios/uefi firmware is installed on it.

In this article we shall take look at some of the common hardware related commands that can be used to get information about motherboard on linux. These commands are available for all major linux distributions so they should work on Ubunt, Debian, CentOS, Fedora, OpenSUSE or any other linux distro that you are using.

Now lets take a look at the commands one by one:

1. dmidecode

The dmidecode command with the -t baseboard option will show details about the motherboard. Note that this command will output a lot of additional information that might not be related to the motherboard directly.

On my main ubuntu pc, this is what I get

$ sudo dmidecode -t baseboard
# dmidecode 3.5
Getting SMBIOS data from sysfs.
SMBIOS 3.0.0 present.

Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
        Manufacturer: Gigabyte Technology Co., Ltd.
        Product Name: H110M-H-CF
        Version: x.x
        Serial Number: Default string
        Asset Tag: Default string
        Features:
                Board is a hosting board
                Board is replaceable
        Location In Chassis: Default string
        Chassis Handle: 0x0003
        Type: Motherboard
        Contained Object Handles: 0

Handle 0x0021, DMI type 10, 6 bytes
...

Here is a one liner

$ sudo dmidecode -s baseboard-product-name
H110M-H-CF
$

On another older pc with intel motherboard, I get this:

$ sudo dmidecode -t baseboard | grep -i 'Product'
        Product Name: DG35EC

2. inxi

The inxi command with the --machine or -M option will show motherboard information. You can use the -x option further to show additional details about the motherboard. Run it with sudo to extract maximum details.

First install inxi with apt:

sudo apt install inxi

On my main ubuntu desktop machine this is the output:

$ sudo inxi --machine
Machine:
  Type: Desktop System: Gigabyte product: H110M-H v: N/A serial: N/A
  Mobo: Gigabyte model: H110M-H-CF v: x.x serial: N/A
    UEFI-[Legacy]: American Megatrends v: F20 date: 11/16/2016
$

On my older intel motherboard machine this is the output:

$ inxi -M
Machine:   Mobo: Intel model: DG35EC version: AAE29266-210
           Bios: Intel version: ECG3510M.86A.0112.2009.0203.1136 date: 02/03/2009

3. lshw

The lshw (list hardware) command is quite effective in showing details and information about most hardware components. It has separate options to report only specific parts of the hardware like memory, network, disk drives etc. However there is no option to report just motherboard.

Use apt to install lshw on ubuntu, debian, linux mint and related distros:

sudo apt install lshw

The motherboard information is reported right on top when full details are printed using the lshw command. We shall use the less command to make the top part visible.

sudo lshw | less

Here is the output from my ubuntu 23.10 machine.

enlightened                 
    description: Desktop Computer
    product: H110M-H (Default string)
    vendor: Gigabyte Technology Co., Ltd.
    version: Default string
    serial: Default string
    width: 64 bits
    capabilities: smbios-3.0.0 dmi-3.0.0 smp vsyscall32
    configuration: boot=normal chassis=desktop family=Default string sku=Default string uuid=031b021c-040d-05c8-8206-4d0700080009
  *-core
       description: Motherboard
       product: H110M-H-CF
       vendor: Gigabyte Technology Co., Ltd.
       physical id: 0
       version: x.x
       serial: Default string
       slot: Default string
     *-firmware
          description: BIOS
          vendor: American Megatrends Inc.
          physical id: 0
          version: F20
          date: 11/16/2016
          size: 64KiB
          capacity: 8MiB
          capabilities: pci upgrade shadowing cdboot bootselect socketedrom edd int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int14serial int17printer acpi usb biosbootspecification uefi
     *-memory
          description: System Memory
          physical id: 3d
          slot: System board or motherboard
          size: 32GiB
...

Note that on the top part, the motherboard vendor, product name and the firmware details are displayed. In this case the vendor is Gigabyte Technology, the product model is H110M-H-CF and the BIOS vendor is American Megatrends Inc. and the version is F20 (which is actually UEFI).

4. Hardinfo

The hardinfo command is a gui tool and quite easy to use. It reports details about most hardware components including the motherboard. It is a must have hardware analysis tool for your ubuntu desktop machine.

Installing is easy. Just run the apt command

sudo apt install hardinfo

Now run it directly from the application menu of your desktop environment or run the command from the terminal.

hardinfo
Hardinfo Computer Summary

Hardinfo Computer Summary

Note that the first page on "Computer Summary" shows the motherboard vendor and the model name. Users who do not want to use the terminal or commands can use this application.

5. System Files - /sys/devices

Another smart way to check motherboard information is by reading some dynamic files that are populated with hardware information by the kernel. The files are located in /sys/devices/virtual/dmi/id/.

Here is a sample output from my ubuntu desktop machine.

$ cat /sys/devices/virtual/dmi/id/board_{vendor,name,version}
Gigabyte Technology Co., Ltd.
H110M-H-CF
x.x
$

It is possible to extract more information like this:

cat /sys/devices/virtual/dmi/id/*

Here are some fancy one lines

grep . /sys/devices/virtual/dmi/id/* 2>/dev/null

In the following output we can also check the exact BIOS/UEFI firmware version and release date. This allows us to check whether we need to update the bios or not.

$ grep . /sys/devices/virtual/dmi/id/* 2>/dev/null
/sys/devices/virtual/dmi/id/bios_date:11/16/2016
/sys/devices/virtual/dmi/id/bios_release:5.12
/sys/devices/virtual/dmi/id/bios_vendor:American Megatrends Inc.
/sys/devices/virtual/dmi/id/bios_version:F20
/sys/devices/virtual/dmi/id/board_asset_tag:Default string
/sys/devices/virtual/dmi/id/board_name:H110M-H-CF
/sys/devices/virtual/dmi/id/board_vendor:Gigabyte Technology Co., Ltd.
/sys/devices/virtual/dmi/id/board_version:x.x
/sys/devices/virtual/dmi/id/chassis_asset_tag:Default string
/sys/devices/virtual/dmi/id/chassis_type:3
/sys/devices/virtual/dmi/id/chassis_vendor:Default string
/sys/devices/virtual/dmi/id/chassis_version:Default string
/sys/devices/virtual/dmi/id/modalias:dmi:bvnAmericanMegatrendsInc.:bvrF20:bd11/16/2016:br5.12:svnGigabyteTechnologyCo.,Ltd.:pnH110M-H:pvrDefaultstring:rvnGigabyteTechnologyCo.,Ltd.:rnH110M-H-CF:rvrx.x:cvnDefaultstring:ct3:cvrDefaultstring:skuDefaultstring:
/sys/devices/virtual/dmi/id/product_family:Default string
/sys/devices/virtual/dmi/id/product_name:H110M-H
/sys/devices/virtual/dmi/id/product_sku:Default string
/sys/devices/virtual/dmi/id/product_version:Default string
/sys/devices/virtual/dmi/id/sys_vendor:Gigabyte Technology Co., Ltd.
/sys/devices/virtual/dmi/id/uevent:MODALIAS=dmi:bvnAmericanMegatrendsInc.:bvrF20:bd11/16/2016:br5.12:svnGigabyteTechnologyCo.,Ltd.:pnH110M-H:pvrDefaultstring:rvnGigabyteTechnologyCo.,Ltd.:rnH110M-H-CF:rvrx.x:cvnDefaultstring:ct3:cvrDefaultstring:skuDefaultstring:
$

Here is a similar one-line using the tail command, which is a bit more readable:

tail -n +1  /sys/devices/virtual/dmi/id/* 2>/dev/null

or  

tail /sys/devices/virtual/dmi/id/* 2>/dev/null

or

tail -v -n +1  /sys/devices/virtual/dmi/id/* 2>/dev/null

The output on my Ubuntu machine:

$ tail -n +1  /sys/devices/virtual/dmi/id/* 2>/dev/null
==> /sys/devices/virtual/dmi/id/bios_date <==
11/16/2016

==> /sys/devices/virtual/dmi/id/bios_release <==
5.12

==> /sys/devices/virtual/dmi/id/bios_vendor <==
American Megatrends Inc.

==> /sys/devices/virtual/dmi/id/bios_version <==
F20

==> /sys/devices/virtual/dmi/id/board_asset_tag <==
Default string

==> /sys/devices/virtual/dmi/id/board_name <==
H110M-H-CF

==> /sys/devices/virtual/dmi/id/board_vendor <==
Gigabyte Technology Co., Ltd.

==> /sys/devices/virtual/dmi/id/board_version <==
x.x

==> /sys/devices/virtual/dmi/id/chassis_asset_tag <==
Default string

==> /sys/devices/virtual/dmi/id/chassis_type <==
3

==> /sys/devices/virtual/dmi/id/chassis_vendor <==
Default string

==> /sys/devices/virtual/dmi/id/chassis_version <==
Default string

==> /sys/devices/virtual/dmi/id/modalias <==
dmi:bvnAmericanMegatrendsInc.:bvrF20:bd11/16/2016:br5.12:svnGigabyteTechnologyCo.,Ltd.:pnH110M-H:pvrDefaultstring:rvnGigabyteTechnologyCo.,Ltd.:rnH110M-H-CF:rvrx.x:cvnDefaultstring:ct3:cvrDefaultstring:skuDefaultstring:

==> /sys/devices/virtual/dmi/id/power <==
$

Other Commands

There are many other commands for extracting hardware info on linux, but a lot of them do not report motherboard specific details directly. For instance the lspci command will show the chipset name in some places and vendor but will not show the motherboard model.

Similarly the hwinfo shows a lot of useful information about various hardware components but does not show the motherboard specifics.

Conclusion

Those were some of the commands that can be used to fetch and display information about the motherboard on your system. If you know of any other newer command please let us know in the comments below.

Thanks for reading!

About Silver Moon

A Tech Enthusiast, Blogger, Linux Fan and a Software Developer. Writes about Computer hardware, Linux and Open Source software and coding in Python, Php and Javascript. He can be reached at [email protected].

Leave a Reply

Your email address will not be published. Required fields are marked *