はじめに
Linuxカーネルはモジュラー設計になっています。機能はモジュールまたはドライバーで拡張可能です。 modprobe
を使用します Linuxでモジュールを追加または削除するコマンド。このコマンドはインテリジェントに機能し、依存するモジュールを自動的に追加します。
カーネルはmodprobe
を使用します モジュールを要求します。 modprobe
コマンドは、標準でインストールされているモジュールディレクトリを検索して、必要なドライバを見つけます。
この記事では、modprobeを使用してカーネルモジュールを追加または削除する方法について説明します。
前提条件
- Linuxを実行しているシステム
- 端末/コマンドラインへのアクセス
- sudoのユーザーアカウント またはルート 特権
modprobeコマンド構文の説明
すべてのmodprobe
コマンドにはsudo権限が必要です。 modprobe
を使用するための一般的な構文 は:
sudo modprobe <options> <module name>
デフォルトでは、 modprobe
コマンドはモジュールを追加します。
複数のモジュールの場合は、オプション -a
で展開します または-all
:
sudo modprobe <options> -a <first module name> <second module name>
modprobeコマンドのオプション
利用可能なmodprobe
コマンドオプションは、ユースケースに基づいてカテゴリに分類されます。
管理オプション
管理オプションにより、挿入または削除時にさまざまなモジュール処理状況が可能になります modprobe
を含むモジュール コマンド。
--all -a | 複数のモジュールを同時に挿入または削除できるようにします。 |
--remove -r | モジュールを削除します。 --remove-dependencies を適用します 同じように。壊れたモジュールを削除するのに便利です。 |
--remove-dependencies | 依存関係モジュールを削除します。 |
--resolve-alias -R | エイリアスに一致するすべてのモジュール名を検索して出力します。エイリアスの問題のデバッグに役立ちます。 |
--first-time | すでに挿入または削除されたモジュールのエラーを出力します。 |
--ignore-install --ignore-remove -i | モジュールを挿入/削除するときに、モジュールに書き込まれたインストール/削除コマンドを無視します。 |
--use-blacklist -b | ブラックリストで解決されたエイリアス。ブラックリストに登録されたモジュールは自動的にロードされません。 |
--force -f | バージョンエラーが表示された場合は、モジュールの挿入または削除を強制します。 --force-modversion の両方を適用します および--force-vermagic 。注意して使用してください。 |
--force-modversion | 挿入または削除時にモジュールバージョンを無視します。注意して使用してください。 |
--force-vermagic | 挿入または削除時にモジュールバージョンの魔法を無視します。注意して使用してください。 |
クエリオプション
modprobe
のクエリオプション 構成と依存関係に関する情報を表示します。
--show-depends -D | 依存関係ファイルがある場合は、モジュールと依存関係ファイルを一覧表示します。モジュールとともにインストールされる依存関係には、「インストール」プレフィックスが付いています。 |
--showconfig --show-config -c | 現在の構成を出力して存在します。 |
--show-modversions --dump-modversions | モジュールバージョンの依存関係をダンプします。 |
一般オプション
一般的なオプションは、 modprobe
を構成します 出力オプション、モジュールの場所、およびバージョン。
--dry-run --show -n | 挿入/削除を実行せずに、出力を出力します。デバッグ目的で使用されます。 |
--config=<file name> -C | デフォルトの構成依存関係( /etc/modprobe.d )をオーバーライドします )<ファイル名> 。 |
--dirname=<directory> -d | <ディレクトリ>を使用する / lib / modulesのファイルシステムルートとして 。 |
--set-version=<version> -S | 指定されたカーネルを使用するuname を使用する代わりに 。 |
--syslog -s | syslogを介してエラーメッセージを出力します 標準エラーの代わりに( stderr )。 stderrの場合 が利用できない場合、エラーは syslogに出力されます 自動的に。 |
--quiet -q | エラーメッセージの表示を無効にします。 |
--verbose -v | 可能な場合は、より多くのメッセージを表示できるようにします。 modprobe 何か問題が発生した場合にのみメッセージを出力します。 |
--version -V | modprobe を表示します バージョン。 |
--help -h | リストされているすべてのコマンドを含むヘルプメッセージを表示します。 |
modprobeコマンドの例
すべてのカーネルモジュールは、 / lib / modulesにリストされています。 .koのディレクトリシステム (カーネルオブジェクト)デフォルトのファイル。
次のコマンドを使用して、現在のカーネルバージョンで使用可能なすべてのモジュールを検索します。
find /lib/modules/$(uname -r) -type f -name '*.ko*' | more
注: 古いカーネルバージョンを削除することを検討してください。 Ubuntuで古いカーネルを削除する方法についてのガイドをご覧ください。
modprobeコマンドを使用したカーネルモジュールの追加
1. modprobe
を使用してモジュールを追加します コマンド:
sudo modprobe <module name>
例:
sudo modprobe torture
2.次のものがロードされているモジュールを確認します:
sudo modprobe <module name> --first-time
モジュールがすでにカーネルにあるため、出力はエラーを出力します。
または、アクティブなモジュールのロードリストで lmod
を使用してモジュールを検索します :
lsmod | grep <module name>
例:
lsmod | grep torture
modprobeコマンドを使用したカーネルモジュールの削除
1. modprobe -r
を使用してモジュールを削除します コマンド:
sudo modprobe -r <module name>
例:
sudo modprobe -r torture
2.次のコマンドを実行して、モジュールが削除されていることを確認します。
sudo modprobe -r <module name> --first-time
モジュールがカーネルにないことを示すエラーメッセージが表示されます:
または、アクティブなモジュールのロード済みリストを確認します:
lsmod | grep <module name>
削除されたモジュールは、モジュールのロード済みリストに含まれていません。