How to use “Inxi” to check Hardware Information on Linux

By | December 2, 2023

Inxi

There are numerous commands to check hardware information on linux. Checking hardware details on linux can be tricky at times, you may have to try multiple commands until you get all the information you need.

If a command can display the correct details about your system hardware it means that linux was able to detect it properly and is using it.

There are quite a few gui tools like hwinfo, hardinfo, sysinfo etc on the desktop, but having a generic command line tool is far more useful and this is where Inxi works well.

Inxi is a set of scripts that will find a whole lot of information about the hardware, including vendor details, device driver configuration etc. And most importantly, it will print everything in a easy to read format.

Install inxi

Inxi is present in the default repositories of most distros. Just use the system package installer to get it.

Ubuntu or Debian users can install it with the apt command. The same would work for other ubuntu/debian based distros like linux mint.

$ sudo apt-get install inxi

CentOS or Fedora users can use the yum command.

$ sudo yum install inxi

If inxi is not present on your distro repository, then install it by following the instructions from its github repository here: https://github.com/smxi/inxi

Using inxi - command examples

Inxi comes with a huge list of options that will display more and more information about different hardware parts as much possible. So in this post we shall cover just some basics to get started and the rest you can explore.

1. Run Inxi

To get a one line snapshot of your hardware just run inxi without any options

$ inxi
CPU~Quad core Intel Core2 Quad CPU Q8400 (-MCP-) clocked at 1998.000 Mhz Kernel~3.11.0-12-generic x86_64 Up~1:43 Mem~4774.1/7975.7MB HDD~500.1GB(38.8% used) Procs~301 Client~Shell inxi~1.9.12

It has a cool option "-c" which can be used to flip colors when printing the details.

Color schemes - Inxi output is colored and if you need to change the color for better visibility just use the c option followed by a random number between 0-32.

You can use it like this

$ inxi -c 5

2. Getting basic information

The b flag will present a good amount of basic information about the system. It includes information about the processor, motherboard, graphics card and driver, network adapter, storage drives, operating system version and processes running.

$ inxi -c 5 -b
System:    Host: enlightened Kernel: 3.11.0-12-generic x86_64 (64 bit) Desktop: KDE 4.11.2 Distro: Ubuntu 13.10
Machine:   Mobo: Intel model: DG35EC version: AAE29266-210
           Bios: Intel version: ECG3510M.86A.0112.2009.0203.1136 date: 02/03/2009
CPU:       Quad core Intel Core2 Quad CPU Q8400 (-MCP-) clocked at 1998.00 MHz 
Graphics:  Card: Intel 82G35 Express Integrated Graphics Controller 
           X.Org: 1.14.3 drivers: intel (unloaded: fbdev,vesa) Resolution: [email protected] 
           GLX Renderer: Mesa DRI Intel 965G GLX Version: 2.1 Mesa 9.2.1
Network:   Card: Intel 82566DC Gigabit Network Connection driver: e1000e 
Drives:    HDD Total Size: 500.1GB (38.8% used)
Info:      Processes: 304 Uptime: 1:50 Memory: 4983.3/7975.7MB Client: Shell (bash) inxi: 1.9.12

The above information is useful specially when you are installing specific drivers, or troubleshooting any hardware problem.

3. Print Hard drive partitions

Lets now print out the information about hard drive partitions. It will print out all the mounted partitions along with their mount points, and space usage.

$ inxi -p
Partition: ID: / size: 97G used: 22G (24%) fs: ext4 ID: /media/13f35f59-f023-4d98-b06f-9dfaebefd6c1 size: 196G used: 132G (71%) fs: ext4 
           ID: /media/4668484A68483B47 size: 98G used: 28G (29%) fs: fuseblk ID: swap-1 size: 2.05GB used: 0.00GB (0%) fs: swap

To print out the unmounted partitions along with the mounted ones, use the "-o" option with "-p".

$ inxi -po
Partition: ID: / size: 97G used: 22G (24%) fs: ext4 ID: /media/13f35f59-f023-4d98-b06f-9dfaebefd6c1 size: 196G used: 132G (71%) fs: ext4 
           ID: /media/4668484A68483B47 size: 98G used: 28G (29%) fs: fuseblk ID: swap-1 size: 2.05GB used: 0.00GB (0%) fs: swap 
Unmounted: ID: /dev/sda1 size: 75.16G label: N/A uuid: 5E38BE8B38BE6227

Print the hard drive details like make, model and size with D option

$ inxi -D
Drives:    HDD Total Size: 500.1GB (38.8% used) 1: id: /dev/sda model: ST3500418AS size: 500.1GB

4. Optical drive details

The "-d" option can be used to print details about the all storage drives including hard drives, SSDs, optical drives like CD writer, dvd writer etc. It includes details like mount point, model name of the drive.

