有没有一些一般的如何在仅给出硬件名称的情况下找出我必须在 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
...