Is there some general way to find out the name of the driver which I have to install on my linux system given only the hardware name? Maybe some centralized webpage or application which gatters all the hardware information and it's related dirver? Or all which I can do is search it on a web browser? What do you do in this cases?

For example, I want to know the driver name for the hardware "Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller"

  • For what operating system? – ott-- Jul 22 '13 at 15:53
  • Linux system. A hardware driver is not dependent of the distribution, right? – aleixrocks Jul 22 '13 at 15:56
  • It's handled by the kernel, older versions may not know it if the controller is new. Simply search for linux driver SATA Controller. – ott-- Jul 22 '13 at 16:00
  • related: unix.stackexchange.com/questions/41817/… – slm Jul 22 '13 at 17:35


You can search for drivers that are included in the Linux Kernel here, http://cateee.net/lkddb/web-lkddb/. The primary page is here, http://cateee.net/lkddb/.

About LKDDb
LKDDb is an attempt to build a comprensive database of hardware and protocols know by Linux kernels. The driver database includes numeric identifiers of hardware, the kernel configuration menu needed to build the driver and the driver filename. The database is build automagically from kernel sources, so it is very easy to have always the database updated.

Drivers not included

You typically have to search by the hardware name through the Linux Kernel to see if it provides a driver out of the box. If not then you'll need to go to the manufacturers website or if it's a reference design done by Intel or NVidia or someone, search their site for corresponding drivers.

What drivers am I using?

To see what driver/modules are being used by hardware you already have you can use the tool lspci -v.

For example:

$ lspci -v
00:00.0 Host bridge: Intel Corporation Core Processor DRAM Controller (rev 02)
    Subsystem: Lenovo Device 2193
    Flags: bus master, fast devsel, latency 0
    Capabilities: <access denied>
    Kernel driver in use: agpgart-intel

00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 02) (prog-if 00 [VGA controller])
    Subsystem: Lenovo Device 215a
    Flags: bus master, fast devsel, latency 0, IRQ 45
    Memory at f2000000 (64-bit, non-prefetchable) [size=4M]
    Memory at d0000000 (64-bit, prefetchable) [size=256M]
    I/O ports at 1800 [size=8]
    Expansion ROM at <unassigned> [disabled]
    Capabilities: <access denied>
    Kernel driver in use: i915
    Kernel modules: i915

Notice the lines that say "Kernel driver in use" and "Kernel modules".

What drivers/modules does my Kernel already have loaded?

You can look to the Kernel's /proc filesystem for this info:

$ less /proc/modules
tcp_lp 2111 0 - Live 0xffffffffa00fc000
aesni_intel 12131 1 - Live 0xffffffffa0185000
cryptd 7111 1 aesni_intel, Live 0xffffffffa013c000
aes_x86_64 7758 1 aesni_intel, Live 0xffffffffa0128000
aes_generic 26908 2 aesni_intel,aes_x86_64, Live 0xffffffffa00f3000
fuse 61966 3 - Live 0xffffffffa030b000
cpufreq_powersave 1154 0 - Live 0xffffffffa00f0000
sunrpc 201569 1 - Live 0xffffffffa0580000
vboxpci 13918 0 - Live 0xffffffffa0576000
vboxnetadp 18145 0 - Live 0xffffffffa056c000

You can also use the command lsmod to get this info in a prettier format:

$ lsmod | less
Module                  Size  Used by
tcp_lp                  2111  0 
aesni_intel            12131  1 
cryptd                  7111  1 aesni_intel
aes_x86_64              7758  1 aesni_intel
aes_generic            26908  2 aesni_intel,aes_x86_64
fuse                   61966  3 
cpufreq_powersave       1154  0 
sunrpc                201569  1 
vboxpci                13918  0 
vboxnetadp             18145  0 

module info

You can use the command modinfo to find out more about a particular module:

$ modinfo tcp_lp
filename:       /lib/modules/
description:    TCP Low Priority
license:        GPL
author:         Wong Hoi Sing Edison, Hung Hing Lun Mike
srcversion:     8BFC408F81AB96C2D21A317
vermagic: SMP mod_unload 

What drivers/modules are available to my kernel?

You can look through this directory to see all the kernel drivers/modules that are provided by your system for use with your kernel:

$ ls /lib/modules/`uname -r`
build   modules.alias      modules.builtin.bin  modules.drm          modules.modesetting  modules.pcimap       modules.usbmap
extra   modules.alias.bin  modules.ccwmap       modules.ieee1394map  modules.networking   modules.seriomap     source
kernel  modules.block      modules.dep          modules.inputmap     modules.ofmap        modules.symbols      updates
misc    modules.builtin    modules.dep.bin      modules.isapnpmap    modules.order        modules.symbols.bin  vdso

You can list them out with this command:

$ find /lib/modules/`uname -r` -type f | less


  • I think "What drivers/modules do I already have?" is a bit misleading -- those are directions for finding out what (modular) drivers the kernel has loaded at present. It will not include drivers built into the kernel, and it will not include the bulk of the modules that your system has available, since they are not loaded (see /lib/modules). – goldilocks Jul 22 '13 at 18:14
  • @goldilocks - thanks! You'd be correct. Definitely didn't read the way I thought it did in my head 8-). I've fixed it and added a section on /lib/modules as well. – slm Jul 22 '13 at 18:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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