$ inxi -d
Drives:    HDD Total Size: 500.1GB (38.8% used) 1: id: /dev/sda model: ST3500418AS size: 500.1GB 
           Optical: /dev/sr0 model: N/A dev-links: cdrom
           Features: speed: 12x multisession: yes audio: yes dvd: yes rw: cd-r,cd-rw,dvd-r,dvd-ram

Here is a snapshot of the output from another system:

$ inxi -d
Drives:    Local Storage: total: 689.34 GiB used: 74.14 GiB (10.8%) 
           ID-1: /dev/sda vendor: Samsung model: SSD 840 EVO 120GB size: 111.79 GiB 
           ID-2: /dev/sdb vendor: Samsung model: SSD 850 EVO 120GB size: 111.79 GiB 
           ID-3: /dev/sdc type: USB vendor: Samsung model: Portable SSD T5 size: 465.76 GiB 
           Message: No Optical or Floppy data was found.

The above output shows 2 SSDs installed internally and 1 500G Portable SSD. Details like model name, and storage space on the drive are pretty accurate. If you have usb drives or flash drives attached to the system, those would show up here as well.

5. Network interfaces and configurations

The n option simply prints out the details about the network interface along with the configuration details. The details include the manufacturer and model of the network adapter along with the mac address.

$ inxi -n
Network:   Card: Intel 82566DC Gigabit Network Connection driver: e1000e 
           IF: eth0 state: up speed: 100 Mbps duplex: full mac: 00:1c:c0:f8:79:ee

Use the "-i" option along with "-n" to get ip address details (both wan and lan)

$ inxi -ni
Network:   Card: Intel 82566DC Gigabit Network Connection driver: e1000e 
           IF: eth0 state: up speed: 100 Mbps duplex: full mac: 00:1c:c0:f8:79:ee
           WAN IP: 122.163.33.2 IF: eth0 ip: 192.168.1.2

Here is the output from another system:

$ inxi -ni
Network:   Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet driver: r8169 
           IF: enp1s0 state: up speed: 100 Mbps duplex: full mac: 1c:1b:0d:c8:82:4d 
           IP v4: 192.168.1.207/16 type: noprefixroute scope: global 
           WAN IP: 110.225.4.108

As we can see, it also shows the external ip address of the network. This the ip address on the internet.

6. Get GPU Information (graphics card)

The -G or --graphics option can be used to get details about the gpu or graphics card along with the display drivers being used. It will also report the hardware acceleration api or driver being used.

The following output reports the integrated gpu in the Intel Core i5-7400 cpu.

$ sudo inxi -G
Graphics:
  Device-1: Intel HD Graphics 630 driver: i915 v: kernel
  Display: server: X.Org v: 1.21.1.7 with: Xwayland v: 23.2.0 driver: X:
    loaded: modesetting unloaded: fbdev,vesa dri: iris gpu: i915
    resolution: 1920x1080~75Hz
  API: OpenGL v: 4.6 Mesa 23.2.1-1ubuntu3 renderer: Mesa Intel HD Graphics
    630 (KBL GT2)
$

7. Show Audio (sound card) and graphics card information

The "-A" option is for audio information and "-G" is for graphics card information. Along with the hardware details, inxi shows the driver details as well.

$ inxi -AG
Graphics:  Card: Intel 82G35 Express Integrated Graphics Controller 
           X.Org: 1.14.3 drivers: intel (unloaded: fbdev,vesa) Resolution: [email protected] 
           GLX Renderer: Mesa DRI Intel 965G GLX Version: 2.1 Mesa 9.2.1
Audio:     Card: Intel 82801H (ICH8 Family) HD Audio Controller driver: snd_hda_intel Sound: ALSA ver: k3.11.0-12-generic

The graphics card details are also shown with the "-b" option.

Here is an output from another system

Graphics:  Device-1: Intel HD Graphics 630 driver: i915 v: kernel 
           Display: x11 server: X.Org 1.20.5 driver: modesetting unloaded: fbdev,vesa resolution: 1440x900~60Hz 
           OpenGL: renderer: Mesa DRI Intel HD Graphics 630 (Kaby Lake GT2) v: 4.5 Mesa 19.2.8 
Audio:     Device-1: Intel 100 Series/C230 Series Family HD Audio driver: snd_hda_intel 
           Sound Server: ALSA v: k5.3.0-62-generic

Detailed information about the integrated audio card and the graphics card are shown in the output. Knowing the exact model you can search online and find other resources like drivers, troubleshooting guide etc.

8. Show motherboard information

To check motherboard information on linux with the inxi command use the -M or --machine option.

$ sudo inxi -M
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
$

