SunVTS 4.0 テストリファレンスマニュアル

第 39 章 シリアルポートテスト (sptest)

sptest は、システムのオンボードシリアルポート (zs[0,1]zsh[0,1]se[0,1]se_hdlc[0,1]) 以外にも、複数端末インタフェース (ALM2) ボード (mcp[0-3]) を検査します。データを送信側デバイスに書き込み、そのデータを受信側デバイスから読み戻し、1 バイトを送信するごとにデータを照合します。

このテストを実行するには、intervention モードを有効にする必要があります。

sptest はスケーラブルテストではありません。

表 39-1 シリアルポートテスト

モード 

説明 

 非同期テスト (Asynchronous testing)

非同期テストモードでは、zs(7D) および se(7D) のマニュアルページの説明にあるように、非同期通信プロトコルが使用されます。ポートの設定には、termio(7I) インタフェースが使用されます。

 

このモードでは、使用するループバックパスと、転送するデータの大きさ、使用するボーレートを選択することができます。 

 

sptest は、ループバックパスを使用してデータを書き込んでから読み取り、元のデータと照合します。最初に 1 文字を送信し、時間切れを含めて何もエラーが検出されない場合に、残りのデータを同時に読み書きして、照合します。

同期テスト (Synchronous testing) 

同期テストモードでは、sptest は、zsh(7D) および se_hdlc(7D) のマニュアルページの説明にあるように、同期 HDLC フレームインタフェースを使用します。データは、検査合計保護されたパケットの形式で読み書きされます。

 

このモードでは、使用するループバックパスとクロックレートを選択することができます。 

 

同期テストは以下の 3 つのフェーズで実行されます。 

 

  • 第 1 フェーズでは、ポートが動作中か監視されます。4 秒間以上動作がなければ、テストは次のフェーズに進みます。その間に動作があると、回線が有効なため、テストを進められなかったことが通知され、sptest は、エラーを出力して終了します。

  • 第 2 フェーズでは、1 つのパケットの送信と受信が試みられます。5 回試行してもパケットが返されないと、テストはエラーメッセージを出力して終了します。パケットが返されると、元のパケットと比較されます。パケットの長さと内容が正確に一致していなければ、エラーメッセージが発行されます。

  • 第 3 フェーズでは、ループによって多数のパケットの送信が試みられます。第 1 パケットフェーズでリンクの完全性が検証されているため、特定の回数のタイムアウト後も、テストは失敗しません。待ち時間が経過してもパケットが返されない場合は、メッセージが表示されます。このフェーズで送信されるパケットの個数とサイズは、デフォルト値によって決まります。返された各パケットは元のパケットと長さおよび内容を比較されます。一致しない場合には、エラーメッセージが発行されます。

同期テストのソフトウェア条件

マシンに zs(7D) シリアルポートが存在する場合は、同期デバイスが存在しないことになります。/dev ディレクトリに zsh (h は 0 か 1、またはその両方) が存在しているかどうかを調べてください。存在しない場合は、作成することができます。

同期デバイスを作成する
  1. /etc/devlink.tab ファイルに以下の 2 行が含まれていることを確認します。


    type=ddi_pseudo;name=zsh zsh¥M0
    type=ddi_pseudo;name=clone;minor=zsh zsh


    注意 - 注意 -

    上記の行にあるスペースは、zsh と zsh の間に 1 文字のタブ文字が含まれることを示します。空白文字は使用しないでください。


  2. /etc/devlink.tab ファイルに上記の行が既に存在することを確認したら、/kernel/drv ディレクトリに移動して、add_drv zsh コマンドを実行します。

  3. このコマンドが正しく機能しなかった場合は、rem_drv zsh コマンドを実行し、その後で再度 add_drv zsh コマンドを実行します。

sptest のオプション

ダイアログボックスを表示するには、システムマップにあるテスト名を右クリックし、Test Parameter Options を選択します。システムマップにこのテスト名が表示されない場合は、グループツリーを展開すると表示される場合があります。展開しても表示されない場合は、このテストに合ったデバイスがシステムに含まれていない可能性があります。詳細は、『SunVTS 4.0 ユーザーマニュアル』を参照してください。

図 39-1 sptest のテストパラメタオプションダイアログボックス

