すべてのロード可能なカーネルモジュールをリストする方法


65

私はロードするために、いくつかのカーネルモジュールを探していますi2c-devi2c-bcm2708。ただし、modprobeコマンドは以下を返します。

sudo modprobe i2c-dev
modprobe: module i2c-dev not found in modules.dep

システムで利用可能なすべてのモジュールを一覧表示するにはどうすればよいですか?それらはどのディレクトリにありますか?


1
カーネルはこのi2c-devをコンパイルしませんでした。このモジュールは見つかりませんでした。カーネルモジュールは/ lib / modules / 'kernel-version' / driversにあります。Linuxドライバーを探しているとき。
supriady

/ boot / config-'kernel-version 'で確認し、この構成ファイルを読むことができます。どのLinuxモジュールがロードされているか、モジュラーであるか、カーネルのコンパイル中にi2c-devモジュールが有効になっていません。
supriady

回答:


76
  • デフォルトでmodprobeは、ディレクトリにあるサブディレクトリからモジュールをロードします/lib/modules/$(uname -r)。通常、すべてのファイルには拡張子が付いている.koため、次のようにリストできます。

    find /lib/modules/$(uname -r) -type f -name '*.ko'
    

    または、圧縮ファイルを考慮に入れて:

    find /lib/modules/$(uname -r) -type f -name '*.ko*'
    
  • ただし、モジュールを正常にロードするにmodprobeは、ファイルにリストされた依存関係/lib/modules/$(uname -r)/modules.dep(および対応するバイナリバージョンmodules.dep.bin)が必要です。システムにモジュールが存在するがリストにない場合は、そのdepmodような依存関係を生成し、モジュールをmodules.depとに自動的に含めるコマンドを実行する必要がありますmodules.dep.bin

  • さらに、モジュールが正常にロードされると、ファイルにリストされます/proc/modules(コマンドを介してアクセスすることもできますlsmod)。


3
Redhat 7モジュールファイルは.xzで圧縮されています(カーネルバージョンとOSバージョンのどちらが原因なのかわかりません。誰かがそれを明確にできるかどうかはわかりませんか?)。代わりに使用 find /lib/modules/$(uname -r) -type f -name *.ko*
-Pozinux

1
@Pozinuxは結末を持っている、4.13.10でアーチをLinux上、ここで同じことを発見.gz
ヨハン

1
@posinux:注意:*.ko*現在のディレクトリに一致するファイルがある場合、シェルが展開する可能性があります。単一引用符の間にエスケープする方が良い: find /lib/modules/$(uname -r) -type f -name '*.ko*'
オリビエデュラック

10

modprobeTabキーを押して入力すると、オートコンプリートリストにすべてのロード可能なモジュールが含まれるはずです


11
一部のシステムでは機能しません
-avtomaton

5

ありlsmodのコマンドkmodでパッケージアーチLinuxの一覧とのような他の有用なコマンドが含まれているLinuxカーネルモジュールの状態を示してどのようなmodinformmod modprobeあまりにもが。

L ISTあなたが入力できるパッケージで提供されるすべてのバイナリ:

pacman -Ql kmod | grep /bin/ --color=always

、そしてあなたもをチェックすることができる入出力とバイナリのwnerパッケージpacman -Qo lsmod


Qスイッチがにあるのq ueryでローカルにインストールされたパッケージ(とは違っSのS ynchronize、すなわち。リモートで確認すること)。


2
強調表示することが重要なのlsmodは、既にロードされているモジュールのみを表示することです。このスレッドの作成者には、ロード可能なカーネルモジュールのマップにないモジュールをロードする問題がありました。また、このソリューションはarchlinuxにのみ適用されます。これは著者の分布ではなく、他の人の問題を解決しないかもしれません。
アケンド

@Akendo lsmodは少なくともUbuntuでも利用可能です。しかし、私はこれがOPの問題を解決しないことに同意します。
メレビウス

2

を使用することを好みますdepmod。次のコマンドを使用するdepmod -av|grep MOD_NAMEと、システムはmodules.dep / mapファイルを生成し、それを介してgrepします。この-vパラメーターは、冗長性と-a、すべての可能なモジュール/lib/modules/がmodules.depファイルに使用されるようにするために重要です。

これにより、要求されたカーネルモジュールがロード可能としてカーネルにマップされることを保証できます。目的のカーネルモジュールが出力にリストされていない場合、カーネルがそれを見つけられないことがわかります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.