Home » Wiki » Discover your hardware
Discover your hardware

In order to know the details of your hardware you can carry out the following actions:

Notebook model name

See below your notebook or netbook. Usually there is a sticker where you can find the full name of your computer. Sometimes this sticker can be under the battery.

Just looking a sticker or printed letters next to you keyboard is usually not enough. For example, you can find "pavilion dv<single number here>" printed on many pavilion laptops like in the pavilion dv7 series, but the full model number (like dv7-4021so) is located elsewhere, like below your notebook.

In some rare cases, it is possible that all indicating stickers are removed. Then, use the following command:

sudo dmidecode | grep "System Information" -A 2

Using this command is not recommended. It is not always reliable. Use it only as a last resort.

The model name of your device (if it is not a notebook)
If the device is integrated (example: a video card)

Open a terminal and type the following command:

lspci

or

lspci > FILENAME          # output to a file

You will obtain the list of your PCI devices, similar to the one written below.

00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
03:00.0 Network controller: Broadcom Corporation BCM4311 802.11b/g WLAN (rev 02)
01:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce 8400 GS Rev. 3] (rev a2)

Note: The name of each device is written after the colon (see the text in bold in the above list)

USB devices (example: an external USB wifi card)

Open a terminal and type the following command:

lsusb -v

or

lsusb -v > FILENAME          # output to a file

You will obtain the list of your USB devices, similar to the one written below

Bus 001 Device 002: ID 0846:4260 NetGear, Inc. WG111v3 54 Mbps Wireless [realtek RTL8187B]
Device Descriptor:
    bLength						18
    bDescriptorType				1
    bcdUSB						2.00
    bDeviceClass				0 (Defined at Interface level)
    bDeviceSubClass				0
    bDeviceProtocol				0
    bMaxPacketSize0				64
    idVendor					0x0846 NetGear, Inc.
    idProduct					0x4260 WG111v3 54 Mbps Wireless [realtek RTL8187B]
    bcdDevice					2.00
    iManufacturer				1
    iProduct					2
    iSerial						3
    ...
    ...

Bus 002 Device 003: ID 08ff:2580 AuthenTec, Inc. AES2501 Fingerprint Sensor
Device Descriptor:
    bLength						18
    bDescriptorType				1
    bcdUSB						1.10
    bDeviceClass				255 Vendor Specific Class
    bDeviceSubClass			 	255 Vendor Specific Subclass
    bDeviceProtocol			 	255 Vendor Specific Protocol
    bMaxPacketSize0				8
    idVendor					0x08ff AuthenTec, Inc.
    idProduct					0x2580 AES2501 Fingerprint Sensor
    bcdDevice					6.23
    iManufacturer				0
    iProduct					1 Fingerprint Sensor
    iSerial						0
    bNumConfigurations			1
    ...
    ...

Note: The name of each device is written at the row starting with "idProduct" (see the text in bold in the above list)

Another program that can be handy to retrieve hardware information, specially USB drivers used by the system is hwinfo. Note that this doesn't come with a standard GNU/Linux distribution, and you'll have to install it with your package management system or from source code.

Another program that can be handy to retrive hardware information is lshw and in some distributions (as Trisquel) you can install a graphical interface (lshw-gtk)

Notebook architecture

Open a terminal and type the following command:

lscpu

You will obtain information about your CPU(s), like this:

Architecture:          i686
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    2
CPU socket(s):         1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 23
Stepping:              6
CPU MHz:               1998.000
BogoMIPS:              5999.68
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              6144K

The strings in bold (in the above list) are the code you are looking for. The code on Architecture row gives you a general idea of your laptop's architecture (x86, x86-64/amd64, ARM, MIPS) and the one on CPU op-mode(s) row specifies the bit mode (32-bit, 64-bit).

If your architecture is reported as i386 or i686, you have either a x86 or x86-64 machine and you need to check if it supports the 64-bit op-mode (x86 is 32-bit and x86-64 is 64-bit). In the example above, the machine is x86-64. For other architectures, it should be quite easy to see what they are.

If your system doesn't have lscpu command and you cannot or don't want to install it, use the uname -m command to get the architecture name just like in the lscpu's Architecture row. You might also want to manually check the /proc/cpuinfo system file which lscpu uses to generate its data from. Open a terminal and type the following command:

cat /proc/cpuinfo

