web-dev-qa-db-ja.com

特定のハードウェアのドライバー(自動的にインストールされない)を検索する

ハードウェア名だけを指定して、Linuxシステムにインストールする必要のあるドライバーの名前を見つける方法はありますか?一般たぶん、すべてのハードウェア情報とそれに関連するdirverを収集する一元化されたWebページまたはアプリケーションですか?それとも私にできることはウェブブラウザで検索することだけですか?この場合、あなたは何をしますか?

たとえば、ハードウェア「Intel Corporation 82801HM/HEM(ICH8M/ICH8M-E)SATAController」のドライバー名を知りたい。

6
aleixrocks

LKDDb

Linuxカーネルに含まれているドライバーはここで検索できます http://cateee.net/lkddb/web-lkddb/ 。プライマリページはここにあります http://cateee.net/lkddb/

LKDDbについて
LKDDbは、Linuxカーネルが知っているハードウェアとプロトコルの包括的なデータベースを構築する試みです。ドライバデータベースには、ハードウェアの数値識別子、ドライバの構築に必要なカーネル構成メニュー、およびドライバファイル名が含まれています。データベースはカーネルソースから自動的に構築されるため、データベースを常に更新するのは非常に簡単です。

ドライバーは含まれていません

通常、Linuxカーネルを介してハードウェア名で検索し、そのままの状態でドライバーが提供されているかどうかを確認する必要があります。そうでない場合は、メーカーのWebサイトにアクセスする必要があります。それが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: <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
...

参考文献

6
slm