この章では、eri デバイスドライバのパラメタを構成する方法について説明します。ndd ユーティリティーを使用して構成したパラメタは、システムを再起動すると無効になります。
再起動した後でもパラメタ値を常に有効にし、システム内のすべてのデバイスに eri ドライバのパラメタを構成するには、/etc/system ファイルにパラメタ値を入力します。これによりシステムの再起動時に /etc/system ファイルがシステムに読み込まれ、このファイル内のパラメタ値が設定されます。
システム内の特定のデバイスに対してパラメタを設定するには、/kernel/drv ディレクトリの eri.conf ファイルにパラメタを設定します。eri.conf ファイルで設定したパラメタは、/etc/system ファイルで設定したパラメタよりも優先され、/etc/system ファイルで設定したパラメタを無効にします。eri.conf ファイルで設定したパラメタ値は、再起動しても常に有効となります。
eri デバイスドライバのパラメタを設定する方法は 3 通りあり (ndd、/etc/system、eri.conf)、必要に応じて使い分けることができます。システムを再起動するまで有効となるパラメタを設定するには、ndd ユーティリティーを使用します。この方法は、パラメタの設定を試してみる際に有用です。
システムを再起動した後でも有効となるパラメタ値を設定する方法を以下に示します。
システム内のすべてのデバイスに対するパラメタ値を設定するには、/etc/system ファイルにパラメタ値を追加します。
システム内の特定のデバイスに対するパラメタ値を設定するには、eri.confファイルを作成し、このファイルにパラメタ値を追加します。
パラメタの設定を確認するには、ndd ユーティリティーを使用します (ndd を使用したパラメタの設定を参照)。ndd ユーティリティーを使用して設定したパラメタは、システムを再起動すると無効になります。パラメタ値を、再起動をした後でも有効にするには、/etc/system ファイルまたは eri.conf ファイルに値を設定します。設定方法についてはこの章で説明します。
システムを再起動するまで有効となるパラメタを設定するには、ndd ユーティリティーを使用します。ndd ユーティリティーは、DLPI (Data Link Provider Interface) が実装されているすべてのネットワークドライバに対応しています。
以下の節では、eri ドライバと ndd ユーティリティーを使用して、それぞれの SUNW,eriデバイスのパラメタを変更 (-set オプションを使用) または表示 (-set オプションを使用しない) する方法を説明します。
SUNW,eri デバイスが複数ある場合は、ndd ユーティリティーを使用して eri デバイスのパラメタを取得または設定する際に、このユーティリティーのデバイスインスタンスを指定する必要があります。
SUNW,eri デバイスが 1 つのみの場合は、ndd ユーティリティーによって自動的にこのデバイスが選択されます。
/etc/path_to_inst ファイルを調べて、目的のデバイスのインスタンスを特定します。
インスタンス番号を使用して、目的のデバイスを選択します。
% ndd -set /dev/eri instance インスタンス番号 |
選択したデバイスは、別のデバイスを選択するまで有効となります。
ndd ユーティリティーは、以下の 2 種類のモードで使用することができます。
非対話モード
対話モード
非対話モードでは、ndd ユーティリティーを呼び出して特定のコマンドを実行します。コマンドが実行されると、ユーティリティーは終了します。対話モードでは、ndd ユーティリティーを使用して複数のパラメタ値を取得または設定することができます。詳細は、ndd(1M) のマニュアルのページを参照してください。
パラメタ値を変更するには、-set オプションを使用します。
-set オプションを指定して ndd ユーティリティーを呼び出すと、ユーティリティーは指定された値をドライバに引き渡し、この値をパラメタに割り当てます。値には、/dev/eriドライバインスタンスを、名称まで含めて指定します。
% ndd -set /dev/eri パラメタ値 |
パラメタ値を表示するには、パラメタ名だけを指定し、値を省略します。
-set オプションを省略すると、照会とみなされます。ndd ユーティリティーは指定されたドライバインスタンスを照会し、指定されたパラメタの値を取り出し、表示します。
% ndd /dev/eri パラメタ名 |
対話モードでパラメタ値を変更するには、以下のように ndd eri を指定します。
ndd ユーティリティーは、パラメタ名の入力を要求するプロンプトを表示します。
% ndd /dev/eri name to get/set? (パラメタ名を入力します。 ? を入力するとパラメタの一覧が表示されます。) |
パラメタ名を入力すると、ndd ユティリティーはパラメタ値の入力を要求するプロンプトを表示します。表 3–1 から 表 3–8 を参照してください。
eri ドライバで使用することができるすべてのパラメタを表示するには、以下のように入力します。
% ndd /dev/eri \? |
(パラメタの詳細は、表 3–1 〜 表 3–8 を参照してください。)
example# ndd /dev/eri \? ? (read only) transceiver_inuse (read only) link_status (read only) link_speed (read only) link_mode (read only) ipg1 (read and write) ipg2 (read and write) use_int_xcvr (read and write) pace_size (read and write) adv_autoneg_cap (read and write) adv_100fdx_cap (read and write) adv_100hdx_cap (read and write) adv_10fdx_cap (read and write) adv_10hdx_cap (read and write) autoneg_cap (read only) 100T4_cap (read only) 100fdx_cap (read only) 100hdx_cap (read only) 10fdx_cap (read only) 10hdx_cap (read only) lp_autoneg_cap (read only) lp_100fdx_cap (read only) lp_100hdx_cap (read only) lp_10fdx_cap (read only) lp_10hdx_cap (read only) instance (read and write) lance_mode (read and write) ipg0 (read and write) example# |
強制モード (自動ネゴシエーション不可) を設定する方法を説明します。
4 つある機能 (adv_100fdx_cap、adv_100hdx_cap、adv_10fdx_cap、adv_10hdx_cap) から 1 つを選択し、その値を 1 に設定します。
ローカルトランシーバの機能を複数選択した場合は、優先順位の最も高い機能が選択されます。
ハードウェアが通知するローカルトランシーバの機能として、自動ネゴシエーション不可を示す強制モード=0を設定します (adv_autoneg_cap 0)。
この章の対話モードで ndd ユーティリティーを使用するの説明に従って、ndd ユーティリティーを使用してください。
遠隔システムに通知する機能として、4 つある機能 (adv_100fdx_cap、adv_100hdx_cap、adv_10fdx_cap、adv_10hdx_cap) から 1 つ以上を選択し、その値を 1 に設定します。
ハードウェアが通知するローカルトランシーバの機能に対して、自動ネゴシエーション可を示す 1 を設定します (adv_autoneg_cap 1)。
この章の 対話モードで ndd ユーティリティーを使用するの説明に従って、ndd ユーティリティーを使用してください。
システムのすべての SUNW,eriデバイスに対して eri ドライバパラメタを設定し、かつシステムの再起動後もパラメタ変数が常に有効になるようにするには、/etc/system ファイルにパラメタ変数を入力します。システムを再起動すると、/etc/system ファイルが読み取られ、オペレーティングシステムのカーネルの eri モジュールにパラメタ変数が設定されます。
/etc/system ファイルに設定する変数を表 4–1 に示します。
表 4-1 /etc/system ファイルに設定する変数
パラメタ |
変数 |
---|---|
ipg1 |
ipg1 |
ipg2 |
ipg2 |
pace_size |
pace_size |
adv_autoneg_cap |
adv_autoneg_cap |
adv_100fdx_cap |
adv_100fdx_cap |
adv_100hdx_cap |
adv_100hdx_cap |
adv_10fdx_cap |
adv_10fdx_cap |
adv_10hdx_cap |
adv_10hdx_cap |
lance_mode |
lance_mode |
ipg0 |
ipg0 |
第 3 章「パラメタの定義」で説明したこれらのパラメタ値は、システム上のすべての SUNW,eriデバイスに適用することができます。パラメタの説明については、表 3–2 〜表 3–8 を参照してください。以下に/etc/system ファイルに設定する例を示します。
スーパーユーザーになります。
テキストエディタを使用し、/etc/system ファイルに以下の行を追加します。
set eri:ipg1 = 10 set eri:ipg2 = 5 |
/etc/system ファイルを保存します。
すべてのファイルを保存し、すべてのプログラムを終了します。そして、ウィンドウシステムを終了します。
# プロンプトに対して init 6 と入力し、システムを再起動します。
システムが停止して再起動されます。
この章の/etc/system ファイル内のパラメタの設定で説明しているパラメタは、デバイスごとに指定することもできます。それらのパラメタをデバイスごとに設定するには、/kernel/drv ディレクトリに eri.conf ファイルを作成します。eri.conf ファイルのパラメタの設定は、/etc/system ファイルの設定に優先します。システムの特定のデバイスに対して特定のパラメタを設定する必要がある場合は、eri.conf ファイルを使用してください。eri.conf ファイルには、第 3 章「パラメタの定義」に示す読み取り・書き込み可能なパラメタを設定することができます。
詳細は、prtconf (1M)、system (4)、driver.conf (4) のマニュアルのページを参照してください。以下に eri.conf ファイルを設定する例を示します。
デバイスツリーでデバイスのハードウェアパス名を取得します。
通常、デバイスのパス名と関連するインスタンス番号は、/etc/path_to_inst ファイルに含まれています。たとえば、Sun Blade 1000 PCI システムでは、/etc/path_to_inst ファイル内に以下のエントリが存在します。
"/pci@8,700000/network@5,1" 0 "eri" |
デバイスパス名の、最後の / 文字と @ 文字の間の最後の要素は、デバイス名を表します。
最後の要素の前のパス名は、親の名前を表します。
最後の @ 文字の後のコンマで区切られた番号は、デバイス番号と機能番号を表し、この2つで装置アドレスと呼ばれます。
eri.conf ファイルで PCI デバイスを明確に指定するには、デバイス名と親、装置アドレスを使用します。PCI デバイス指定の詳細については、pci (4) のマニュアルページを参照してください。
上記の例の 1 行目では、以下のようになります。
名前 = eri
親 = /pci@8,700000
装置アドレス = 5,1
/kernel/drv/eri.conf ファイル内の上記のデバイスに、ipg1 および ipg2 のパラメタを設定します。
name = "eri" parent = "/pci@8,700000" unit-address = "5,1" ipg1=10 ipg2=5; |