(C)Copyright 1999-2001 SysKonnect GmbH. All rights reserved =========================================================================== 日本語訳:野本浩一 校正:武井伸光さん 中野武雄さん 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 これで、アダプタはイーサネットに接続します。アダプタの唯一の黄色い LED がその時点灯し、(スイッチングハブもしくはハブに接続している場合) プライマリポートのリンク状態の LED が ON になり、(デュアルポートア ダプタ上の) セカンダリポートのリンク状態の LED は、点滅します。コン ソールには "ethX: network connection up using port Y" というステー タスメッセージが表示され、選択した接続パラメータが示されるはずです。 注意 - IP アドレスが分からなければ、ネットワーク管理者に相談してく ださい。 4) これでアダプタは完全に動作しているはずです。 'ping ' を使い、ネットワーク上の他のコンピュータへの 接続を確認します。 /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
' を用いると、"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***