FreeBSD QandA 1429
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 まで
お知らせください。