Graphic

様々なループバックパスを使用することができます。内部ループバックパスでは、外部コネクタは必要ありません。内部ループバックパスを使用できるかどうかは、デバイスによって異なります。zs(7D) デバイスには同期モード用の内部パスがあり、se(7D) デバイスには非同期モード用の内部パスがあります。外部ループバックコネクタについては、付録 A 「ループバックコネクタ」 を参照してください。必要とされるループバックコネクタのタイプは、システム入出力パネルの構成によって異なります。

各 CPU ボードのポートのデバイス名を以下に示します。a は CPU ボードのポート a を表し、b は CPU ボードのポート b を表しています。

表 39-2 sptest シリアルデバイス

CPU 

ポート 

非同期デバイス 

同期デバイス 

zs0 or se0

zs1 or se1

zsh0 or se_hdlc0

zsh1 or se_hdlc1

zs2

zs3

zsh2 *

zsh3 *

zs4

zs5

zsh4 *

zsh5 *

* 現在デバイスドライバでサポートされているのは zsh0zsh1 だけです。

表 39-3 sptest のオプション

オプション 

説明 

Test Type 

テストの実行方法として以下のいずれかを選択します。 

  • a= ポート a でテストを実行

  • b= ポート b でテストを実行

  • a_b= ポート a、b の順にテストを実行

  • a_b_concurrent= ポート a と b で同時にテストを実行

Test Mode 

テスト実行前のシリアルデバイスのモードを指定します。指定可能なモードは asynchronous (非同期)、synchronous (同期)、both (両方) のいずれかです。both を選択すると、非同期モード後に、同期モードでテストが実行されます。 

Loopback Type 

ループバックテスト方法として以下のいずれかを選択します。 

Internal - 内部パスを使用します (aba_ba_b_concurrent テストタイプで有効)。

Plug_a_to_a__b_to_b - 外部ループバックプラグを使用します (aba_ba_b_concurrent テストタイプで有効)。

no_modem_a_to_b - 外部ループバックケーブルを使用します (a_to_ba_to_b_concurrent テストタイプで有効)。

Modem_a_to_b - 同期が取られた送信およびクロックを生成するためのモデムが接続された外部ループバックケーブルを使用します。Modem_a_to_b は、サンの内部で使用することのみを目的としています。このテストは、外部に提供されていない特別な設備を必要とします。

Data Type 

転送するデータパターンとして以下のいずれかを選択します。 

Random

Sequential

Alphanumeric

0x00-0xff

Async Baud Rate 

非同期モードテスト時のボーレートを選択します。有効な値は、110、300、600、1200、4800、9600、19200、38400、57600、76800、115200、153600、230400、307200、460800、ALL で、デフォルトは 9600 です。一部のプラットフォームは、38400 または 76800 までのボーレートしかサポートされていません。サポートされているよりも速いボーレートを試みると、エラーが返されます。153600 を超えるボーレートを使用するには、シリアル回線ドライバを RS-232 モードではなく、RS-423 モードに設定する必要があります。通常、この RS-423 と RS-232 モードの設定は、マザーボード上のジャンパを使用して行います。詳細は、使用するハードウェアの取り扱い説明書を参照してください。 

Async Block Size 

書き込みブロックサイズをバイト単位で指定します。有効な値は 1 〜 10000 の範囲で、デフォルトは 100 バイトです。非同期サイズより大きい場合は、非同期サイズに切り詰められます。 

Async Data Size 

非同期モードで転送する総バイト数を指定します。有効な値は、1 〜 10000の範囲です。 

Async Parity 

非同期モードで使用するパリティ検査方式としてeven (偶数)、odd (奇数)、none (なし) のいずれかを選択します。デフォルトは noneです。

Async Flow Control 

非同期モードで使用するフロー制御方式として Hardware (RTS/CTS)、Software (XON/XOFF)、None のいずれかを選択します。デフォルトはテストタイプの指定によって異なります。a、b、a_b、a_b_concurrent テストタイプで、Software フロー制御を使用することはできません。

Sync Baud Rate 

