リナザウ (SL-C3100) を無線LANルータ化し iPod Touch でサファる

ついにねんがんの iPod Touch をてにいれたぞ!

そして折角の iPod Touch ですからインターネットに繋いで safari とか使わないともったいない!
さらに家では普通にブロードバンドルータにぶら下がった WiFi アクセスポイントで WiFi 接続するけど、できれば出先でも使いたい!

そんなわけで、世間では WindowsMobile 機に WMWiFiRouter でやるのが流行ってますが、僕が持っているのはリナザウなので、リナザウでがんばってみました。

繋がるまで結構苦労したので、ここにメモしておきます。

[用意するもの]

まず、リナザウPHS カードでダイヤルアップしてインターネットにアクセスできるところまではクリアしてるのを大前提とします。
ちなみに僕の場合は NECAX420N でプロバイダを IIJmio でつなげてます。

んで、要はこの ppp 接続のインターフェースと無線 LAN のインターフェースをIP マスカレードで繋いであげて、無線 LAN 側へのアクセスを全部 ppp 接続の方に流してあげればいいわけですね。

ダイヤルアップのためのカードは CF で、これで1つしかない CF スロットが埋まりますので、無線 LAN カードは今回使えません。

となると後は SDIO な SD WiFi カードか、USB 接続の WiFi アダプタしか選択肢がありません。基本的にリナザウは SDIO 対応してないんですが、グーグル様にいろいろお伺いを立てた結果、SD-Link11b という SD WiFi カードが昔発売されてて、こいつなら SL-C860SL-C760 で使えたとのこと!

http://www.zentek.co.jp/sd/support/download/link.html

しかし SL-C3100 では使えないとのこと!orz

http://blog.livedoor.jp/kog/archives/50205727.html

この時点で USB タイプの無線 LAN アダプタしか選択肢がなくなりました。ので、電器屋に行ってお買い求めしてきます。

リナザウの USB ホスト機能で USB 機器を使う場合にはドライバの対応が重要で、Windows みたいにほとんどどんなものでもドライバが用意されているというわけではありませんから、選定は重要です。

ググった結果、ZYDAS 社の ZD1211B というチップを積んだものであればドライバ&動作実績があるということなので、これを買ってきました。箱を見たら iPod Touch へも対応可って書いてあったので、今回の目的にはうってつけです! ちなみに \1,700 くらいでした。iPod Touch 買ったときのポイントで買えた。

http://www.planex.co.jp/product/wireless/gw-us54gxs.shtml

そしてこれもググって分かったことなのですが、リナザウの USB ポートに USB 機器を挿して使う場合、定格の 500mA が出てないようで、機器によっては電力不足で正常稼動しないとのこと!

売り場にあったものの中でも GW-US54GXS は比較的低消費電力 (最大2W) だったんですが、それでも上記の問題に引っかかってしまいました。というわけで「リナザウ - USB Hub(セルフ給電) - GW-US54GXS」という繋ぎ方にしないと、だめでした。これじゃコンセント使える場所じゃないとできねー、意味ねーじゃん!と思って、「バッテリーを内蔵しててコンセントが無くても USB 機器に給電出来るハブ」ってものが存在しないか調べたんですが、昔サンワサプライがそういうの出してたけどもう製造してないみたいです……。

http://www.sanwa.co.jp/product/syohin.asp?code=USB-HUB211DS

普通にモバイルノート PC とかの利用シーンでも需要ありそうなのに、ないんですねー。もしこんなの知ってる!って方がいましたらぜひ教えて欲しいです。

で、電器屋の売り場にもそういうのが見当たらなかったため、今回はごくフツーの USB ハブを間にかましました。

ここまでで必要な機器がそろえば、あとはリナザウのセットアップと iPod Touch のセットアップをするだけです。

リナザウ側の設定

1. GW-US54GXS を使えるようにする

ただ USB ポートに挿しただけだとドライバも無くウンともスンとも言いませんので、まずはドライバを入れます。

コンパイル済みのモジュールを配布されている方がいたので、こちらからバイナリを貰ってきて入れました。

http://spock.ss.u-tokai.ac.jp/~kamii/LinuxZaurus/GW-US54GXS.shtml

説明にあるとおり、展開した zd1211b.o と zd1211.o を /lib/modules/2.4.20/net/ にコピーして、root になってから depmod -a をします。lsmod して zd1211b が出てくれば OK.

2. GW-US54GXS を挿したときに、WiFi 用ネットワークインターフェースを作って初期化されるようにする

アドホックモードの WiFi アクセスポイントとして使えるように、ipconfig でインターフェースを立ち上げ、iwconfig で設定されるようにします。

手動でやる場合はこんな手順になります。(su - してから)
ちなみに下記を参考にしました。
http://www.sky.sannet.ne.jp/morostar/usbhost/GW-US54GZ-W0.html

まず無線 LAN 用のインターフェースを立ち上げます。

ifconfig wlan0 192.168.0.1 netmask 255.255.255.0 up

192.168.0.1 は好きなアドレスを使ってください。分からなければこのままで。

