はじめに
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> 削除されたモジュールは、モジュールのロード済みリストに含まれていません。