同期モードでデバイスが生成するクロックレートを指定します。有効な値は 110 〜 230400 の範囲です。 この数値は、非同期モードでのボーレートとは異なり、特定の値である必要はありません。デフォルトのレートは 9600 です。一部のプラットフォームは、38400 または 76800 までのボーレートしかサポートされていません。サポートされているよりも速いボーレートを試みると、エラーが返されます。100000 を超えるボーレートを使用するには、シリアル回線ドライバを RS-232 モードではなく、RS-423 モードに設定する必要があります。通常、この RS-423 と RS-232 モードの設定は、マザーボード上のジャンパを使用して行います。詳細は、使用するハードウェアの取り扱い説明書を参照してください。 

Sync Packet Drop Tolerance 

同期モードの many_packets サブテスト中の、パケットドロップの許容レベルを指定します。有効な値は、0% 〜 99%です。クロックレートが高く、システムの負荷が大きくなると、パケットドロップが発生する可能性が高くなります。 

Sync Poll Count 

同期モードでのパケット送信の追加待ち時間を秒単位で指定します。この追加待ち時間は、システムの負荷が大きく、時間切れが検出されるときに必要になることがあります。一般的に、システムの負荷が小さいときはゼロ(0) に設定し、システムの負荷が大きいときに値を大きくしてください。

sptest のテストモード

sptest は、SunVTS の 3 つのテストモードをすべてサポートしています。

表 39-4 sptest のテストモード

テストモード 

サポート 

説明 

接続テストモード 

○ 

sptest は、ポートを開いて、デバイスが接続されているかどうかを判定しようとします。ポートがビジーではないのに開けなかった場合は、テストは終了してエラーが返されます。ポートが開いたか、ビジーまたは排他使用エラーでポートを開けなかった場合は、デバイスがポートに接続されているとみなされ、テストは成功したことになります。

機能テストモード (オフライン) 

○ 

選択されたループバックテストを行います。 

機能テストモード (オンライン) 

○ 

sptest は、動作中のアプリケーションに極力テストの影響を与えないように動作します。オンラインテストは、同期と非同期の両方のモードで動作します。デバイスが内部ループバックをサポートしている場合は、内部ループバックを利用してオフラインテストを実行します。zs(7D) は内部同期ループバック、se(7D) は内部非同期ループバックをサポートしています。

sptest のコマンド行構文

/opt/SUNWvts/bin/sptest 標準引数 -o dev=デバイス名,porta= 1 ポート名, T=ポート,L=ループバックタイプ,M=モード,D=データパターン, AB=async_baudrate, BS=非同期時ボーレート,S=非同期時書き込みサイズ,PAR=パリティ,F=フロー制御, B=同期時速度,DP=同期時ドロップ許容レベル,P=同期時時間切れ

表 39-5 sptest のコマンド行構文

引数 

説明 

dev=デバイス名

テストするシリアルポートを指定します。デフォルト値はないため、以下のような形式で必ず指定する必要があります。 

  • se0,

  • zs0, zs1

  • zs2, zs3

  • ..., ...

porta=ポート名

シリアルデバイスペアの最初のデバイス名を指定します。デフォルトは a です。

M=モード

テストモードとして、以下のいずれかを指定します。 

  • asynch

  • synch

  • both

デフォルトは、asynchronous (非同期) です。 

T=テストタイプ

実行するテストのタイプとして、以下のいずれかを指定します。 

  • a= ポート a でテストを実行

  • b= ポート b でテストを実行

  • a_b= ポート a、b の順にテストを実行

  • a_b_concurrent= ポート a と b で同時にテストを実行

  • a_to_b= ポート a からポート b にテストを実行

L=ループバックのタイプ

ポートに接続するループバックコネクタのタイプとして以下のいずれかを指定します。 

  • No_modem_a_to_b

  • Internal_a_to_a__b_to_b

  • Plug_a_to_a__b_to_b

  • Modem_a_to_b

D=データパターン

転送するデータパターンを指定します。指定可能な値は以下のいずれかです。 

  • Random

  • Sequential

  • Alphanumeric

  • 0x00-0xFF

AB=ボーレート

非同期モードでのボーレートを指定します (デフォルト = 9600)。有効な値は、110 〜 460800 の範囲です。

