Linux

查找特定硬體的驅動程序(不會自動安裝)

  • July 22, 2013

有沒有一些通用的方法來找出我必須在我的 linux 系統上安裝的驅動程序的名稱,只給出硬體名稱?也許是一些集中的網頁或應用程序,它收集了所有硬體資訊及其相關的驅動程序?或者我能做的就是在網路瀏覽器上搜尋它?在這種情況下你會怎麼做?

例如,我想知道硬體“Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller”的驅動程序名稱

LKDDb

您可以在此處搜尋 Linux 核心中包含的驅動程序,http://cateee.net/lkddb/web-lkddb/>。首頁在這裡,<http://cateee.net/lkddb/

關於 LKDDb

LKDDb 是一個嘗試建立一個 Linux 核心知道的硬體和協議的綜合數據庫。驅動程序數據庫包括硬體的數字標識符、建構驅動程序所需的核心配置菜單和驅動程序文件名。數據庫是從核心源自動建構的,因此很容易隨時更新數據庫。

不包括驅動程序

您通常必須通過 Linux 核心按硬體名稱搜尋,以查看它是否提供了開箱即用的驅動程序。如果沒有,那麼您需要訪問製造商網站,或者如果它是由 Intel 或 NVidia 或其他人完成的參考設計,請在他們的網站上搜尋相應的驅動程序。

我使用的是什麼驅動程序?

要查看您已經擁有的硬體正在使用哪些驅動程序/模組,您可以使用該工具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: &lt;access denied&gt;
   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 &lt;unassigned&gt; [disabled]
   Capabilities: &lt;access denied&gt;
   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
...

參考

引用自:https://unix.stackexchange.com/questions/83985