Linuxカーネルは、Linuxオペレーティングシステムのコアコンポーネントです。システムのリソースを管理し、コンピュータのハードウェアとソフトウェアの間の架け橋です。
Linuxカーネルはモジュラー設計になっています。カーネルモジュール、またはしばしばドライバーと呼ばれるものは、カーネルの機能を拡張するコードの一部です。モジュールは、ロード可能なモジュールとしてコンパイルされるか、カーネルに組み込まれます。ロード可能なモジュールは、システムを再起動することなく、要求に応じて実行中のカーネルでロードおよびアンロードできます。
通常、モジュールはudevによってオンデマンドでロードされます (デバイスマネージャ)。ただし、モジュールのロード方法を微調整する必要がある場合があります。たとえば、追加のパラメータを使用してモジュールをロードしたり、モジュールの自動ロードを防止したりする必要がある場合があります。
modprobeを使用して、モジュールをカーネルに手動でロードできます。 コマンド、または/etc/modulesを使用して起動時に自動的に または/etc/modules-load.d/*.conf ファイル。
この記事では、modprobeの使用方法について説明します Linuxカーネルにモジュールを追加および削除します。 modprobe kmodの一部です 、Linuxカーネルモジュールの管理に使用される複数のプログラムを実装するバイナリ。
カーネルモジュールの追加#
カーネルモジュールは、/lib/modules/<kernel_version>に保存されます。 ディレクトリ。実行中のカーネルのバージョンを見つけたら、uname -rを使用します コマンド。
管理者権限を持つユーザーのみがカーネルモジュールを管理できます。
モジュールをロードするには、modprobeを呼び出します コマンドの後にモジュール名を続ける:
modprobe module_name
modprobe コマンドは、指定されたモジュールと追加のモジュール依存関係をロードします。コマンドラインで指定できるモジュールは1つだけです。
lsmodを使用します モジュールがロードされていることを確認するコマンド:
lsmod | grep module_name
追加のパラメータを使用してモジュールをロードするには、parameter=valueを使用します 構文:
modprobe module_name parameter=value
このコマンドは、複数のparameter=valueを受け入れます スペースで区切られたペア。
通常、システムの起動中にモジュールをロードする必要があります。これを行うには、/etc/modules-load.d内のファイルでモジュールとそのパラメーターを指定します。 ディレクトリ。ファイルは.confで終わる必要があります 任意の名前を付けることができます:
option module_name parameter=value
これらのファイルで指定された設定は、udevによって読み取られます。 、modprobeを使用してシステムの起動時にモジュールをロードします 。
カーネルモジュールの削除#
モジュールを削除するには、modprobeを呼び出します -rを使用したコマンド オプションの後にモジュール名が続く:
modprobe -r module_name
modprobe 未使用のモジュールの依存関係も削除されます。
-rで呼び出された場合 、コマンドは引数として複数のモジュールを受け入れます:
modprobe -r module_name1 module_name2 rmmodを使用することもできます Linuxカーネルからモジュールをアンロードするコマンド。
起動時にカーネルモジュールが読み込まれないようにする場合は、.confを作成します。 /etc/modprobe.d内の任意の名前のファイル 。構文は次のとおりです。
blacklist module_name
追加のモジュールをブラックリストに登録する場合は、新しい行でモジュールを指定するか、新しい.confを作成します。 ファイル。
結論#
modprobe コマンドを使用すると、Linuxカーネルモジュールを追加および削除できます。
ご不明な点がございましたら、お気軽にコメントをお寄せください。