次に、無線 LAN の設定をします。

iwconfig wlan0 essid "your-essid"
iwconfig wlan0 mode Ad-Hoc
iwconfig wlan0 rate auto
iwconfig wlan0 key "WEPキー"

essid, key には実際に設定したい ESSID と WEB キーを指定します。
そのほかのオプションの意味とかはこの辺を参考にしてください。
http://itpro.nikkeibp.co.jp/article/COLUMN/20060228/231136/

この時点で、うまくいけば GW-US54GXS のインジケータ LED が青くぴかぴか光るはず! 光らなかったら、なんかおかしいので、いろいろ調べて光るまでがんばろう。えいえいおー、がんばれー。

あとはこの操作が USB の抜き差しをしたときに自動的に行われるよう、スクリプト化して /etc/hotplug/usb に置いておけば完成です。

/etc/hotplug/usb/zd1211

#!/bin/bash
./etc/hotplug/hotplug.functions

ifconfig wlan0 192.168.0.1 netmask 255.255.255.0 up
iwconfig wlan0 essid "XXXXXXXXX"
iwconfig wlan0 mode Ad-Hoc
iwconfig wlan0 rate auto
iwconfig wlan0 key "XXXX-XXXX-XX"

/etc/hotplug/usb/zd1211.off

#!/bin/bash
./etc/hotplug/hotplug.functions

ifconfig wlan0 down

chmod 755 して、実行権限つけておくのを忘れないように!

これが出来た時点で、リナザウiPod Touch を無線 LAN の Ad-Hoc モードで繋ぐことが可能になります。ただ、iPod Touch からインターネットに出て行くにはもうひとつ設定が必要です。

3. wlan0 と ppp0 を IP マスカレードで繋ぐ

この辺を参考にしました。
http://www.coder.jp/~zaurus/router.html
http://lucky.s53.xrea.com/work/index.php?zaurus%2Ftips%2F%A5%EB%A1%BC%A5%BF%B2%BD

だんだん書くのが面倒になってきたので、適当に説明します!
まず iptables が入ってないんで、入れる必要があります。リナザウ用のパッケージを配布していた有名なサイトがなんだかなくなってしまったみたいなので、今回はこちらからパッケージを貰いました。

http://www.iis.elec.fuk.kindai.ac.jp/~sira/index.php?%A4%AD%A4%DE%A4%B0%A4%EC%C6%FC%B5%AD%2F2005-02-11

パッケージインストール後、modprobe で見えなかったんで、一回 depmod -a しました。んで、

modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward 
modprobe ipt_MASQUERADE

としてモジュールをロード。
続いて iptables の設定、とりあえずすべてのインターフェースを ppp0 にマスカレードしました。

/usr/local/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
/usr/local/sbin/iptables-save > /etc/sysconfig/iptables

ほんとはブート時にこれを自動でやる設定とかもするんだけど、めんどくなったので割愛!

iPod Touch 側の設定

メニューの「設定 > Wi-Fi > ワイヤレスネットワークを選択」に先ほど設定した ESSID が見えてるはずなので、それを選んで設定した WEP キーを入力すると接続されます。

で、リナザウ側で DHCP などの設定はしてないので、> ボタンから詳細設定に入って、IP アドレスを「静的」にし、アドレスそのものは 192.168.0.2 のようにリナザウ側の無線 LAN に設定したのと同じセグメントになるよう適当に決めます。(※リナザウの wlan0 に設定したアドレスと全く同じにしてはいけませんよ!)
サブネットマスクは今回の例では 255.255.255.0、ルーターリナザウの wlan0 に設定してある IP アドレス (この例だと 192.168.0.1)。

で重要なのが DNS で、ここをちゃんと設定しないと iPod Touch のサファリや Google Map アプリが「インターネットに接続されてない」とかほざくので大事です。基本的には、リナザウ側の PPP 接続で指定している DNS と同じに設定します。

僕の場合 IIJmio では DNS は自動になってたんで、リナザウで nslookup www.google.com とかして出てきた DNS サーバの IP アドレスを指定しました。

これで iPod Touch 側の設定は完了、safari あたりを起動して適当にページを開いてみてください。どっとはらい

まとめ

気をつけるポイントをまとめるとこんな感じでしょうか。

  • リナザウに USB 機器挿して使うときは給電に気をつける。動作不安定ならセルフパワー対応の USB ハブかませば OK.
  • hotplug 用スクリプトに実行権限をつけるの忘れない
  • iPod Touch 側の Wi-Fi 設定で、IP アドレスを静的割り当てにしリナザウ側と同じセグメントにする
  • 同じく iPod Touch 側の DNS に、実際に使える DNS サーバの IP アドレスを設定する

以上、誰かのお役に立てればこれ幸いです。

しかしこんなにがんばってお金も使ったのに、どこでも iPod Touch でインターネット!と行かないのが非常にくやしいです。ほんと、バッテリ内蔵で AC 電源なくても給電可能な USB ハブってどっかで売ってないのかなー! あるいは、SC-C3100 でも使える SD WiFi カード……。