[ 前のページ ] [ 目次 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 次のページ ]
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=1 を libata カーネルモジュールへ渡すには、次の行を含む/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