WristPDAでインターネットを楽しむ――ザウルス、赤外線PPPルータに変身

昨日の日記からの御題です。今回紹介する方法は、WristPDAに限った話でもないのですが、身近な組み合わせがWristPDA+ザウルス(SL-C760)だったのでこうなりました(^^;; あまり大きな声では言えませんが、USB接続では自動切断されるある種の某CFカード経由でのルータ接続も、あるいはこの方法でなら大丈夫かもしれません(もしかしたらこちらも対策済みかもしれませんが)。


それは置いておいて。とりあえず、一体何をしているのか?ということを言い訳がてら分からない方にも説明してみます。WristPDAは外見上腕時計です。腕時計でネットサーフィンが出来ると未来的ですが、あまりに小さい画面のおかげで、入力などの操作性が優れているとはお世辞にも言えません。それに携帯電話とは違い、WristPDA単体ではネットに繋がりません。自ずと使い方は限られてきますが、予め巡回するページを決めて、接続時に一気に巡回先やメールを取得して切断。その後オフラインで閲覧する、という使い方であれば手に持って見る携帯電話よりも、腕についているWristPDAの方がほんのちょっとだけ嬉しくなれます。何より、腕時計は鞄やポケットにしまう必要がない!


と、こじつけてみましたが、大き目のWristPDAは、ちょっと作業をするときにもぶつけて壊さないように外す必要があるし、防水でもないので手を洗うときもひやひや物です。というわけで、実際は単なる自己満足なのですが、気軽にモバイル可能な環境でネット接続を可能にしてみました。以下にその詳細を。まずは、下準備としてこちらを参考にして、ザウルスへiptablesをインストールしておいてください。


一言で言ってしまうと、ネットワークに繋がったザウルスをルータとして、WristPDAと赤外線経由でPPP接続を行います。図にするとこんな感じです


[インターネット]----(ダイヤルアップ等)----[SLザウルス]----(PPP&IRCOMM:赤外線シリアル)----WristPDA


IRCOMMというのは耳慣れない人もいるかもしれませんが、シリアルポートと同じだと思って構いません。「てるろーど」をご存知の方なら、SLザウルスがWindowsPCの代わりだと思うと分かりやすいかもしれません。プロバイダから貸し出されたルータでネットに接続されている方であれば、ルータがSLザウルスで、IRCOMMがLANケーブルだと考えてください。ただし、IRCOMMはLANのパケット(データのかたまり)は直接通せないので、PPPという形式を使ってやりとりすると思うと少しは分かりやすいかもしれません(間違ってるかも)。


このPPPというのは、モデムを使ってインターネットに繋げる際にも使用するので、赤外線モデムが使えるようになったWristPDAには、既にPPPでやり取りする能力が備わっています(こちらの「赤外線モデムを使った通信」スレッド上にある説明を参考にして設定してください。ただし、この接続の設定では、Detailの部分のATZ...等は追加しないで大丈夫です)。
一方のザウルスでは、最初にIRCOMMを使用可能にする必要があります。SLザウルスの赤外線は、/dev/ttyS1として知られていますが、これはそのままシリアルとして使える/dev/ttyS0と違い、「生の赤外線ポート」なので注意してください。意味が分からない方も、とりあえずおまじないとして、コンソール上でsuしてルートに入り、


#irattach /dev/ttyS1 -s


と入力して、/dev/ircommを使用可能にしてください。尚、電源を入れる度に[設定]-[赤外線受信]の開始&中止で赤外線ポートを初期化し、irattachを入力しなおす必要があるようです。
また、ザウルスでも、PPPのやり取りを司る「pppd」があらかじめインストールされており、使用可能です。IRCOMMを使用可能にしたら、このpppdでWristPDAからの接続要求を受け付ける様に設定します。上記と同じようにルート上から


#pppd /dev/ircomm 57600 192.168.2.10:192.168.2.11 proxyarp passive silent persist noauth local nodetach


と入力し、pppdを接続待ち受け状態にしてください。上記の設定であれば、回線が切れても、pppdが再度待ち受けに戻るので、WristPDAだけの操作で再接続が可能になります。この時点で、インターネット―ザウルス、ザウルス―WristPDAを繋ぐお膳立ては整いました。が、インターネットとWristPDAのパケットのやり取りが可能になっていません。そこで、ザウルスを中継して、インターネットとLAN間といったパケットのやり取りを、「IPマスカレード」と呼ばれるルータならではの機能を使って実現します。iptablesが、まさしくこのIPマスカレードに必要なソフトウェアで、CFやBluetoothモデムを使用したダイアルアップでザウルスをインターネットに接続している場合は、


# /usr/local/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE


iptablesを起動します。ルータ&無線LANを経由して接続している場合は、


# /usr/local/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


で大丈夫だと思います。それぞれ、ppp0:ダイヤルアップ接続、eth0:LAN接続に相当します。インストール時に見たここを参考にしながら、上記のirattach等も含めてスクリプト化すると、楽が出来るかもしれません。
ここまでくると、あとはWristPDAで接続するだけです。Pref内のNetworkタブ内で設定したネットワーク設定を選び、「Connect」を押してください。SigningUp....の表示の後、10秒程度でEstablishedが出ると成功です。なお、Netoworkタブ上では、左下のHomeボタンを押してもHome画面に戻れません。要注意です。落ち着いてNetowork以外のタブを選び直してから、Homeを押しなおしてください。ちゃんと戻れます。



接続が完了したら、あとはPalmscapeなり、Xiinoなり、Multimailなり、NNsiなりで存分にネット上の情報を巡回して拾い集めてください(^^ 特にXiinoやカスタマイズしたNNsiであれば、高性能な巡回機能があるので、接続に要する時間も短くてよさそうですね。自分も、これから徐々に使い勝手を煮詰めていく予定です。


#ややこしい様に見えますが、ザウルス自体にスクリプトを組んでおけば、地球アイコン一発で
#待ち受け状態に出来るくらいに楽が出来ます。とはいえ昨日も書いたように、
#そこに至るまでが苦労なわけですが・・・。詳細に書く気力が足りません。
#詳しくない人、ごめんなさい○| ̄|_