GNU/Linux >> Linux の 問題 >  >> Linux

Linuxでカーネルモジュールをロードおよびアンロードする方法

その時点でLinuxLikeオペレーティングシステムをインストールすると、Linuxカーネルはほとんどのデバイスドライバーのモジュールをインストールし、インストール後に、コマンドmodprobeおよびinsmodを使用して新しいデバイスドライバーをモジュールとしてインストールすることもできます。

通常、カーネルモジュールは自動的にロードされますが、手動で追加モジュールをインストールする必要がある場合もあります。たとえば、ストレージデバイスなどのデバイスドライバをインストールしたい場合。このために、いくつかのコマンドがあります。それらのいくつかを以下に示します。

lsmodコマンド

lsmodは「リストモジュール」の略です ‘。名前が示すように、このコマンドはシステムに現在ロードされているカーネルモジュールを一覧表示します。

[[email protected] ~]# lsmod

特定のモジュールを検索したい場合。これはネットワークドライバモジュール( e1000 )にすることができます )その後、 grepを介して実行できます コマンド。

[[email protected] ~]# lsmod | grep e1000

modinfoコマンド

modinfoは「モジュール情報」の略です ‘。このコマンドは、カーネルモジュールに関する情報を表示します。たとえば、ネットワークドライバモジュールに関する情報を表示したい場合:

[[email protected] ~]# modinfo e1000

modinfoコマンドの出力は、このモジュールのバージョン、製造工場を示す説明、ライセンスはGPL、およびその他の重要な情報を明確に示しています。

modprobeコマンド

modprobeコマンドは、カーネルにモジュールを追加したり、カーネルからモジュールを削除したりするために使用されます。 Linuxは、カーネルモジュールディレクトリを「 / lib / modules/'uname-r」/kernel/ drivers /の下に維持します。 ‘および構成ファイル( /etc/modprobe.d/の追加の構成ファイルを除く) )。カーネルドライバを確認したい場合は、以下のコマンドを実行してください。

[[email protected] ~]# ls /lib/modules/3.10.0-327.el7.x86_64/kernel/drivers/

i8kを追加する必要がある場合 このモジュールが「デルのラップトップでSMMBIOSにアクセスする」ために使用しているカーネルモジュール 」

[[email protected] ~]# modprobe i8k

このコマンドの出力にエラーがある場合は、「 –quite」を使用できます。 ‘オプション、このフラグまたはオプションを指定すると、modprobeはエラーメッセージを出力しません。

注: ほとんどの場合、 modprobeを使用します insmodを介してカーネルモジュールをインストールするコマンド Linuxでカーネルモジュールをロードするためにも使用されます。

カーネルモジュールを削除する

-r modprobeコマンドのオプションは、カーネルモジュールを削除するために使用されます。フロッピーモジュールを削除したいとします。

[[email protected] ~]# modprobe -r floppy
[[email protected] ~]#

ここでは、入力した後にカーネルからフロッピーモジュールを削除します

[[email protected] ~]# lsmod | grep floppy

何も表示されないはずです。このモジュールを再度追加する場合は、次のように入力できます

[[email protected] ~]# modprobe floppy

ある時点で、モジュールのロード中に問題が発生したり、モジュールが正しくロードされなかったりする場合があります。これらのエラーを克服するために、「 –force」を使用してモジュールを強制的に追加またはロードできます。 オプション( -f )modprobeコマンドで。

[[email protected] ~]# modprobe -f floppy

モジュールのロード中にまだ問題やエラーが発生する場合は、今回はデバッグを行う必要があります。デバッグを有効にすることで、モジュールのインストール前またはインストール後に正確なエラーまたは問題を見つけることができます。言い換えれば、デバッグはモジュールのロードのドライランと同等です。

-n’ modprobeコマンドのオプションを使用すると、このタイプのデバッグを有効にできます。このオプションは、modprobeコマンドに、最後のステップを除くすべてのモジュールロードステップを実行するように強制します。

[[email protected] ~]# modprobe -vn 'module_name'

また、「 –show-depends 」を使用すると、モジュールの依存関係を確認できます。 ‘modprobeコマンドの例を以下に示します

[[email protected] ~]# modprobe --show-depends e1000
insmod /lib/modules/3.10.0-327.el7.x86_64/kernel/drivers/net/ethernet/intel/e1000/e1000.ko
[[email protected] ~]#

この記事は以上です。 Linuxでカーネルモジュールを一覧表示、インストール、削除する方法を理解していただければ幸いです。


Linux
  1. Linux – Linuxの汚染されたカーネル?

  2. Linux –カーネルモジュールを適切にリロードする方法は?

  3. Linux でのカーネル モジュール構成の初心者向けガイド

  1. CコードからLinuxカーネルモジュールをロードする方法は?

  2. Linux カーネルモジュールのコーディング方法は?

  3. ブート時に組み込み Linux カーネルモジュールに値を渡す方法は?

  1. Linux –どのモジュールがカーネルを汚染しているかを判断する方法は?

  2. Linuxモジュールのパスを見つける方法

  3. Linux カーネルはどうしてこんなに小さいのでしょうか?