i2c-dev
とi2c-bcm2708
をロードするカーネルモジュールをいくつか探しています。しかし、modprobe
コマンドは次を返します:
Sudo modprobe i2c-dev
modprobe: module i2c-dev not found in modules.dep
システムで使用可能なすべてのモジュールを一覧表示するにはどうすればよいですか?それらはどのディレクトリにありますか?
デフォルトでは、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
からもアクセスできます)。
modprobe
と入力してタブを押すと、オートコンプリートリストにすべてのロード可能なモジュールが含まれるはずです
Arch Linux にはlsmod
パッケージのkmod
コマンドがあり、modinfo
などの他の便利なコマンドを含むLinuxカーネルモジュールのステータスを一覧表示します、rmmod
modprobe
も。
listパッケージに提供されているすべてのバイナリをリストするには、次のように入力します。
pacman -Ql kmod | grep /bin/ --color=always
、およびpacman -Qo lsmod
を使用して、バイナリのownerパッケージを確認することもできます。
Q
スイッチはqローカルにインストールされたパッケージにあります(S
がsとは異なります)つまり、リモートでチェックします)。
私はdepmod
を使用することを好みます。コマンド:depmod -av|grep MOD_NAME
、システムはmodules.dep/mapファイルを生成し、それをgrepします。 -v
パラメータは冗長性にとって重要であり、-a
は、/lib/modules/
は、modules.depファイルに使用されます。
このようにして、要求されたカーネルモジュールがロード可能としてカーネルにマップされていることを確認できます。希望のカーネルモジュールが出力にリストされていない場合、カーネルがそれを見つけられないことがわかります。