web-dev-qa-db-ja.com

すべてのロード可能なカーネルモジュールを一覧表示する方法は?

i2c-devi2c-bcm2708をロードするカーネルモジュールをいくつか探しています。しかし、modprobeコマンドは次を返します:

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

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

68
UserK
  • デフォルトでは、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からもアクセスできます)。

80
jimmij

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

10
Martin Hansen

Arch Linux にはlsmodパッケージのkmodコマンドがあり、modinfoなどの他の便利なコマンドを含むLinuxカーネルモジュールのステータスを一覧表示します、rmmodmodprobeも。

listパッケージに提供されているすべてのバイナリをリストするには、次のように入力します。

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

、およびpacman -Qo lsmodを使用して、バイナリのownerパッケージを確認することもできます。


Qスイッチはqローカルにインストールされたパッケージにあります(Ssとは異なります)つまり、リモートでチェックします)。

8
user86041

私はdepmodを使用することを好みます。コマンド:depmod -av|grep MOD_NAME、システムはmodules.dep/mapファイルを生成し、それをgrepします。 -vパラメータは冗長性にとって重要であり、-aは、/lib/modules/は、modules.depファイルに使用されます。

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

2
Akendo