查找特定硬件的驱动程序(不会自动安装)

查找特定硬件的驱动程序(不会自动安装)

有没有一些一般的如何在仅给出硬件名称的情况下找出我必须在 Linux 系统上安装的驱动程序的名称?也许是一些集中式网页或应用程序收集所有硬件信息及其相关驱动程序?或者我能做的就是在网络浏览器上搜索它?在这种情况下你会做什么?

例如,我想知道硬件“Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller”的驱动程序名称

答案1

LKDb

您可以在此处搜索 Linux 内核中包含的驱动程序,http://cateee.net/lkddb/web-lkddb/。主页在这里,http://cateee.net/lkddb/

关于 LKDDb
LKDDb 试图构建 Linux 内核已知的硬件和协议的综合数据库。驱动程序数据库包括硬件的数字标识符、构建驱动程序所需的内核配置菜单以及驱动程序文件名。该数据库是从内核源代码自动构建的,因此很容易始终更新数据库。

不包括驱动程序

您通常必须通过 Linux 内核按硬件名称进行搜索,以查看它是否提供开箱即用的驱动程序。如果没有,那么您需要访问制造商网站,或者如果它是由英特尔或英伟达或其他人完成的参考设计,请在他们的网站上搜索相应的驱动程序。

我使用什么驱动程序?

要查看您已有的硬件正在使用哪些驱动程序/模块,您可以使用该工具lspci -v

例如:

$ 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

请注意“正在使用的内核驱动程序”和“内核模块”的行。

我的内核已经加载了哪些驱动程序/模块?

您可以查看内核的/proc文件系统以获取以下信息:

$ 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
...

您还可以使用以下命令lsmod以更漂亮的格式获取此信息:

$ 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 
...

模块信息

您可以使用以下命令modinfo来查找有关特定模块的更多信息:

$ modinfo tcp_lp
filename:       /lib/modules/2.6.35.14-106.fc14.x86_64/kernel/net/ipv4/tcp_lp.ko
description:    TCP Low Priority
license:        GPL
author:         Wong Hoi Sing Edison, Hung Hing Lun Mike
srcversion:     8BFC408F81AB96C2D21A317
depends:        
vermagic:       2.6.35.14-106.fc14.x86_64 SMP mod_unload 

我的内核可以使用哪些驱动程序/模块?

您可以浏览此目录以查看系统提供的与内核一起使用的所有内核驱动程序/模块:

$ 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

您可以使用以下命令列出它们:

$ find /lib/modules/`uname -r` -type f | less
/lib/modules/2.6.35.14-106.fc14.x86_64/modules.dep.bin
/lib/modules/2.6.35.14-106.fc14.x86_64/modules.ieee1394map
/lib/modules/2.6.35.14-106.fc14.x86_64/modules.networking
/lib/modules/2.6.35.14-106.fc14.x86_64/modules.dep
/lib/modules/2.6.35.14-106.fc14.x86_64/modules.isapnpmap
/lib/modules/2.6.35.14-106.fc14.x86_64/modules.builtin
/lib/modules/2.6.35.14-106.fc14.x86_64/modules.seriomap
/lib/modules/2.6.35.14-106.fc14.x86_64/modules.usbmap
...

参考

相关内容