Home » Wiki » Guidelines on how to compile a hardware device page
Guidelines on how to compile a hardware device page

In order to compile a hardware device please follow the instructions on this page. You could also be interested in reading this help page which gives very specific instructions on how to get detailed information about your hardware.

These are the entries you will find inside the inserting/updating pages:

Model name

Inside this entry you have to write the name of the device as listed by the lspci (if it is a PCI device) or lsusb (if it is a USB device) commands. Please read this guide to learn how to find it.

Possible other names of the device

In order to collect as more information as possible, please add inside this entry the name of the device as printed on the device itself or on the device box, or the name used by the shop that have sold that device to you. Add it only if it is different from the name already inserted inside the model name entry

When inserting a new name inside this entry please use the format listed below

%vendor name% %device name%

where %vendor name% and %device name% are the vendor and the name as printed on the device itself (or written on the device box) and not the one indicated by the lspci command.

In this way a user that is searching for a device has more possibilities to find it: using the name as indicated on the box or on the device or as listed in a online store or in a shop, or using the name indicated by the lspci or lsusb command.

Vendor name
In case of notebooks

In the case of notebooks you have to insert the vendor name of your notebook by choosing from a list of allowed vendors

In case of other devices

If the device is not a notebook you don't have to insert the vendor name, it is automatically retrieved from the vendorid code you have inserted inside the vendorid:productid entry (see below).

If the vendor is not found in the list of known vendors the system ask the user to add an issue in order to ask the insertion of the new vendor/vendorid.

The vendor list has been taken from the PCI ID repository and from the USB ID repository. You can see the list of the vendor id inserted

Does the device prevent the installation of wifi cards not-approved by the vendor?

Many BIOSes have a Wifi card whitelist set by the OEM. Use a search engine to search for "[your specific model + BIOS wifi whitelist]". This should help determine if a whitelist is in place. If no results are returned, purchase a compatible libre wifi card to confirm.

Does it have a free boot firmware (BIOS,UEFI,...) ?
  • No - Virtually all OEM bootloaders, coreboot (because of necessary proprietary blobs)
  • Yes - Only in extremely rare cases. YeeLoong 8101B is the lone entry so far.
  • Can be installed - Libreboot support
Kernel version

If you have tested the device with more than one distribution please specify the kernel version (among the ones of those distributions) according to the following directives:

  • if the device works choose the oldest kernel (with which the device works)
  • if the device does not work choose the newest kernel
Compatibility classes
Compatibility classes
vendorid:productid

The vendorid:productid code is used to find a device in the search page. Also, the system checks that a device with the same code is not present in the database. This is useful to avoid hardware duplication

(Thanks Michał Masłowski and Julius22)

If the device is integrated (example: a video card)

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
05:00.0 VGA compatible controller [0300]: nVidia Corporation G86 [GeForce 8400M GS] [ 10de:0427 ] (rev a1)
	Kernel modules: nouveau, nvidiafb

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

If the device is an USB device (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

Description
In case of notebook

Below is a brief list of what could be specified inside the description entry:

  • Number of cores
  • CPU model using the /proc/cpuinfo command (write it inside the code tag)
  • specify if the clock frequency changing is supported or not
  • specify if the fan is included and if its frequency can be changed
List the outputs of the lsusb, lspci, and lscpu commands like the examples below:

~$ lsusb

Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 04f2:b217 Chicony Electronics Co., Ltd Lenovo Integrated Camera (0.3MP)
Bus 001 Device 003: ID 147e:2016 Upek Biometric Touchchip/Touchstrip Fingerprint Sensor
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

~$ lspci

00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (rev 04)
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b4)
00:1c.1 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 2 (rev b4)
00:1c.3 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 4 (rev b4)
00:1c.4 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 5 (rev b4)
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation QM67 Express Chipset Family LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (rev 04)
00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 04)
03:00.0 Network controller: Intel Corporation Centrino Advanced-N 6205 [Taylor Peak] (rev 34)
0d:00.0 System peripheral: Ricoh Co Ltd MMC/SD Host Controller (rev 07)

~$ lscpu

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 42
Stepping:              7
CPU MHz:               908.593
BogoMIPS:              4983.87
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              3072K
NUMA node0 CPU(s):     0-3
In case of scanner

Specify the type of scanner:

Full-size scanner

Flatbed scanner

Portable scanner

External resources

Include any miscellaneous links or information.

Example:

http://www.thinkwiki.org/wiki/Category:X60_Tablet

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