
Linuxカーネルは、Linuxオペレーティングシステムのコアコンポーネントです。 Linuxカーネルは、機能の面で拡張できるモジュラー設計になっています。モジュールは、コンピューターを再起動せずにカーネルによってロードおよびアンロードできる小さなコードです。カーネルモジュールは、手動または自動でロード/削除できます。
USBやPCIなどの新しいデバイスが接続/削除されると、カーネルはueventを送信します。 ueventsには、ベンダーやモデルの詳細など、デバイスに関する情報が含まれています。 Udev(デバイスマネージャー)はこのueventをリッスンし、modprobeに渡します。 Modprobe モジュールディレクトリ/lib/ modules / uname -r
を検索して、要求されたドライバをインテリジェントに識別します。 モジュールファイルをカーネルにロードします。モジュールが正常にロードされると、lsmodコマンドのリストに表示されます。さらに、modprobeは、カーネルからロード可能なモジュールを手動で追加または削除するために使用されます。
Modprobeはkmodパッケージの一部として配布されます。このチュートリアルでは、modprobeコマンドの使用方法を学習します Linuxカーネルにモジュールを追加および削除します。
modprobeコマンドの構文
modprobeコマンドの構文を確認しましょう:
$ sudo modprobe [options] [Module Name]
カーネルモジュールを追加するmodprobeコマンド
カーネルモジュールは、/lib/modules/$(uname -r)
にあるサブディレクトリにあります。 。コマンドuname -r
現在のカーネルバージョンを判別するために使用できます。
モジュールmodprobeを追加するときは、insmodがそれを行わないモジュールの依存関係をインテリジェントにチェックしてください。ファイル/lib/modules/$(uname-r)/modules.depにリストされている依存関係とモジュール名の参照は、/etc/modules
で指定されています。 ファイル。
カーネルモジュールにあるディレクトリを一覧表示するには、次のように入力します。
$ ls /lib/modules/$(uname -r)
すべてのデバイスドライバーは、ディレクトリ/lib/modules/$(uname -r)/kernel/drivers/
にあります。 。
通常、カーネルモジュールファイルには.ko
があります 拡張機能。すべての.ko
を一覧表示できます ファイル:
$ find /lib/modules/$(uname -r) -type f -name *.ko*
モジュール名とともにmodprobeコマンドを使用して、モジュールをLinuxカーネルに追加できます。
$ sudo modprobe img_i2s_in
追加したら、現在ロードされているカーネルモジュールを一覧表示するlsmodコマンドで確認できます。
$ sudo lsmod | grep img_i2s_in
出力:
img_i2s_in 16384 0
カーネルモジュールを削除するmodprobeコマンド
モジュールを削除するには、モジュール名とともに-rオプションを指定してmodprobeコマンドを使用します。
たとえば、img_i2s_in
という名前のモジュールを削除するには 、タイプ:
$ sudo modprobe -r img_i2s_in
modprobeオプション
modprobeコマンドにはいくつかのオプションがあり、それらはユースケースに基づいて3つのカテゴリに分類されています。
管理オプション
modprobeコマンドを使用してモジュールを追加または削除する場合、管理パラメーターにより複数のモジュール処理シナリオが有効になります。
オプション | 説明 |
-a -すべて | 一度に複数のモジュールを削除または追加 |
--削除 -r | モジュールを削除します。--remove-dependenciesにも適用されます |
-依存関係の削除 | 依存関係モジュールを削除する |
--resolve-alias -R | エイリアスに一致する名前を特定して印刷します |
-初めて | 追加または削除されたモジュールの印刷エラー |
--ignore-install --無視-削除 -i | モジュールを挿入または削除するときに、モジュールに書き込まれたインストールまたは削除コマンドを無視します |
--use-ブラックリスト -b | ブラックリストで解決されたエイリアス |
--力 -f | バージョンエラーが表示された場合は、モジュールの追加または削除を強制してください。これは、-force-modversionと--force-vermagicの両方に適用されます。 |
-force-modversion | モジュールの追加または削除時にモジュールバージョンを無視します。 |
-force-vermagic | モジュールの追加または削除時にモジュールバージョンの魔法を無視します。 |
クエリオプション
modprobeコマンドのqueryオプションは、構成と依存関係に関する情報を提供します。
オプション | 説明 |
--show-depends -D | 依存関係ファイルを持つモジュールがある場合は、そのモジュールが表示されます |
--showconfig --show-config -c | 現在の構成を表示して終了します |
--show-modversions --dump-modversions | モジュールバージョンの依存関係を表示する |
一般オプション
modprobeコマンドの一般的なオプションは、出力オプション、モジュールの場所、およびバージョンを構成します。
オプション | 説明 |
--ドライラン - 公演 -n | 出力を印刷しますが、何も追加または削除しないでください。 |
-config=[ファイル名] -C | デフォルトの構成依存関係、つまり/etc/modprobe.dを[ファイル名]でオーバーライドします |
-dirname=[ディレクトリ] -d | / lib / modulesの場合、ファイルシステムルートとして[Directory]を使用します |
-set-version =[version] -S | 指定されたカーネルの代わりにuname 、[バージョン]カーネルを使用 |
--syslog -s | Syslogを介してエラーメッセージを表示します |
-静か -q | エラーメッセージを表示しない |
--詳細 -v | より多くのメッセージを表示できるようにします |
-バージョン -V | modprobe のバージョンを表示する |
--ヘルプ -h | コマンドとともにヘルプメッセージを表示する |
結論
このチュートリアルでは、Linuxカーネルにモジュールを追加または削除するmodprobeコマンドについて学習しました。
読んでいただきありがとうございます。フィードバックや提案をお寄せください。