The above output is on my ubuntu desktop machine with Gigabyte H110M-H-CF motherboard. Its running with UEFI but in Legacy BIOS Mode and the vendor of the firmware is American Megatrends.

9. Print full information

The "-F" option give a more detailed overview of the system compared to the b (basic) option. But it does not include everything that inxi can report.

# inxi -F
System:    Host: dhcppc3 Kernel: 2.6.32-358.11.1.el6.x86_64 x86_64 (64 bit) 
           Console: tty 0 Distro: CentOS release 6.4 (Final)
Machine:   System: innotek product: VirtualBox version: 1.2 serial: 0 
           Mobo: Oracle model: VirtualBox version: 1.2 serial: 0 Bios: innotek version: VirtualBox date: 12/01/2006
CPU:       Single core Intel Core2 Quad CPU Q8400 (-UP-) cache: 6144 KB flags: (lm nx sse sse2 sse3 ssse3) clocked at 2653.954 MHz 
Graphics:  Card: InnoTek Systemberatung VirtualBox Graphics Adapter 
           X-Vendor: N/A driver: N/A tty size: 76x26 Advanced Data: N/A for root out of X
Audio:     Card: Intel 82801AA AC'97 Audio Controller driver: Intel ICH Sound: ALSA ver: 1.0.21
Network:   Card: Intel 82540EM Gigabit Ethernet Controller driver: e1000 
           IF: eth0 state: up speed: 1000 Mbps duplex: full mac: 08:00:27:54:e4:c6
Drives:    HDD Total Size: 4.3GB (32.6% used) 1: id: /dev/sda model: VBOX_HARDDISK size: 4.3GB 
Partition: ID: / size: 2.5G used: 1.3G (53%) fs: ext4 ID: /boot size: 485M used: 52M (12%) fs: ext4 
           ID: swap-1 size: 1.04GB used: 0.00GB (0%) fs: swap 
RAID:      No RAID devices detected - /proc/mdstat and md_mod kernel raid module present
Sensors:   None detected - is lm-sensors installed and configured?
Info:      Processes: 76 Uptime: 34 min Memory: 92.1/490.6MB Runlevel: 3 Client: Shell (bash) inxi: 1.9.14

Use the i option to print the ip address information

$ inxi -Fi

10. Print extra data

The x option can be used with individual options to print extended or extra information about that particular hardware or profile

To print addtional information about audio system

$ inxi -A -x
Audio:     Card: Intel 82801H (ICH8 Family) HD Audio Controller driver: snd_hda_intel bus-ID: 00:1b.0 
           Sound: Advanced Linux Sound Architecture ver: k3.11.0-12-generic

To get extra information about any subset of hardware profile use the x option like above. To get more extra information use -xx. To get even more extra information use -xxx. Inxi can't give you anything more beyond that.

Using the "-x" option with "-F" will show a lot of information all hardware parts.

Here is an example:

$ inxi -Fx
System:    Host: desktop Kernel: 5.3.0-62-generic x86_64 bits: 64 compiler: gcc v: 9.2.1 Desktop: KDE Plasma 5.16.5 
           Distro: Ubuntu 19.10 (Eoan Ermine) 
Machine:   Type: Desktop System: Gigabyte product: H110M-H v: N/A serial: <root required> 
           Mobo: Gigabyte model: H110M-H-CF v: x.x serial: <root required> UEFI [Legacy]: American Megatrends v: F20 
           date: 11/16/2016 
CPU:       Topology: Quad Core model: Intel Core i5-7400 bits: 64 type: MCP arch: Kaby Lake rev: 9 L2 cache: 6144 KiB 
           flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 24000 
           Speed: 3300 MHz min/max: 800/3500 MHz Core speeds (MHz): 1: 3300 2: 3300 3: 3300 4: 3300 
Graphics:  Device-1: Intel HD Graphics 630 vendor: Gigabyte driver: i915 v: kernel bus ID: 00:02.0 
           Display: x11 server: X.Org 1.20.5 driver: modesetting unloaded: fbdev,vesa resolution: 1440x900~60Hz 
           OpenGL: renderer: Mesa DRI Intel HD Graphics 630 (Kaby Lake GT2) v: 4.5 Mesa 19.2.8 direct render: Yes 
Audio:     Device-1: Intel 100 Series/C230 Series Family HD Audio vendor: Gigabyte driver: snd_hda_intel v: kernel 
           bus ID: 00:1f.3 
           Sound Server: ALSA v: k5.3.0-62-generic 
Network:   Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet vendor: Gigabyte driver: r8169 v: kernel 
           port: e000 bus ID: 01:00.0 
           IF: enp1s0 state: up speed: 100 Mbps duplex: full mac: 1c:1b:0d:c8:82:4d 
