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

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

i2c-devロードするカーネルモジュールを探していますが、i2c-bcm2708コマンドmodprobeが返されます。

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

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

答え1

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

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

    または、ファイル圧縮を検討してください。

    find /lib/modules/$(uname -r) -type f -name '*.ko*'
    
  • /lib/modules/$(uname -r)/modules.alias(および)に保存されているエイリアスを参照して、各モジュールをロードすることもできますmodules.alias.bin

  • ただし、モジュールを正常にロードするには、その依存関係(およびそのバイナリバージョン)をファイルにリストする必要がmodprobeあります。モジュールがシステムにあるがリストにない場合は、その依存関係を作成し、モジュールをintoおよびoutに自動的に含めるコマンドを実行する必要があります。/lib/modules/$(uname -r)/modules.depmodules.dep.bindepmodmodules.depmodules.dep.bin

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

答え2

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

答え3

lsmodパッケージコマンドがありますkmodアーキテクチャLinux.modinformmod modprobe

到着以下は、入力できるパッケージによって提供されるすべてのバイナリです。

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

、確認することもできますああpacman -Qo lsmod.wner を含むバイナリパッケージ


QスイッチはキューローカルにインストールされたパッケージクエリSS同期、すなわちリモートチェック)。

答え4

オートコンプリートがどのように機能するかを確認できます。

$ complete -p modprobe
complete -F _modprobe modprobe
declare -f _modprobe
_modprobe () 
{ 
...

その関数には_installed_modules

$ declare -f _installed_modules
_installed_modules () 
{ 
    COMPREPLY=($(compgen -W "$(PATH="$PATH:/sbin" lsmod |
        awk '{if (NR != 1) print $1}')" -- "$1"))
}

これにより、lsmod | awk '{if (NR != 1) print $1}'モジュールのリストが表示されます。

関連情報