[ 前のページ ] [ 目次 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 次のページ ]


Debian Linux カーネルハンドブック
第 6 章 - カーネルモジュールの管理


Linux デバイスドライバはカーネルモジュール形式 - 機能拡張のために動作中のカーネルにロード可能なオブジェクトファイル - で配布されます。現在カーネルにロードされているモジュールの一覧は lsmod コマンドで取得できます。モジュールは modprobe コマンドでロードし、modprobe -r コマンドで取り外すことができます。depmod コマンドは、手動で起動する必要はほとんどありませんが、利用可能なモジュール一覧の再生成 (例えば新しいモジュールをインストールした直後など) に使用することができます。

通常、起動時にデバイスが検出され必要なカーネルモジュールが udev によってロードされます。稀に、カーネルモジュールのロードをより細かくコントロールする必要のある人がいます。例えば、追加のパラメータをモジュールに渡したり、スタートアップ時にいくつかのモジュールをロードしたり、特定のモジュールがロードされないようにし たり、などです。

もし、udev で自動的にロードされないモジュールを、起動時にロードしたければ、そのモジュールを/etc/modulesに列挙することで、強制的にロードさせることも可能です。このファイルはライン毎にモジュール名をスキャンされ (各ラインに1 モジュール) 、そのモジュールは modprobe でロードされます。モジュールの引数 を指定することもできます。例えば、典型的な /etc/modules ファイルは以下のようになっています。

     loop max_int=32
     sbp2

与えられたモジュールに対して有効なパラメータを知りたい場合は、modinfo コマンドを使います。以下に例を示します。

     # modinfo loop
     filename:       /lib/modules/3.2.0-2-686-pae/kernel/drivers/block/loop.ko
     alias:          devname:loop-control
     alias:          char-major-10-237
     alias:          block-major-7-*
     license:        GPL
     depends:        
     intree:         Y
     vermagic:       3.2.0-2-686-pae SMP mod_unload modversions 686
     parm:           max_loop:Maximum number of loop devices (int)
     parm:           max_part:Maximum number of partitions per loop device (int)

ブートプロセスの初期段階でudevによってロードされるモジュールに特別な引数を渡すには、udevがモジュールのロードに使用する modprobe 用のカスタム設定ファイルを作らなければなりません。例えば、引数 atapi_enabled=1libata カーネルモジュールへ渡すには、次の行を含む/etc/modprobe.d/localファイルを作成します。

     options libata atapi_enabled=1

/etc/modprobe.d 内の設定ファイルには、任意の名前を使用でき、複数の options 行を同一ファイル内に記述できます。

時として、2 つの異なるモジュールが同じデバイスのサポートを宣言していることがあります。たいていの場合、2 つのやや異なるバージョンのデバイスが存在し、動作に異なるカーネルモジュールを要求していることが原因です。そのような状況では、udev が両方のカーネルモジュールをロードし、予期しない結果になります。この問題を避けるため、任意のモジュール (例えば tulip だとしましょう) のロードを防ぐには、/etc/modprobe.d ディレクトリ内に

     blacklist tulip

という行を記述した任意の名前のファイルを作成します。modprobe の使い方や設定方法に関するより詳しい情報は、modprobe のマニュアルページ (man modprob e) を参照してください。


[ 前のページ ] [ 目次 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 次のページ ]


Debian Linux カーネルハンドブック

version 1.0.16, Fri 14 Aug 12:53:11 CEST 2015

The Debian Kernel Handbook Project