そこにいくつかありますか?一般的なハードウェア名だけが与えられたときにLinuxシステムにインストールする必要があるドライバの名前をどのように知ることができますか?すべてのハードウェア情報と関連ドライバを収集する集中型のWebページまたはアプリがありますか?それともWebブラウザで検索する必要がありますか?この状況では、どうしたらいいですか?
たとえば、ハードウェア「Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller」のドライバ名を知りたいと思います。
答え1
ikB
ここでは、Linuxカーネルに含まれているドライバを検索できます。http://cateee.net/lkddb/web-lkddb/。ホームページはこちら、http://cateee.net/lkddb/。
LKDDbについて
LKDDbは、Linuxカーネルに知られているハードウェアとプロトコルの包括的なデータベースを構築しようとします。ドライバデータベースには、ハードウェアの数値識別子、ドライバの構築に必要なカーネル設定メニュー、ドライバファイル名が含まれています。データベースはカーネルソースコードから自動的に構築されるため、常にデータベースを更新するのは簡単です。
ドライバは含まれていません
通常、Linuxカーネルを介してハードウェア名で検索して、デフォルトでドライバを提供していることを確認する必要があります。そうでない場合は、製造元のウェブサイトにアクセスする必要があります。または、Intel、Nvidia、または他の人が行った参照デザインの場合は、そのWebサイトで適切なドライバを検索する必要があります。
どのドライバを使用しますか?
すでに保持しているハードウェアでどのドライバ/モジュールが使用されているかを確認するには、このツールを使用できます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
...