Ubuntu – How to find the hardware details

hardware

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.

Best Answer

  • 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