W-ZERO3[es]でダイアルアップ接続

 polyさんコンパイル済のカーネルモジュールを配布してくださってるので、それを利用して、Zaurusからのダイアルアップ接続を試みてみました。

W-ZERO3[es]側の設定

 W-ZERO3[es]のケーブル接続設定のデフォルトは、PCとの同期(ActiveSync)を行うモードに設定されています。Zaurusに限らず、W-ZERO3[es]をUSBモデムとして利用するためには以下の設定を行います。


 「スタートメニュー」−「設定」−「接続」−から、「USB接続」を選択し、USB接続のタブで「モデムとして使用する。」を選択します。
 同じくActiveSyncのタブで、「高度なネットワーク機能を有効にする」チェックも外しておきます。こちらは必ずしも必須ではありませんが、このチェックボックスがオンになっているとたまに誤動作することがあったんで、念の為外しといた方が無難っぽいです。


USB接続タブ

ActiveSyncタブ

Zaurus側の設定

 まず、前提条件としてW-ZERO3[es]のUSBモデムドライバが、USB-SERIAL変換のカーネルモジュールを利用しているため、カーネル側のオプションで該当のドライバが有効になっていなければいけません。

 で、どうも、標準のカーネルでは、これが有効になっていないっぽいです。

 幸い、polyさんのページで、これらのオプションが有効化されたカーネル公開してくださってるので、とりあえずこのカーネルに入れ替えて試してみることにします。
 カーネルは zImage 形式にて配布されてますんで、入れ替えの手順については所謂スペシャルカーネルの入れ替え手順と同様です。手順の詳細については、そちらを参照して下さい。


 カーネルの方の準備が出来たら、以下の該当モジュールを所定の場所にコピーします。

/lib/modules/2.4.20/kernel/drivers/usb/serial/ipaq.o
/lib/modules/2.4.20/kernel/drivers/usb/serial/usbserial.o

 その後、suして、「depmod -a」でエラーが出なければOKです。
 何らかのメッセージが表示された場合は何かミスってますんで、モジュールの配置場所や、カーネルバージョン等を確認してみて下さい。

 カーネルとモジュールが用意出来たら、いよいよW-ZERO3[es]を接続します。

 USBケーブルで両機を接続したら、システム情報を確認します。
 「システム情報」−「デバイス」で「USB」の欄に「SHARP WS007SH USB Modem Driver」が追加されています。
 詳細を見ると、ドライバの欄に「serial」と表記されており、usb-serialのドライバがロードされていることも分かります。

正常な認識


 ここでデバイス名の前に「*」が付いている場合は、ドライバのロードに失敗しています。実際、詳細画面のDriverの欄も (none) になっているかと思います。

認識失敗

 この場合、ここまでの手順をもう一度確認してみて下さい。


 ただし、W-ZERO3[es]側のUSBモデムとしての認識にあたっては、多少癖があるようで、ここまで正常な手順を踏んでいても、たま〜に認識に失敗する場合があります。

 今のところ、認識に失敗しやすい条件としては、以下のような状況を確認しています。

1. W-ZERO3[es]側が通信中

 ケーブル接続中にW-ZERO3[es]側で通信を行った場合、その後USBモデムモードに復帰しないことがあります。実際、USBケーブルを接続した後、モデムとして認識されるまでには、数秒のタイムラグがあり、そこからダイアルアップ作業を行うまでの間に、さらにEメールの自動受信等が始まってW-ZERO3[es]側が通信中になることがままあります(涙)。
 そういった場合、モデムとして認識されない状態が発生します。この場合、一旦USBケーブルを抜き、改めて挿し直すことでUSBモデムモードに復帰することが出来ます。

2. 先にW-ZERO3[es]側にケーブルを接続する

 先にW-ZERO3[es]側にUSBケーブル(miniB)を挿入し、その後Zaurusにケーブル(miniA)を挿入した場合、USBモデムモードに移行しない場合があります。
 ケーブル接続時には、先にホスト(Zaurus)側にminiAの端子を挿入し、その後でW-ZERO3[es]にminiBのケーブルを接続した方が良いようです。