注 - 一部のプラットフォームでは、38400 または 76800 までのボーレートしかサポートされていません。153600 を超えるボーレートを使用するには、シリアル回線ドライバを RS-232 モードではなく、RS-423 モードに設定する必要があります。 

BS=非同期時書き込みサイズ

非同期モードでの書き込みブロックサイズを 1 〜 10000 バイトの範囲で指定します。 

S=非同期時総サイズ

非同期モードでの総書き込みバイト数を 1 〜 10000 バイトの範囲で指定します。 

PAR=パリティー

非同期モードでのパリティー検査方式として、以下のいずれかを指定します。 

  • None

  • Even

  • Odd

F=フロー制御

非同期モードでのフロー制御方法として、以下のいずれかを指定します。 

  • Hardware(RTS/CTS)

  • Software (xon/xoff)

  • None

B=ボーレート

同期モードでのボーレートを指定します (デフォルト = 9600)。 有効な値は 110 〜 256000 の範囲です。

注 - 一部のプラットフォームでは、38400 または 76800 までのボーレートしかサポートされていません。100000 を超えるボーレートを使用するには、シリアル回線ドライバを RS-232 モードではなく、RS-423 モードに設定する必要があります。 

DP=同期時ドロップ 許容レベル

同期モードでのパケットドロップの許容レベルを指定します (デフォルト=20 %)。 

P=同期時時間切れ

同期モードでのポーリング中の追加待ち時間を秒単位で指定します。 


注 -

64 ビットのテストは、sparcv9 サブディレクトリに格納されています (/opt/SUNWvts/bin/sparcv9/テスト名)。このディレクトリにテストが存在しない場合は、そのテストは、32 ビットのテストとしてだけ実行することができます。詳細は、「32 ビットテストと 64 ビットテスト」を参照してください。


sptest のエラーメッセージ

表 39-6 sptest のエラーメッセージ

 

エラーメッセージ 

考えられる原因 

対処方法 

6003

data miscompare, cnt = 数値, exp = , obs = , receive device = 名前, source device = 名前, baud rate =

選択されているボーレートではシステムの負荷が大きすぎます。 

システムの負荷を減らしてください。 

ループバック接続の不良 

ボーレートを低くしてください。 

シリアルポートのハードウェア不良 

ループバック接続を調べてください。 

システムソフトウェアエラー 

エラーがなくならない場合は、購入先に問い合わせてください。 

6011

名前: packet read failed, error = エラーメッセージ, speed = 数値

システムの負荷が大きすぎます。 

システムの負荷を減らしてください。 

ループバック接続がされていないか、不良です。 

ループバック接続を調べてください。 

シリアルポートのハードウェア不良 

エラーがなくならない場合は、購入先に問い合わせてください。 

システムソフトウェアエラー 

エラーがなくならない場合は、購入先に問い合わせてください。 

6012

名前: packet write failed, error = エラーメッセージ, speed = 数値

システムの負荷が大きすぎます。 

システムの負荷を減らしてください。 

シリアルポートのハードウェア不良 

エラーがなくならない場合は、購入先に問い合わせてください。 

システムソフトウェアエラー 

エラーがなくならない場合は、購入先に問い合わせてください。 

6013

Device 'デバイス名' not responding. No data detected after 数値 seconds. Received 数値 bytes out of 数値 sent. Baud rate = 数値

選択されたボーレートではシステムの負荷が大きすぎます。 

システムの負荷を減らしてください。 

ループバック接続がされていないか、不良です。 

ボーレートを低くしてください。 

シリアルポートのハードウェア不良 

ループバック接続を調べてください。 

システムソフトウェアエラー 

エラーがなくならない場合は、購入先に問い合わせてください。 

6014

名前: expected テキスト got テキスト

 

 

6015

Incomplete write on Port 名前, len 数値 should be 数値, speed = 数値

システムの負荷が大きすぎます。 

システムの負荷を減らしてください。 

ループバック接続がされていないか、不良です。 

ループバック接続を調べてください。 

シリアルポートのハードウェア不良 

エラーがなくならない場合は、購入先に問い合わせてください。 

システムソフトウェアエラー 

エラーがなくならない場合は、購入先に問い合わせてください。 

6016

Incomplete read on Port 名前, len 数値 should be 数値, speed = 数値

