Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm trying to find a way to accurately determine whether all the hardware on some system has a valid driver installed either via a kernel module or built-in to the kernel.

I'm working with RHEL 5.5 on a Dell Optiplex 990.

I know that lspci is a good starting point, but it's not reliable because it could be manually updated and new drivers don't always update it. I know that I can look look at /lib/modules/$(uname -r)/modules.pcimap to find out whether there is a driver module for the device base on the ID, but what about built-in drivers? I've installed a new kernel and I'm trying to find out whether the built-in agpgart-intel module supports the host bridge with vendor:device ID 8086:0100.

Also, is there a proper procedure for updating the pci.ids list when updating the kernel? I know I could just update everything using update-pciids or by downloading the list from the internet, but doesn't it make more sense to only include IDs supported by the current install?

share|improve this question
That's not exactly what you're looking for so I don't post it as an answer but it could be of some help: kmuto.jp/debian/hcl. (I didn't notice before but it uses a quite old PCI map) – lgeorget Apr 27 '13 at 2:24
Thanks, but yea, that doesn't really give me anything I don't already know. – deuberger Apr 29 '13 at 15:13
maybe ls /sys/bus/pci/devices/*/driver -l? – Alex Oct 16 '13 at 23:02
What if a device has a driver, but the driver is a piece of crap that crashes the system? Is that a "valid" driver or not? What is "valid?" What if the driver is incomplete? E.g. mouse driver that doesn't report button clicks? Is that "valid?". How about devices connected through other devices? Suppose I have a valid driver for a USB-Serial converter, but nothing is handling the temperature sensor on the other end? – Kaz Jul 12 '15 at 17:37
Speaking of USB, do you care whether there is a driver for, say, handling an audio device that happens to be plugged into a port? – Kaz Jul 12 '15 at 18:15

If you know the Kbuild symbols for the desired drivers, you can check /proc/config.gz or any other source of kernel configuration available (distributions usually place config in /boot alongside the kernel, or you could extract the config from the kernel with scripts/extract-ikconfig from the kernel source tree - provided the configuration was compiled into the kernel of course).

share|improve this answer
I might be misunderstanding, but I don't think that's what I'm looking for. The config will tell me whether a particular driver is built in, but not whether that driver supports the particular PCI ID that I need a driver for. Is that right? – deuberger Sep 17 '13 at 16:19
Yes, for that you have to look into the sources and/or documentation, I'm afraid. – peterph Sep 17 '13 at 17:28

You'd have to look up the devices listed for the machine against a list of devices supported by RHEL. Yes, there might be ones that happen to work but nobody has bothered to check/certify they work.

Be careful, sometimes devices with similar names (e.g. some Ethernet card called like SC-423+ was a completely different beast than the superficially identical SC-423; and once we got bitten by cards with the exact same model number that were quite different). And the other way around, completely different devices from separate providers were built on the same pieces. But also so that manufacturer A was rock solid, while B was flaky as hell.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.