3. ケーブル接続後、一定時間経過する

 ケーブル接続後、すぐにダイアルアップ動作等を行わず、一定時間を経過、或いはW-ZERO3[es]が省電力モードに移行した場合、USBモデムモードが解除される場合があるようです。
 これも、単純にケーブルを挿し直せば復帰する問題ですが、無用な電力消費を避ける意味でも、なるべくダイアルアップする直前に接続を心がけた方が良いでしょう。


 ここまでで、ハードウェアの方の認識作業は終了です。

ダイアルアップ設定

 ダイアルアップの設定は、Bluetooth接続等の時と同様に赤外線ダイアルアップの設定を利用して行います。

 「設定」−「ネットワーク設定」−「接続設定」−「ダイアルアップ接続」−「追加」で、「PPPダイアルアップ接続[赤外線]」を選択します。

赤外線ダイアルアップ設定


 また、何故か手元のW-ZERO3[es]ではATZコマンドが通らなかったので、「モデム」タブで設定するの「初期化コマンド」には「AT」のみを指定します。

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


 後は、通常のダイアルアップ接続の設定作業と同様、接続先電話番号、ID、パスワード等の設定を行います。


 上記の設定後、さらにpppスクリプトファイルを以下のように修正します。

# /etc/ppp/peers/IRDA?????????? (?部分は任意の数字)

noipdefault
/dev/ttyUSB0 115200     # <- 二行目の先頭に「 /dev/ttyUSB0」を追記
connect '/usr/sbin/chat -s -v -t 60 ABORT "NO CARRIER" ABORT "NO DIALTONE" ABORT "BUSY" "" "AT" OK "ATDT0570570710##64" CONNECT "\\d\\d"'
crtscts
lock
modem

〜以下略〜

 上記の設定後、タスクバーの地球アイコンをタップすることで、ネットワーク接続が行えるようになります。

覚書

バイス

 ttyデバイス名は、 /dev/ttyUSB0 となります。
 勿論、USB-HUBを経由し、さらに別のUSB-シリアル変換機器などを併用している場合はデバイス番号が、0以上になる場合もあるかと思われます。

ATZが通らない?

 PPPダイアルアップ時には、ネットワーク設定で設定した、所定のモデム初期化コマンド発行後、ダイアルアップ動作が行われます。
 なんですが、通常、モデムの初期化コマンドとして使われるATZが何故か手元のW-ZERO3[es]では通りませんでした。
 正確には、pppスクリプト内で、ATZを発行し、それに対して「OK」の文字列確認後、ダイアル動作を行うと言う処理を行っているみたいなんですが、ここで処理が停止してしまいます。
 単純にW-ZERO3[es]が「OK」を返さない仕様なのか、そもそもATZコマンドが通らない仕様なのかが不明なんですが、とりあえず今んとこモデム初期化コマンドを「AT」のみとしておくことで対処しています。


 なお、これらの設定後も、初回のダイアルアップ時で失敗する場合があります。これも、恐らくはW-ZERO3[es]側のUSBモデムモードの問題で、ホスト側から何らかのモデムコマンドを発行受け取ることで、改めてモデムモードへ移行するといった仕様になっているのでは無いかと思われます。
 設定が正常に行われていれば、そのままもう一度ダイアルアップ動作を行うことで、問題無く接続することが出来ます。

 正直なところ、ここまでいくつかの注意点を記載した通り、W-ZERO3[es]のUSBモデムとしての動作には、若干癖があります。ただし、その殆どの問題ははUSBモデム機器としての認識で発生するもので、実際のダイアルアップ接続確立後は、特に目立った不具合も無く、快適に通信出来ました。つか、正直、W-ZERO3[es]単体で内蔵のoperaでアクセスするよりもZaurusに繋いでる時のが速いよーな気が・・・(^^;)。
 さすがに、auの2M通信に比べれば通信速度は遅いとは言え、実用上は十分な速度です。

 あとの難点は、前述の通り標準カーネルでUSB-SERIALのオプションが有効になってないんで、カーネル入れ替えが必須ってことですかね。
 ACMモジュール(いわゆる京ぽんドライバ)の方は、標準カーネルでも通るみたいなんで、こっち側のUSBデバイス認識部だけいぢって何とかならんもんかな?(^^;)。