FreeBSD QandA 1429

FreeBSD QandA

Q. ppp コマンドでインターネットに接続しているのですが、ftp コマンドで
   ファイルを転送したり、メールに添付してファイルを送る場合などに、ある
   特定のサイズ (20kbytes くらい) 以上のファイルを送ろうとすると、途中
   から送信が止まったような状態になります。この時、kernel が
     sio1: 1 more silo overflow (total 1)
   などというエラーメッセージを出しています。同じハードウェア構成でも
   Windows95 では全く問題ありません。

A. PC-モデム間の送信フロー制御の設定が正しくない時や、ケーブルが不適切な
   時に起こりそうな症状です。DCE速度 (33.6kbps) よりも DTE速度 (例えば
   115.2kbps) の方が速いので、よほど LAPM で圧縮が効くデータでない限り
   モデムのバッファが一杯になってモデムから PC へ送信停止要求が行きますが、
   これが発生しなかったり正しい方式でなかったり (xon/xoff制御) するとフロー
   制御ができなくてオーバーフローした送信データが消失します。

   以下の点を確認してみて下さい。

       1) モデムはハードウェア (RTS/CTS 又は RS/CS) フロー制御になってい
          るか。(またはPPP接続初期化時にハードウェアフロー制御に設定する
          ATコマンドが送られているか)。
       2) (念のため)sio の irq が正しいか。

   モデムに関する設定は

       1) PC 側の設定は ppp コマンドを実行してから show modem で
       2) モデム側の設定は AT コマンドで

   それぞれ参照できます。AT コマンドの詳細はモデムのマニュアルを参照して
   下さい。私の環境では /etc/ppp/ppp.conf の set dial を以下のように
   しました。

        set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATLM \
              OK-AT-OK AT&K3 OK-AT-OK ATDP\\T TIMEOUT 40 CONNECT"

   ここで、 "AT&K3" が私のモデム(Diamond Multimedia SupraExpress 336i
   PnP)で RTS/CSフロー制御にするための ATコマンドです。

   また sio の irq に関しては dmesg | grep sio で、見ることができます。
   他の OS (例えば Windows) などがある場合はそちらでも irq を確認して
   みましょう。

間違い・追加情報を見付けた場合は、 修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで お知らせください。