To find out if your laptop is a x86-64 machine, you can use the following command:

cat /proc/cpuinfo | grep "lm"

If you get a message like the following and you can find the lm flag from it, then your machine has a x86-64/amd64 architecture and you can choose a x86-64/amd64 distro to run on it.

flags		: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush 
dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf 
pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm
The kernel libre version you are using

Open a terminal and type the following command:

uname -r
VendorID:ProductID code of your device

(Thanks Michał Masłowski and Julius22)

PCI and PCIe cards

Open a terminal and type the following command:

sudo lspci -nnk

You should obtain a list of hardware similar to the one written below

03:00.0 Network controller [0280]: Broadcom Corporation BCM4311 802.11b/g WLAN [14e4:4311] (rev 02)
    Kernel driver in use: b43-pci-bridge
    Kernel modules: ssb
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GT218 [GeForce 8400 GS Rev. 3] [10de:10c3] (rev a2)
	Subsystem: eVga.com. Corp. Device [3842:1303]
	Kernel driver in use: nouveau

Some hardware holds multiple devices, and lots of devices has subsystems.

05:00.0 PCI bridge [0604]: PLX Technology, Inc. PEX8112 x1 Lane PCI Express-to-PCI Bridge [10b5:8112] (rev aa)
06:04.0 Multimedia audio controller [0401]: C-Media Electronics Inc CMI8788 [Oxygen HD Audio] [13f6:8788]
	Subsystem: ASUSTeK Computer Inc. Virtuoso 100 (Xonar Essence STX) [1043:835c]
	Kernel driver in use: snd_virtuoso

The strings in bold and placed inside the square brackets (in the above list) are the code you are looking for. The first set of digits (before the colon) are the VendorID, the second set of digits are the ProductID. In the above example: the VendorID:ProductID code of the wifi card (note the strings "Network controller" and "WLAN") is 14e4:4311 while the VendorID:ProductID code of the video card (note the string "VGA") is 10de:0427

USB devices (example: an external USB wifi card)

Open a terminal and type the following command:

sudo lsusb

You should obtain a list of hardware similar to the one written below

Bus 001 Device 002: ID 0846:4260 NetGear, Inc. WG111v3 54 Mbps Wireless [realtek RTL8187B]
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 003: ID 08ff:2580 AuthenTec, Inc. AES2501 Fingerprint Sensor

The strings in bold (in the above list) are the code you are looking for. The first set of digits (before the colon) are the VendorID, the second set of digits are the ProductID. In the above example: the VendorID:ProductID code of the external USB wifi card (note the strings "Wireless") is 0846:4260

The printer's driver you are using
If you are using cups

Open a terminal and type the following command:

dpkg-query -W -f '${Version}\n' cups
The USB device's driver you are using

The easiest way to know the driver used by a USB device is with hwinfo

Open a terminal and type the following command:

hwinfo --usb

You should obtain a list of hardware similar to the one written below

19: USB 00.0: 0000 Unclassified device
  [Created at usb.122]
  Unique ID: FKGF.WYbsxjVsRmA
  Parent ID: pBe4.v+N+B0xY+P6
  SysFS ID: /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0
  SysFS BusID: 2-1:1.0
  Hardware Class: unknown
  Model: "Microdia Triplex i-mini PC Camera"
  Hotplug: USB
  Vendor: usb 0x0c45 "Microdia"
  Device: usb 0x6029 "Triplex i-mini PC Camera"
  Revision: "1.01"
  Driver: "sonixb"
  Driver Modules: "gspca_sonixb"
  Speed: 12 Mbps
  Module Alias: "usb:v0C45p6029d0101dc00dsc00dp00icFFiscFFipFF"
  Driver Info #0:
    Driver Status: gspca_sonixb is active
    Driver Activation Cmd: "modprobe gspca_sonixb"
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #9 (Hub)

The string in bold (in the above list) is the driver that the USB device is using so it can work on your system.

Return to Help Page

The contents of this page are in the Public Domain. (see the CC0 page for detailed information). Anyone is free to copy, modify, publish, use, sell, or distribute the text for any purpose, commercial or non-commercial, and by any means.

Write below your motivation

h-node.org is a hardware database project. It runs the h-source PHP software, commit cdeda15, available under the GNU General Public (GPLv3) License.
JavaScript license information