Drives:    Local Storage: total: 689.34 GiB used: 74.15 GiB (10.8%) 
           ID-1: /dev/sda vendor: Samsung model: SSD 840 EVO 120GB size: 111.79 GiB 
           ID-2: /dev/sdb vendor: Samsung model: SSD 850 EVO 120GB size: 111.79 GiB 
           ID-3: /dev/sdc type: USB vendor: Samsung model: Portable SSD T5 size: 465.76 GiB 
Partition: ID-1: / size: 93.37 GiB used: 74.15 GiB (79.4%) fs: ext4 dev: /dev/sda1 
Sensors:   System Temperatures: cpu: 56.0 C mobo: N/A 
           Fan Speeds (RPM): N/A 
Info:      Processes: 322 Uptime: 5h 40m Memory: 31.28 GiB used: 9.97 GiB (31.9%) Init: systemd runlevel: 5 Compilers: 
           gcc: 9.2.1 Shell: bash v: 5.0.3 inxi: 3.0.36

11. Show distro specific repository data

The "-r" option shows the repositories being used by the system. Note that different distros like Ubuntu and Fedora use different repositories and package management tools.

On an Ubuntu system the output would look something like this:

$ inxi -r
Repos:     Active apt sources in file: /etc/apt/sources.list
           deb http://in.archive.ubuntu.com/ubuntu/ saucy main restricted
           deb-src http://in.archive.ubuntu.com/ubuntu/ saucy main restricted
           deb http://in.archive.ubuntu.com/ubuntu/ saucy-updates main restricted
           deb-src http://in.archive.ubuntu.com/ubuntu/ saucy-updates main restricted
           deb http://in.archive.ubuntu.com/ubuntu/ saucy universe
           deb-src http://in.archive.ubuntu.com/ubuntu/ saucy universe
           deb http://in.archive.ubuntu.com/ubuntu/ saucy-updates universe
           deb-src http://in.archive.ubuntu.com/ubuntu/ saucy-updates universe
           deb http://in.archive.ubuntu.com/ubuntu/ saucy multiverse
           deb-src http://in.archive.ubuntu.com/ubuntu/ saucy multiverse
           deb http://in.archive.ubuntu.com/ubuntu/ saucy-updates multiverse
           deb-src http://in.archive.ubuntu.com/ubuntu/ saucy-updates multiverse
           deb http://in.archive.ubuntu.com/ubuntu/ saucy-backports main restricted universe multiverse
           deb-src http://in.archive.ubuntu.com/ubuntu/ saucy-backports main restricted universe multiverse
           deb http://security.ubuntu.com/ubuntu saucy-security main restricted
           deb-src http://security.ubuntu.com/ubuntu saucy-security main restricted
           deb http://security.ubuntu.com/ubuntu saucy-security universe
           deb-src http://security.ubuntu.com/ubuntu saucy-security universe
           deb http://security.ubuntu.com/ubuntu saucy-security multiverse
           deb-src http://security.ubuntu.com/ubuntu saucy-security multiverse
           deb http://extras.ubuntu.com/ubuntu saucy main
           deb-src http://extras.ubuntu.com/ubuntu saucy main
           deb http://archive.canonical.com/ saucy partner
           deb http://download.virtualbox.org/virtualbox/debian saucy contrib
           Active apt sources in file: /etc/apt/sources.list.d/google-chrome.list
           deb http://dl.google.com/linux/chrome/deb/ stable main

This is really a very quick and easy way to check the repositories being used by the system. Alternatively you have to use the synaptic package manager to see the same information.

On CentOS you would get something like this

# inxi -r
Repos:     Active yum sources in file: /etc/yum.repos.d/CentOS-Base.repo
           base ~ http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
           updates ~ http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
           extras ~ http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
           Active yum sources in file: /etc/yum.repos.d/epel.repo
           epel ~ https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
           Active yum sources in file: /etc/yum.repos.d/nginx.repo
           nginx ~ http://nginx.org/packages/centos/$releasever/$basearch/

Summary

Each command line option prints out information about a specific hardware part. Select the ones needed or print all of it, either way its very simple and quick.

If you need a gui tool that can report hardware information in a similar manner, try using hardinfo. Its a very simple and easy to use system information viewer.

Resources

Here is the official github page of inxi and its source code.
https://github.com/smxi/inxi

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].

3 Comments

How to use “Inxi” to check Hardware Information on Linux
  1. trash80

    Thank you for the great review/overview. Years ago when we started this project, I didn’t believe it would be as popular as it is today. It started out as a patched (h2) infobash script and school project (me). Over the years, h2 has done a lot of work adding feature requests and squashing bugs. Once again, thank you.

  2. guest

    sudo apt-get install inxi
    Reading package lists… Done
    Building dependency tree
    Reading state information… Done
    E: Unable to locate package inxi

Leave a Reply

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