Linux Kernel 2.2 Documentation:
/usr/src/linux/Documentation/networking/sk98lin.txt
networking/sk98lin.txt
SK-NET Gigabit イーサネットアダプタ SK-98xx ファミリの Linux 用ドライバの使用方法
[プレインテキスト版]
- 原著作者: SysKonnect <linux@syskonnect.de>
- 翻訳者: 野本浩一 <hng@ps.ksky.ne.jp>
- バージョン: 2.2.20
- 翻訳日時: 2001/11/06
(C)Copyright 1999-2001 SysKonnect GmbH.
All rights reserved
===========================================================================
日本語訳:野本浩一 <hng@ps.ksky.ne.jp>
校正:武井伸光さん <takei@webmasters.gr.jp>
中野武雄さん <nakano@apm.seikei.ac.jp>
sk98lin.txt は 2001年06月07日に作成されました。
Linux 用 sk98lin v4.07 SK-NET Gigabit イーサネット PCI ドライバの
Readme ファイルです。
このファイルの内容
(1) 概要
(2) 必要なファイル
(3) インストール
(4) システム起動時にアダプタを認識させる
(5) ドライバの引き数
(6) ラージフレームのサポート
(7) トラブルシュート
(8) 履歴
===========================================================================
(1) 概要
========
sk98lin ドライバは、Linux 2.2.x およびそれ以降で、SysKonnect SK-NET
Gigabit イーサネットアダプタ SK-98xx ファミリをサポートします。
Intel/x86 マシンの Linux でテストされています。
v3.02 以降のドライバは、linux のカーネルソースに統合されています。
***
(2) 必要なファイル
==================
linux のカーネルソース。
他に必要なファイルはありません。
***
(3) インストール
================
以下に、手動でドライバをインストールし、起動するために必要な作業を順を
追って述べます。これらの手順は、ドライバの初期設定の際に実行する必要が
あります。一度うまく動いたら、これらはシステム起動時に行うことができま
す (これは次の章で述べます)。
注意 1 - 以下に示す作業を行うには、システムの 'root' 権限が必要です。
注意 2 - 重要 - 不具合が発生したら、下記のトラブルシュートの章を読んで
ください。
1) ドライバは、カーネルに統合するか、モジュールとしてコンパイルするか
のどちらかを選べます。
カーネルの設定で、適切なオプションを選んでください。
モジュールを使うなら、カーネルは 'loadable module support' が有効で
なければなりません。
ドライバを自動起動するなら、'Kernel module loader' を有効にすること
も必要です。
これらのオプションを選択し、新しいカーネルを構築し、インストールし
ます。
ドライバをモジュールとして使う場合は、"make modules" と
"make modules_install" を行ってください。
システムを再起動 (reboot) します。
2) 手動でモジュールをロードするために、次を入力します -
modprobe sk98lin
SysKonnect SK-98xx アダプタがコンピュータにインストールされ、/proc
ファイルシステムがシステムにあれば、'more /proc/net/dev' コマンドを
実行すると、次の形式の行を含む出力が得られるはずです。
eth0: 0 0 ...
これは、アダプタが認識され、初期化されたことを意味します。
注意 1 - 2つ以上の SysKonnect SK-98xx アダプタがある場合は、アダプ
タは、'eth0', 'eth1', 'eth2' などと一覧されます。
それぞれのアダプタに対し、手順 5) と 6) を行ってください。
注意 2 - 他のイーサネットアダプタをインストールしているなら、
SysKonnect SK-98xx アダプタは、'eth1' もしくは 'eth2' ...
にマップされるかもしれません。
モジュールのインストールメッセージに、見つかったアダプタそ
れぞれに関する行が現われ、それぞれ対応する 'ethX' が含まれ
ているはずです (インストールメッセージは、/etc/syslog.conf
の設定に応じて、システムのログファイルかコンソールに現われ
ます)。
3) IP アドレスを選び、次を入力して、それぞれのアダプタに指定します。
ifconfig eth0 <ip-address>
これで、アダプタはイーサネットに接続します。アダプタの唯一の黄色い
LED がその時点灯し、(スイッチングハブもしくはハブに接続している場合)
プライマリポートのリンク状態の LED が ON になり、(デュアルポートア
ダプタ上の) セカンダリポートのリンク状態の LED は、点滅します。コン
ソールには "ethX: network connection up using port Y" というステー
タスメッセージが表示され、選択した接続パラメータが示されるはずです。
注意 - IP アドレスが分からなければ、ネットワーク管理者に相談してく
ださい。
4) これでアダプタは完全に動作しているはずです。
'ping <otherstation>' を使い、ネットワーク上の他のコンピュータへの
接続を確認します。
/proc/net/sk98lin/[devicename] を見ることにより、アダプタの設定に関
する情報がチェックできます。
5) 次に示すコマンドで、ドライバモジュールを停止し、アンロードできます。
ifconfig eth0 down
rmmod sk98lin
***
(4) システム起動時にアダプタを認識させる
========================================
さまざまな Linux ディストリビューションが沢山存在するので、ドライバモ
ジュールの一般的なインストール手順を述べることはできません。
ドライバは現在カーネルに統合されているので、ディストリビューションの標
準的な仕組みを用いて、簡単にインストールできるはずです。
ディストリビューションのマニュアルを参照して、イーサネットアダプタのイ
ンストールのところを読みましょう。
***
(5) ドライバの引き数
====================
'modprobe' でモジュールをロードするとき、コマンドラインから引き数を設定
できます。いくつかのディストリビューションにある設定ツールでも、ドライ
バモジュールに引き数を与えることができます。
カーネルモジュールローダを使っているなら、/etc/modules.conf (もしくは、
古い名前の /etc/conf.modules) でドライバの引き数を設定できます。
options sk98lin ...
という形式の行を挿入しましょう。
"..." には、以下に述べる modprobe のコマンドラインの引き数と同じ構文を
使います。
新しい引き数でドライバを動作させるには、コンピュータを再起動するか、ド
ライバをアンロードの後リロードしなければなりません。
ドライバの引き数 (parameter) の構文は -
modprobe sk98lin parameter=value1[,value2[,value3...]]
です。value1 は最初のアダプタ用のもの、value2 は2番目のアダプタ用のも
の...になります。
すべての引き数には大文字小文字の区別があるので、以下に示すように正確に
書いてください。
例 - 2つのアダプタがあるとします。1番目のアダプタのポート A では
AutoNegotiation を ON に、2番目のアダプタのポート A では OFF に
したい、としましょう。
また 1番目のアダプタのポート A では DuplexCapabilities を全二重
に、2番目のアダプタのポート A では半二重にしたい、とします。この
場合の入力は次のようになります。
modprobe sk98lin AutoNeg_A=On,Off DupCap_A=Full,Half
注意 - この方法で設定できるアダプタの数は、ドライバで制限されています
(ファイル skge.c の定数 SK_MAX_CARD_PARAM)。
現在の制限値は 16 です。もっと多くのアダプタをインストールする
必要があるなら、これを調整してコンパイルしなおしてください。
5.1 ポートごとの引き数
----------------------
これらの設定は、アダプタ上のそれぞれのポートごとに指定できます。
以下に示す記述中の '?' は引き数を設定するポートを表します (A か B)。
- Auto Negotiation
引き数 - AutoNeg_?
値 - On, Off, Sense
既定値 - Sense
"Sense" モードは、リンク先が autonegotiation をサポートしているかど
うかを自動的に調べます。
- Duplex Capabilities
引き数 - DupCap_?
値 - Half, Full, Both
既定値 - Both
この引き数は、このポートの autonegotiation が "Sense" でない場合に限っ
て意味を持ちます。autonegotiation が "On" なら、3つの値すべてが使え
ます。"Off" なら、"Full" と "Half" だけが許されます。
これは、リンク先が可能な組み合わせすべてをサポートしていない場合に便
利です。
- Flow Control
引き数 - FlowCtrl_?
値 - Sym, SymOrRem, LocSend, None
既定値 - SymOrRem
この引き数は、autonegotiation の間にポートが報告するフロー制御の能力
を設定するために使われます。
各モードの意味は次のとおりです:
-- Sym = Symetric - リンク両端とも PAUSE フレームが送れます。
-- SymOrRem = SymetricOrRemote - リンク両端、もしくはリンク先からのみ
PAUSE フレームが送れます。
-- LocSend = LocalSend - こちらからのみ PAUSE フレームが送れます。
-- None - リンク両端とも PAUSE フレームを送ることは許されません。
注意 - この引き数は、autonegotiation が "Off" に設定されている場合は
無視されます。
- Role in Master-Slave-Negotiation (1000Base-T only).
引き数 - Role_?
値 - Auto, Master, Slave
既定値 - Auto
この引き数は、SK-9821 と SK-9822 両アダプタだけで有効です。2つの
1000Base-T ポートが通信するには、一方の役割はマスタ (タイミング情報
を提供する側) で、もう一方はスレーブでなければなりません。通常これは、
リンク確立中に2つのポート間でネゴシエートされます。もしこれが失敗し
ても、この引き数によって、ポートをどちらにするかを強制的に指定できま
す。
5.2 アダプタごとの引き数
------------------------
- Preferred Port
引き数 - PrefPort
値 - A, B
既定値 - A
これは、(2ポート NIC 上の) ポート A か B のどちらかを強制的に優先さ
せるために使われます。両方が完全に機能すると検出されても、優先される
ポートは1つです。
- RLMT (Redundant Link Management Technology) Mode
引き数 - RlmtMode
値 - CheckLinkState,CheckLocalPort, CheckSeg, DualNet
既定値 - CheckLinkState
RLMT (the driver part that decides which port to use) は、どのポート
が使用可能かを3つの方法で検査します。その方法は -
-- CheckLinkState = リンク状態のみの検査 - RLMT は、アダプタのハードウェ
アから報告される各ポートのリンク状態を用いて、ポートがネットワーウ
トラフィックすべてに使えるかどうかを決定します。
-- CheckLocalPort = アダプタ上の他のポートの検査 -
RLMT は、各ポートから他の各ポートへテストフレームを送り、送り先の各
ポートが受け取れるか検査します。従ってポートは、LLC テストフレーム
をやり取りできるようなかたちでネットワークに接続されなければなりま
せん (つまりポート間にルータがあってはなりません)。
-- CheckSeg = 他のポートとネットワークセグメントの検査 - RLMT は、他の
ポートを検査し、さらに各ポートに接続された Gigabit イーサネットスイッ
チに情報を要求して、ネットワークがポート間でセグメント化されている
か確認します。従って、このモードが使えるのは、ネットワークに
Gigabit イーサネットスイッチがあって、スパニングツリープロトコルを
使う設定がされている場合に限られます。
-- DualNet - A と B の両ポートは同時に個別の装置として使用されます。し
たがって、デュアルポートアダプタを使っている場合、ポート A は eth0、
ポート B は eth1 として見えます。両ポートは別個の IP アドレスで使用
できます。preferred port 設定は使われません。Rlmt はオフになります。
注意 - CheckLocalPort と CheckSeg のモードは、1つのアダプタ上のポー
ト間でネットワーク経路があるような構成で動作します。
特に、back-to-back で接続されたアダプタ間では、これらは動作す
るような設計になっていません。
***
(6) ラージフレームサポート
==========================
今ではラージフレーム (ジャンボフレームとも呼ばれます) もサポートされて
います。これを用いると、大量のデータの転送において、スループットを非常
に向上することができました。
ラージフレームを有効にするには、インターフェースの MTU (maximum
transfer unit) に、あなたの望むサイズ (9000 まで) を設定します。このた
めのコマンドは -
ifconfig eth0 mtu 9000
です。
これは、2つのアダプタを back-to-back で接続するか、ラージフレームをサ
ポートするスイッチを使う場合に限って動作します。スイッチを用いる時は、
autonegotiation を使わず、ラージフレームを使用する設定をしなければなり
ません。
この設定は、ラージフレームが到達するすべてのアダプタで行わなければなり
ません。あるアダプタでラージフレームを受信する設定をしなかったなら、そ
のアダプタは、単にそのフレームを落としてしまうでしょう。
次のコマンドで、標準的なイーサネットのフレームサイズに戻せます。
ifconfig eth0 mtu 1500
この設定を永続的にするには、'ifconfig' を行うスクリプトをシステムの起
動シーケンスに追加します ("S99sk98lin" のような名前で /etc/rc.d/rc2.d
に置きます)。
***
(7) トラブルシュート
====================
インストール中に不具合が発生した場合は、次の項目をチェックしてください。
不具合 - SK-98xx アダプタをドライバが検出できません。
原因 - /proc/pci の中に、次のエントリがあるか探してください。
'Ethernet controller: SysKonnect SK-98xx ...'
このエントリがあれば、SK-98xx アダプタはシステムに認識されて
います。従って使用可能なはずです。
このエントリがないか、ファイル '/proc/pci' 自体がなければ、ハー
ドウェアに不具合があるか、PCI のサポートがカーネルで有効になっ
ていない可能性があります。
アダプタは診断プログラムを用いてチェックできます。
SysKonnect 社のウェブサイトから入手できます。
www.syskonnect.de
COMPAQ マシンのいくつかでは、Linux で PCI を用いる場合に不具
合があります。
これは、'PCI howto' 文書 (いくつかのディストリビューションに
含まれ、www なら例えば 'www.linuxdoc.org' から入手できます)
で述べられています。これは 2.2.x のカーネルで修正されているか
と思います (テストはしていません)。
不具合 - 'ifconfig' や 'route' などのプログラムが見つからない、あるい
は、'Operation not permitted' のエラーメッセージが表示されま
す。
原因 - 'root' ユーザでログインしていません。ログアウトし root でログ
インするか、'su' を使って root になってください。
不具合 - コマンド 'ping <address>' を用いると、"ping: sendto: Network
is unreachable" のメッセージが表示されます。
原因 - 経路が正しく設定されていません。
RedHat を使用しているなら、たぶん、'network configuration' の
経路設定を忘れています。
'route' コマンドで既存の経路を確認し、'eth0' のエントリがある
かどうか、およびそれが正しいかを確認してください。
原因 - ルーティングテーブルに異常があります。
コマンド 'route' でルーティングテーブルを確認し、route の man
ページを読んでください ('man route')。
注釈 - 2.2.x のカーネルはルーティングエントリを自動的に生成するとは
いえ、この種の不具合は依然として発生します。我々が見つけたケー
スでは、システムのブート時にドライバは正常に起動したのですが、
ドライバを削除・リロードすると、アダプタのネットワークの経路
が 'dummy0' デバイスに向いたため、手動で直さなければなりませ
んでした。
不具合 - 複数の IP サブネット間のルータとして (複数のアダプタを用い)
コンピュータを使いたいが、他のサブネットワークのコンピュータ
に到達できません。
原因 - ルータのカーネルに IP forwarding のための設定がされていないか、
少なくともどちらかのコンピュータで、ルーティングテーブルやゲー
トウェイ設定に問題があります。
不具合 - ドライバの起動時、次のエラーメッセージが表示されます。
"eth0: -- ERROR --
Class: internal Software error
Nr: 0xcc
Msg: SkGeInitPort() cannot init running ports"
原因 - マルチプロセッサマシン上で、SMP (対称型マルチプロセッサ) カー
ネルとともに、シングルプロセッサ用にコンパイルされたドライバ
を使用しています。
カーネルを適切に設定してカーネルをコンパイルし直すか、モジュー
ルをコンパイルし直してください。
不具合がここになければ、SysKonnect 社のテクニカルサポートへ連絡し、助
力を求めてください (linux@syskonnect.de)。
テクニカルサポートへお知らせいただく際には、可能な限り次の情報を添えて
ください。
- システムの製造元とモデル
- マザーボード
- Linux のディストリビューション
- カーネルのバージョン
***
(8) 履歴
========
VERSION 4.02 (In-Kernel version)
新機能 -
- カーネル 2.4 での変更を追加
既知の制限 -
- なし
VERSION 4.01 (In-Kernel version)
修正された不具合 -
- DualNet モードの統計値を完全にサポート
既知の制限 -
- なし
VERSION 4.00 (In-Kernel version)
修正された不具合 -
- メモリリークがありました
新機能 -
- Proc ファイルシステムの組込み
- DualNet 機能の組込み
- Rlmt ネットワークの追加
既知の制限 -
- DualNet モードにおける統計値が部分的に誤っている
VERSION 3.04 (In-Kernel version)
修正された不具合 -
- UltraSPARC 上のドライバ起動の障害
- ビッグエンディアンマシンでの受信データのチェックサム計算が動作しなかっ
た
- ジャンボフレームが netstat の input-errors にカウントされていた
VERSION 3.03 (Standalone version)
修正された不具合 -
- PATH に "." がないと、コンパイルでスクリプト "printver.sh" が見つか
らなかった
既知の制限 -
- なし
VERSION 3.02 (In-Kernel version)
修正された不具合 -
- なし
新機能 -
- Linux カーネルソースに統合 (2.2.14 および 2.3.29)
既知の制限 -
- なし
VERSION 3.01
修正された不具合 -
- なし
新機能 -
- ソースすべてをリリース
既知の制限 -
- なし
VERSION 3.00
修正された不具合 -
- なし
新機能 -
- 1000Base-T アダプタ (SK-9821 および SK-9822) のサポート
既知の制限 -
- なし
VERSION 1.07
修正された不具合 -
- RlmtMode の引き数に値として与える文字列が誤っていた (#10437)
- ドライバが非常に多くの RLMT フレームを送っていた (#10439)
- ドライバがネットワークセグメントを認識できなかった (#10440)
- RLMT がセグメント化されたネットワーク上で頻繁に切り替えを行った
(#10441)
既知の制限 -
- なし
VERSION 1.06
修正された不具合 -
- RlmtMode=CheckOtherLink もしくは RlmtMode=CheckSeg で動作させた後、
しばらくして、システムパニックとなった (#10421)
パニックメッセージは "Kernel panic: skput: over ... dev: eth0"
- back-to-back で接続されたポートを、ドライバは既定値に戻せなかった
(#10422)
仕様変更 -
- RlmtMode の引き数名の変更
新機能 -
- ALPHA プロセッサのマシン向けサポートの追加
既知の制限 -
- なし
VERSION 1.05
修正された不具合 -
- バージョン情報を伴ったカーネル上でドライバのロードが失敗した
モジュールシンボルの有効化に関する不具合
既知の制限 -
- なし
VERSION 1.04
修正された不具合 -
- ラージフレームサポートが動作するようになった (ラージフレームの設定は
autonegotiation を使わず、手動で選択すること)
新機能 -
- ハードウェアで受信データのチェックサムを生成
- パフォーマンスの最適化
数値 (2台の PII-400 マシンを back-to-back で接続) -
netpipe: 300 MBit/sec, ラージフレームを使用: 470 MBit/sec
ttcp: 38 MByte/sec, ラージフレームを使用: 60 MByte/sec
ttcp (UDP 送信): 66 MByte/sec, ラージフレームを使用: 106 MByte/sec
既知の制限 -
- なし
VERSION 1.03
修正された不具合 -
- "rmmod" でアンロードしようとすると、セグメンテーションフォールト
(#10415)
- リンクが確立していないのに、時々リンク LED が点滅した (#10402)
- RedHat 6.0 におけるインストールの障害 (#10409)
新機能 -
- "network connection up" 時に接続状態を出力
既知の制限 -
- なし
VERSION 1.02
修正された不具合 -
- 複数のアダプタ使用時の障害
- シングルポートアダプタ使用時の障害
- アダプタ認識時に起動文字列しか表示しなかった
- スイッチが再起動された時、特定のスイッチでリンクを確立できなかった
(#10377)
既知の制限 -
- カーネル 2.2.3 のいくつかのマシンで "rmmod" を行うとセグメンテーショ
ンフォールト
VERSION 1.01
修正された不具合 -
- 検出状態が 'warning/error' の後、'ok' に戻らなかった (#10386)
仕様変更 -
- ドライバの並行動作の向上
VERSION 1.00
既知の制限 -
- すべてのカーネルバージョンでテストしていない
(時間が足りませんでした :-)
- x86 バージョンのみ利用可能 (他のものが必要なら、問い合わせてください)
- ソースコードは部分的に入手可能です
***End of Readme File***
Linux カーネル 2.2 付属文書一覧へ戻る