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.dep
modules.dep.bin
depmod
modules.dep
modules.dep.bin
また、モジュールが正常にロードされると、ファイルにリストされます
/proc/modules
(コマンドを介してアクセスすることもできますlsmod
)。
答え2
Enterキーを押しながらmodprobe
Tabキーを押すと、オートコンプリートリストにロード可能なすべてのモジュールが含まれているはずです。
答え3
lsmod
パッケージコマンドがありますkmod
アーキテクチャLinux.modinfo
rmmod
modprobe
到着私以下は、入力できるパッケージによって提供されるすべてのバイナリです。
pacman -Ql kmod | grep /bin/ --color=always
、確認することもできますああpacman -Qo lsmod
.wner を含むバイナリパッケージ
Q
スイッチはキューローカルにインストールされたパッケージクエリS
(S同期、すなわちリモートチェック)。
答え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}'
モジュールのリストが表示されます。