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
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.
sudo apt-get install inxi
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package inxi
first step: sudo apt-get update