システムの負荷が大きすぎます。 

システムの負荷を減らしてください。 

ループバック接続がされていないか、不良です。 

ループバック接続を調べてください。 

シリアルポートのハードウェア不良 

エラーがなくならない場合は、購入先に問い合わせてください。 

システムソフトウェアエラー 

エラーがなくならない場合は、購入先に問い合わせてください。 

6018

名前: port not ready for writing after 数値 seconds, speed = 数値

システムの負荷が大きすぎます。 

システムの負荷を減らしてください。 

ループバック接続がされていないか、不良です。 

ループバック接続を調べてください。 

シリアルポートのハードウェア不良 

エラーがなくならない場合は、購入先に問い合わせてください。 

システムソフトウェアエラー 

エラーがなくならない場合は、購入先に問い合わせてください。 

6020

packet data miscompare, cnt = 数値 exp = , obs = , device = 名前, speed = 数値

システムの負荷が大きすぎます。 

システムの負荷を減らしてください。 

ループバック接続の不良 

ループバック接続を調べてください。 

シリアルポートのハードウェア不良 

エラーがなくならない場合は、購入先に問い合わせてください。 

システムソフトウェアエラー 

エラーがなくならない場合は、購入先に問い合わせてください。 

6021

名前: port not ready for reading after 数値 seconds, no data available, speed = 数値

システムの負荷が大きすぎます。 

システムの負荷を減らしてください。 

ループバック接続がされていないか、不良です。 

ループバック接続を調べてください。 

シリアルポートのハードウェア不良 

エラーがなくならない場合は、購入先に問い合わせてください。 

システムソフトウェアエラー 

エラーがなくならない場合は、購入先に問い合わせてください。 

6022

名前: port not ready for writing after 数値 seconds, wrote 数値 bytes out of 数値. Baud rate = 数値

システムの負荷が大きすぎます。 

システムの負荷を減らしてください。 

ループバック接続がされていないか、不良です。 

ループバック接続を調べてください。 

シリアルポートのハードウェア不良 

エラーがなくならない場合は、購入先に問い合わせてください。 

システムソフトウェアエラー 

エラーがなくならない場合は、購入先に問い合わせてください。 

8001

Test Type a_to_b is not allowed on Quick Test!

 

 

8002

名前: open() failed, error = エラーメッセージ

 

 

8003

Invalid Data Type: I=テキスト

 

 

8004

名前: poll() error, (revents & (POLLERR | POLLHUP | POLLNVAL)) =

 

 

8005

Siemens serial device (se) does not support synchronous internal loopback test

 

 

8006

Invalid port parameter: 名前

 

 

8007

Invalid device 名前 '名前', must specify either zsX or seX, where X is the first instance 数値 of a device pair (ex., zs0)

 

 

8009

Failed ioctl 名前, device = 名前, error = エラーメッセージ

 

 

8010

名前: Not able to push Tty compatibility STREAMS module

 

 

8011

Invalid Test Type: T=名前

 

 

8012

Invalid Mode: M=名前

 

 

8013

名前 device does not exist

 

 

8014

Invalid baud_rate: 数値

 

 

8015

write() to 名前 failed: エラーメッセージ, baud rate = 数値

 

 

8016

read() to 名前 failed: エラーメッセージ, baud rate = 数値

 

 

8017

Invalid size, requested = 数値 bytes, min = 数値, max 数値

 

 

8018

Could not open 名前 after waiting 数値 seconds

別のプロセスがポートを使用しています。 

ポートを使用している他のプロセスを停止させてください。 

ポートが動作していません。 

エラーがなくならない場合は、購入先に問い合わせてください。 

シリアルポートのハードウェア不良 

エラーがなくならない場合は、購入先に問い合わせてください。 

システムソフトウェアエラー 

エラーがなくならない場合は、購入先に問い合わせてください。 

8021

名前: No valid packets returned after 数値 attempts, last error = エラーメッセージ, wrote 数値 packets, read 数値 packets, device accounting shows 数値 packets sent and 数値 packets received

システムの負荷が大きすぎます。 

システムの負荷を減らしてください。 

時間切れ値が小さすぎます。 

Sync_Poll_Count 値を大きくしてください。

