リナザウ (SL-C3100) を無線LANルータ化し iPod Touch でサファる
ついにねんがんの iPod Touch をてにいれたぞ!
そして折角の iPod Touch ですからインターネットに繋いで safari とか使わないともったいない!
さらに家では普通にブロードバンドルータにぶら下がった WiFi アクセスポイントで WiFi 接続するけど、できれば出先でも使いたい!
そんなわけで、世間では WindowsMobile 機に WMWiFiRouter でやるのが流行ってますが、僕が持っているのはリナザウなので、リナザウでがんばってみました。
繋がるまで結構苦労したので、ここにメモしておきます。
[用意するもの]
- iPod Touch
- リナザウ (SL-C3100)
- USB タイプの無線LAN アダプタ
- CF タイプの PHS カード
- セルフパワー給電 (AC電源繋いで給電) できる USB HUB
まず、リナザウ+PHS カードでダイヤルアップしてインターネットにアクセスできるところまではクリアしてるのを大前提とします。
ちなみに僕の場合は NEC の AX420N でプロバイダを IIJmio でつなげてます。
んで、要はこの ppp 接続のインターフェースと無線 LAN のインターフェースをIP マスカレードで繋いであげて、無線 LAN 側へのアクセスを全部 ppp 接続の方に流してあげればいいわけですね。
ダイヤルアップのためのカードは CF で、これで1つしかない CF スロットが埋まりますので、無線 LAN カードは今回使えません。
となると後は SDIO な SD WiFi カードか、USB 接続の WiFi アダプタしか選択肢がありません。基本的にリナザウは SDIO 対応してないんですが、グーグル様にいろいろお伺いを立てた結果、SD-Link11b という SD WiFi カードが昔発売されてて、こいつなら SL-C860 や SL-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 が入ってないんで、入れる必要があります。リナザウ用のパッケージを配布していた有名なサイトがなんだかなくなってしまったみたいなので、今回はこちらからパッケージを貰いました。
パッケージインストール後、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 カード……。