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... 126.96.36.199 Connecting to pciids.sourceforge.net|188.8.131.52|: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 more elucidating.
lspci uses a user-space database to resolve PCI vendor:device pairs to human-readable strings. It spawns
wget to download this from SourceForge, and places it in
/usr/share/misc/pci.ids. The database is a text ﬁle, and you can see it with your favourite viewer.
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
8086:1234). The textual name is only maintained for the beneﬁt of us humans.
No. See above.
No. See above.
Yes, it'll work on all devices that are listed by
lspci — even though some of them aren't ‘simple’ PCI.