FIVA MPC-205でLinux WS - P-in Free 1Pで常時接続

Last Modified: 2004.02.18

14. P-in Free 1Pで常時接続
新しい物好きで小金持ちな俺。
早速P-in Free 1Pを購入した。
これでお出かけでも安心、と思いきや.....

1. KPPPを起動

早速、P-in Free 1Pを挿入して、KPPPを起動しMoperaに接続する。
Moperaはユーザ名とパスワードは必要ないので、適当な値を入れておく。

また、電話番号には「0570800166#6401」と、繋ぎっぱなしの番号を入れる。

エラーが出たが、Windows2000, PocketPCで問題なく接続できているので、
「Windows2000のinfファイルを見てモデムを初期化すれば楽勝」
と、この時点では余裕綽々だった。

2. モデム初期化コマンドの設定

Windows2000のinfファイルとマニュアルから、
 「設定 - モデム - モデムコマンド」
で以下のように設定。

初期化文字列1 AT&F
初期化文字列2 ATE0\V2&C1&D2&K3&S0S0=0
ダイヤルトーン検出なし 空白
Uボリューム オフ/小/大 全て空白


これで問題なく接続できた。
はずだったが.....

3. エラー発生

Windows2000, PocketPCでは、すんなり接続できている。
ウェブブラウジングにもメール送受信にも問題ない。

ところがLinuxでは認証後一度繋がりpingは通るのだが、ちょっと大きめのデータをやり取りすると エラーが出てpppdが死んでしまう(実際の終了状態は16)。

4. 試行錯誤

どこが悪いのかわからずに、試行錯誤を繰り返すこと一週間(チュララ...)。
  • googleをしつこく検索(まだ情報がない)。
  • pcmcia-csを最新版に入れ替え。
  • pppdのソースにコメントを入れて、どこでエラーが起きているのか調査。
  • KernelのPPP関係のオプションを変更して、再構築
直らない。どこが悪いんだか良くわからない。

ふと/var/log/messagesを見て気づいた。

 fiva kernel: ttyS00 at port 0x03f8 (irq = 3) is a TI16750
  1. 昨今の大抵のシリアルは16550Aなのに、TI16750と認識されている。
  2. TI16750の方が高機能らしいが、バグがある可能性、誤認識の可能性がある。
  3. Windows2000, PocketPCには特別なドライバは入れていないので、16550Aで動いているのでは?
  4. Linuxでも16550Aと認識させれば動くかも。

5. 成功

kernelソースの drivers/char/serial.c を編集して、TI16750と認識している部分をコメント化。
カーネルの再構築を行ったら、16550Aと認識して見事動作しました。

drivers/char/serial.c 3758行目あたり

 /*    if (scratch == 6)                       <--- この行と下の行を、 /* と */ で挟んでコメント化。
           state->type = PORT_16750; */

6. その他の注意点

FIVA MPC-205には組み込みのNICがある。このNICを ifconfig eth0 down で落とさないと、P-in Free 1Pで接続できない。

ところが、 /etc/cron.hourly/rmmod (中身は /sbin/rmmod -as で利用していないモジュールを削除)によって1時間毎にeth0が立ち上がってしまい、同時にP-in Free 1Pの接続が切れてしまう。
これを避けるために、 /etc/cron.hourly/rmmod を削除しました。

<Prev Top Home
Copyright(C) 2001-2003 Katsuyuki Kobayashi.
このサイトへのリンクや引用時はメール頂戴
webmaster@kkoba.com