Table of Contents
You just bought a shiny new motherboard, but the Linux kernel doesn't recognise some (or all) of the on-board PCI devices. Time to panic? Not quite yet. Let's say you get something like this:
# lspci 00:00.0 Class 0600: Unknown device 8086:29c0 (rev 02) 00:01.0 Class 0604: Unknown device 8086:29c1 (rev 02) 00:1a.0 Class 0c03: Unknown device 8086:2937 (rev 02) 00:1a.1 Class 0c03: Unknown device 8086:2938 (rev 02) 00:1a.2 Class 0c03: Unknown device 8086:2939 (rev 02) 00:1a.7 Class 0c03: Unknown device 8086:293c (rev 02) 00:1b.0 Class 0403: Unknown device 8086:293e (rev 02) 00:1c.0 Class 0604: Unknown device 8086:2940 (rev 02) 00:1c.4 Class 0604: Unknown device 8086:2948 (rev 02) 00:1c.5 Class 0604: Unknown device 8086:294a (rev 02) 00:1d.0 Class 0c03: Unknown device 8086:2934 (rev 02) 00:1d.1 Class 0c03: Unknown device 8086:2935 (rev 02) 00:1d.2 Class 0c03: Unknown device 8086:2936 (rev 02) 00:1d.7 Class 0c03: Unknown device 8086:293a (rev 02) 00:1e.0 Class 0604: Unknown device 8086:244e (rev 92) 00:1f.0 Class 0601: Unknown device 8086:2916 (rev 02) 00:1f.2 Class 0104: Unknown device 8086:2822 (rev 02) 00:1f.3 Class 0c05: Unknown device 8086:2930 (rev 02) 01:00.0 Class 0300: Unknown device 10de:0402 (rev a1) 03:00.0 Class 0106: Unknown device 197b:2363 (rev 02) 03:00.1 Class 0101: Unknown device 197b:2363 (rev 02) 04:00.0 Class 0200: Unknown device 10ec:8168 (rev 01) 05:06.0 Class 0c00: Unknown device 104c:8024
Don't despair! If you're running Debian or a Debian-like operating system, just say this:
You should get something like this:
--18:40:39-- http://pciids.sourceforge.net/v2.2/pci.ids.bz2 => `/usr/share/misc/pci.ids.new' Resolving pciids.sourceforge.net... 184.108.40.206 Connecting to pciids.sourceforge.net|220.127.116.11|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 127,849 (125K) [text/plain] 100%[
============>] 127,849 20.00K/s ETA 00:00 18:40:48 (19.97 KB/s) - `/usr/share/misc/pci.ids.new' saved [127849/127849] Done.
After this, try
lspci again, and you should get something
lspci uses a user-space database to resolve
PCI vendor:device pairs to human-readable strings. It
wget to download this from SourceForge, and places it
/usr/share/misc/pci.ids. The database is a text file,
and you can see it with your favourite viewer.
Far Too Frequently Asked Questions
Does ‘Unknown Device’ mean my device is unsupported?
No, it only
means that the command
lspci doesn't know the right name
of your device. The operating system itself tells devices apart by
their numeric IDs (the two numbers like
textual name is only maintained for the benefit of us humans.
If I do this, will it make my unsupported devices supported?
No. See above.
===If I don't do this, will it make my otherwise supported devices fail somehow?=== No. See above.
Does this work for PCI Express, PCI-X, 64-bit PCI et cetera?
Yes, it'll work on all devices that are listed by
even though some of them aren't ‘simple’ PCI.