ループバック接続がされていないか、不良です。 

ループバック接続を調べてください。 

シリアルポートのハードウェア不良 

エラーがなくならない場合は、購入先に問い合わせてください。 

システムソフトウェアエラー 

エラーがなくならない場合は、購入先に問い合わせてください。 

8022

printdlprim: unsupported primitive type

 

 

8023

stringtoaddr: invalid input string: テキスト

 

 

8025

dlinfoack: response ctl.len too short: 数値

 

 

8026

dlinfoack: DL_INFO_ACK was not M_PCPROTO

 

 

8027

dlokack: response ctl.len too short: 数値

 

 

8028

dlokack: DL_OK_ACK was not M_PCPROTO

 

 

8029

dlerrorack: response ctl.len too short: 数値

 

 

8030

dlerrorack: DL_OK_ACK was not M_PCPROTO

 

 

8031

dlbindack: response ctl.len too short: 数値

 

 

8032

dlbindack: DL_OK_ACK was not M_PCPROTO

 

 

8033

sigalrm: TIMEOUT

 

 

8037

invalid packet length: 数値

 

 

8038

名前: poll() failed, error = エラーメッセージ

システムの負荷が大きすぎます。 

システムの負荷を減らしてください。 

シリアルポートのハードウェア不良 

エラーがなくならない場合は、購入先に問い合わせてください。 

 

システムソフトウェアエラー 

8039

Failed I_STR ioctl, cmd = 名前, device = 名前, error = エラーメッセージ

 

 

8040

名前: No packets sent, last error = エラーメッセージ, wrote 数値 packets, read 数値 packets, device accounting shows 数値 packets sent and 数値 packets received

送信クロックがありません。 

システムの負荷を減らしてください。 

システムの負荷が大きすぎます。 

Sync_Poll_Count 値を大きくしてください。 

時間切れ値が小さすぎます。 

ループバック接続を調べてください。 

ループバック接続がされていないか、不良です。 

エラーがなくならない場合は、購入先に問い合わせてください。 

シリアルポートのハードウェア不良 

エラーがなくならない場合は、購入先に問い合わせてください。 

システムソフトウェアエラー 

エラーがなくならない場合は、購入先に問い合わせてください。 

8041

Sporadic packets detected on 名前. The port must be quiescent before running test

他のプロセスがポート上で稼働しています。

ポートを使用している他のプロセスを停止させてください。 

シリアルポートのハードウェア不良 

ポートを使用している他のプロセスを停止させてください。 

システムソフトウェアエラー 

ポートを使用している他のプロセスを停止させてください。 

8042

syncinit: 名前 missing minor device 数値

 

 

8046

Test requires local or remote modem loopback (external data loop, external clocking)

 

 

8047

名前 loopback type not allowed on Connection test

 

 

8048

名前 loopback type not allowed on online mode

 

 

8049

Invalid baud rate for device 名前, select between 数値 and 数値

 

 

8050

名前 internal loopback test not allowed on 名前 device

 

 

8051

Thread creation failed, エラーメッセージ

 

 

8054

名前: At least 数値 packets dropped (tolerance = 数値), last error = エラーメッセージ. Wrote 数値 packets, read 数値 packets. Device statistics shows 数値 packets sent and 数値 packets received. 数値 packets dropped in outbound queueing, 数値 packets dropped in inbound queueing

システムの負荷が大きすぎます。 

システムの負荷を減らしてください。 

ループバック接続がされていないか、不良です。 

パケットドロップ許容レベル値を大きくしてください。 

シリアルポートのハードウェア不良 

ループバック接続を調べてください。 

システムソフトウェアエラー 

エラーがなくならない場合は、購入先に問い合わせてください。 

8055

名前: 数値 bad packets received, last error = エラーメッセージ, wrote 数値 packets, read 数値 packets, device accounting shows 数値 packets sent and 数値 packets received

システムの負荷が大きすぎます。 

システムの負荷を減らしてください。 

ループバック接続がされていないか、不良です。 

ループバック接続を調べてください。 

シリアルポートのハードウェア不良 

エラーがなくならない場合は、購入先に問い合わせてください。 

システムソフトウェアエラー 

エラーがなくならない場合は、購入先に問い合わせてください。