List the hardware info and status in my computer [duplicate]

Is there any built-in software or terminal method allowing me to view the hardware profiles on my system? Windows equivalent of such a feature would be Device Manager.


Solution 1:

There are a few options:

  • lspci will show you most of your hardware in a nice quick way. It has varying levels of verbosity so you can get more information out of it with -v and -vv flags if you want it. The -k argument is a good way to find out which kernel driver a piece of hardware is using. -nn will let you simply know the hardware ID which is great for searching.

    But it is only a very simple, quick way of getting a list of hardware. I often ask people to post the output of it here when trying to identify their wireless hardware. It's great for things like that.

    It doesn't show USB hardware other than the USB busses.

    Here are three real world examples:

    Graphics:

    $ lspci -nnk | grep VGA -A1
    03:00.0 VGA compatible controller [0300]: NVIDIA Corporation GF110 [GeForce GTX 580] [10de:1080] (rev a1)
        Kernel driver in use: nvidia
    

    Audio:

    $lspci -v | grep -A7 -i "audio"
    00:01.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Kabini HDMI/DP Audio
        Subsystem: Acer Incorporated [ALI] Device 080d
        Flags: bus master, fast devsel, latency 0, IRQ 34
        Memory at f0940000 (64-bit, non-prefetchable) [size=16K]
        Capabilities: <access denied>
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel
    
    --
    00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD] FCH Azalia Controller (rev 02)
        Subsystem: Acer Incorporated [ALI] Device 080d
        Flags: bus master, slow devsel, latency 32, IRQ 35
        Memory at f0944000 (64-bit, non-prefetchable) [size=16K]
        Capabilities: <access denied>
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel
    

    Networking:

    $ lspci -nnk | grep net -A2
    00:0a.0 Ethernet controller [0200]: NVIDIA Corporation MCP79 Ethernet [10de:0ab0] (rev b1)
        Subsystem: Acer Incorporated [ALI] Device [1025:0222]
        Kernel driver in use: forcedeth
    --
    05:00.0 Ethernet controller [0200]: Atheros Communications Inc. AR242x / AR542x Wireless Network Adapter (PCI-Express) [168c:001c] (rev 01)
        Subsystem: AMBIT Microsystem Corp. AR5BXB63 802.11bg NIC [1468:0428]
        Kernel driver in use: ath5k
    
  • lsusb is like lspci but for USB devices. Similar functionality with similar verbosity options. Good if you want to know what's plugged in.

  • sudo lshw will give you a very comprehensive list of hardware and settings.

    It gives you so much information, I suggest you pipe it through less or output it to a file and open that in something you can move around in:

    sudo lshw | less
    

    Of course this is usually a lot of information. You often only need info on a small subset of your hardware and lshw will let you select a category. If you just wanted to see your network devices, for example, run this:

    sudo lshw -c network
    
  • If you want something graphical, I suggest you look at hardinfo. You'll need to install it first:

    sudo apt-get install hardinfo
    

    You then just run it from the same terminal with hardinfo. I don't know that it has a menu location by default.

    But it can give you slightly more information (boots, available kernels, etc) than the other options, as well as giving you similar lists of PCI and USB hardware like the first two commands.

    It also provides some simple benchmarking. I think the developers aim to make it a replacement for Sandra (a popular Windows hardware information gathering tool).

    It even has options to output a nice report that you can send to somebody (though it can easily be too much information).

Hardinfo

Solution 2:

You can use lshw which is CLI tool:

sudo lshw

as the man page says:

lshw is a small tool to extract detailed information on the hardware configuration of the machine. It can report exact memory configuration, firmware version, mainboard configuration, CPU version and speed, cache configuration, bus speed, etc. on DMI-capable x86 or IA-64 systems and on some PowerPC machines (PowerMac G4 is known to work).

You can also use HardInfo:

HardInfo can gather information about your system's hardware and operating system, perform benchmarks, and generate printable reports either in HTML or in plain text formats.

It can also be easily extended, for developer documentation and full source code (released under GNU GPL version 2) is available.

enter image description here

Install it by running this command:

sudo apt-get install hardinfo

or look for hardinfo in Synaptic or Software Center.

Solution 3:

There are several ways to gather hardware information. I will post all the possibilities I know. For further information on any of the programs please consult their man pages.


Option one - lshw

lshw which should be installed by default. You'll have to run it as super user (sudo).

It will present a very detailed list of pretty much every component. To get a shorter list representation you can use the -short flag.

You can make it output the information in several ways.


Option two - hwinfo (needs install)

hwinfo which you'd have to install. It is in the repositories.

It does also present the components in a very detailed fashion. Here the --short flag will give you a nice hardware category sorted list.

With the --[hwtype] option you can get detailed information about a selected hardware type only, which is quite handy sometimes.


I don't know of any one-in-all solution to dis/enable hardware or drivers. Drivers generally are kernel modules which you can enable (add) and disable (remove) using the modprobe command.

Using lsmod you can find out which modules are currently loaded.

Solution 4:

lshw is a very good command that tells you a very detailed information of your hardware. If you don't want to install something else like hardinfo then it will be very good command. But use lshw (you can say list hardware to remember this command) with -html or -xml options to get the information in more interactive way.

Here it illustrates

    $ sudo lshw | less (or more)
    $ sudo lshw -html > myhardware.html
    $ sudo lshw -xml > myhardware.xml

Now just open .html or .xml files created in your current directory to get a complete description of your hardware.