32.3. ホットプラグデバイスの設定

ホットプラグエージェントは、SUSE Linux 10.0の時点で廃止されることになりました。すべてのデバイス設定は、すでにudevルールで行われることになっています。udevは、既存のカスタムエージェントを呼び出すための、互換性のあるルールを提供しています。しかし、カスタムエージェントをudevルールに変換することも考慮すべきです。

ホットプラグエージェントとは、イベントに対して適切なアクションを実行する実行可能なプログラムのことです。デバイスイベントのエージェントは、/etc/hotplug.d/イベント名および/etc/hotplug.d/defaultにあります。これらのディレクトリ内の、拡張子が.hotplugのすべてのプログラムは、アルファベット順に実行されます。

デバイス設定を行うには、通常、カーネルモジュールをロードすれば十分です。適切なデバイス設定を行うために、付加的なコマンドを呼び出すことが必要な場合もあります。 SUSE Linuxでは、これは一般的にudevルールによって処理されます。しかし、カスタムデバイスの設定が必要な場合には、デバイス設定は/sbin/hwupまたは/sbin/hwdownによって行われます。これらのプログラムは、デバイスに適した設定をディレクトリ/etc/sysconfig/hardware内で検索して適用します。たとえば、特定のデバイスが初期化されないようにするには、適切な名前で設定ファイルを作成して、実行モードをmanualまたはoffにします。/sbin/hwupは何も設定を見つけられなかった場合、MODALIASという環境変数を探します。存在すれば、modprobeは自動的に対応するモジュールをロードします。MODALIAS変数は、モジュールのロードが必要なデバイスのカーネルホットプラグイベントによって、自動的に生成されます。詳細については、項32.4. 「自動的なモジュール読み込み」を参照してください。/sbin/hwupの詳細については、/usr/share/doc/packages/sysconfig/READMEファイルおよびマニュアルページ(man hwup)を参照してください。

インタフェースエージェントが呼び出される前に、通常は、udevでシステムがアクセスできるデバイスノードが生成されます。udevを使用すると、インタフェースに永続的な名前を割り当てることができます。詳細については、章 33. udevをもつ動的デバイスノードを参照してください。インタフェース自体は、その後に、対応するudevルールに従ってセットアップされます。ここでは、一部のインタフェースに関する手順を説明します。

32.3.1. ネットワークインタフェースの有効化

/sbin/ifupを使用してネットワークインタフェースを初期化し、/sbin/ifdownを使用して無効にします。詳細については、ファイル/usr/share/doc/packages/sysconfig/READMEおよびifupのmanページを参照してください。

異なるドライバを使用する複数のネットワークデバイスがコンピュータに存在する場合、別のドライバを読み込む方が高速であれば、システムのブート中にインタフェース指定を変更できます。SUSE Linuxは、番号付けがなるべく変更されないようにします。デバイスは、設定時に割り当てられたインタフェース名を保ちます。この割り当てはudevルールによって行われます。後で割り当てを変更するには、udevルールを変更する必要があります。

ただし、最善の解決策は永続的なインタフェース指定を活用することです。設定ファイルで個々のインタフェースの名前を指定できます。この方法の詳細については、/usr/share/doc/packages/sysconfig/READMEを参照してください。SUSE Linux 9.3以降、デバイスノードではありませんが、ネットワークインタフェースもudevで処理されます。このため、より標準化された方法で永続的なインタフェース名を使用できます。

32.3.2. ストレージデバイスの有効化

ストレージデバイスにアクセスするには、そのインタフェースをマウントする必要があります。この作業は、完全に自動化するか事前に設定できます。さらに、SUSE Linuxはシステムデバイスとユーザデバイスを区別します。システムデバイスは、/etc/fstabにエントリを作成することによる、自動的なマウントだけが可能です。ユーザデバイスは、デフォルトではhalによって処理されます。ユーザデバイスで別な設定が必要な場合には、これらのデバイスを/etc/fstabに加えることができます。. または、このデバイスのhalでの処理を変更することができます。halについての詳細は、/usr/share/doc/packages/hal/hal-spec.htmlを参照してください。

永続的なデバイス名を使用することをお勧めします。この理由は、初期化シーケンスによっては従来のデバイス名が変更される場合があるためです。永続的なデバイス名の詳細については、章 33. udevをもつ動的デバイスノードを参照してください。