[Android][Ades][WILLCOM] T-Mobile G1/ADP1でAdesのWiFiSnapにAdhoc接続する

送信者 mobile54's blog


今年の2月から使い始めたb-mobile 3Gの接続時間も、気がつけばもう4時間強しか残っておりません。まあ、このまま最後まで使いきろうと思っていたのですが、その矢先、Androidのバージョンを1.6にあげるとb-mobile 3G/WILLCOM CORE 3Gなどが繋がらなくなる(まだ未確定ですが)という現象に遭遇してしまいました。

これと時期を同じくして、標準では使えないと言われていたAndroidのAdhoc接続がどうも設定の変更でできてしまうらしいという報告がWeb上でちらほら出始めました。

G1/ADP1でAdhocができるということは、Adesに新つなぎ放題W-SIMを挿してWiFiSnapを起動して、そこにWiFiで繋げてしまうということではないですか!

そうすれば、速度は遅いとはいえ、月額980円+αの新つなぎ放題の活用シーンがかなり広がってきます。

そんなわけで、ここしばらく、ずっと試していたのですが、どうもなかなかうまく行かず、一時はあきらめてdocomoのデータプランでも契約するか?というところまで来ていました(もしこの連休中に成功しなかったら、ホントに契約しに行ってたかもしれない)。が、試行錯誤の末に、なんとか接続に成功しましたので、方法について以下にご紹介します。

※ 動作確認は、T-Mobile G1のほうは、CyanogenMod 4.1.999(Android 1.6ベース)で確認しています。ADP1のほうは、正規のADP1版Donut(Android 1.6、非rootファーム)で確認しています。Android 1.5以前のバージョンでできるかはわかりませんが、多分大丈夫かと思います。


(1) Ades(WiFiSnap)側の設定

特に変なことをする必要はないのですが、いくつか条件があります。

・データ暗号化(WEP)は設定しない(データ暗号化は「無し」にする)
・DHCPサーバは有効にしておく(初期設定のままでよい)

(2) G1/ADP1側の設定

いくつかステップがあります。ここでは、PCでUSB接続して操作する方法で説明しますので、PC側にAndroid用のドライバ及びAndroid SDKが入っていることが前提となります。rooted phoneの方は、G1/ADP1上でテキストエディタとターミナルだけで完結させることも可能です。

a) G1/ADP1から設定ファイルを吸い出す(転送)

PC側で、

adb pull /system/etc/wifi/tiwlan.ini .
adb pull /system/etc/wifi/wpa_supplicant.conf .

を実行し、設定ファイルをPC側に転送します。

b) 設定ファイルを編集

下記の例のようにそれぞれを書き換え、追加します。
tiwlan.iniは、一部変更、一部追加です。

〜〜〜〜〜tiwlan.ini〜〜〜〜〜
WiFiAdhoc = 1        # 0→1に書き換える(Adhocモード有効)
dot11DesiredSSID = WiFiSnap # 追加する(※1)
dot11DesiredBSSType = 0   # 追加する
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

※1 「WiFiSnap」の部分はWiFiSnap側のSSIDです。デフォルトでは、「WiFiSnap」となっていると思いますので、変更していない方は上記のまま、変更している方は変更したSSIDを記載してください。

wpa_supplicant.confは、下記をファイル末尾に追記してください。

〜〜〜wpa_supplicant.conf〜〜〜
network={
ssid="WiFiSnap"   # tiwlan.iniに記載したSSIDと同じにする
mode=1        # Adhocモードを指定
}
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

c) 設定ファイルを、G1/ADP1側に転送

書き換えた設定ファイルを、G1/ADP1側に転送します。ただし、/system以下はデフォルトでは読み取り専用なので、まずは/sdcard下に転送し、あとで書き込み可能にしてからコピーします。

PC側で、

adb push tiwlan.ini /sdcard
adb push wpa_supplicant.conf /sdcard

を実行し、設定ファイルをPC側に転送します。

d) 書き換えた設定ファイルを元の場所に上書き

/system以下を書き込み可能にして再マウントしたのちに、新しい設定ファイルをコピーします。元の設定ファイルは、念のためバックアップしておきます。

PC側で、

adb shell

を実行し、シェルが起動したら、以下のコマンドを順に実行します。

mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
cp /system/etc/wifi/tiwlan.ini /system/etc/wifi/tiwlan.ini.orig
cp /sdcard/tiwlan.ini /system/etc/wifi/
cp /system/etc/wifi/wpa_supplicant.conf /system/etc/wifi/wpa_supplicant.conf.orig
cp /sdcard/wpa_supplicant.conf /system/etc/wifi/
mount -o ro,remount -t yaffs2 /dev/block/mtdblock3 /system
exit

そのままリブートして構わなければ、最後のexitの代わりにrebootと入れればいいと思います。

また、非rootの端末の方は、上記の代わりに以下のようにすると良いと思います。

su
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
cat /system/etc/wifi/tiwlan.ini > /system/etc/wifi/tiwlan.ini.orig
cat /sdcard/tiwlan.ini > /system/etc/wifi/tiwlan.ini
cat /system/etc/wifi/wpa_supplicant.conf > /system/etc/wifi/wpa_supplicant.conf.orig
cat /sdcard/wpa_supplicant.conf > /system/etc/wifi/wpa_supplicant.conf
mount -o ro,remount -t yaffs2 /dev/block/mtdblock3 /system
exit

以上が完了したら、念のためリブートします(AndroidはベースがLinuxなので、WifiのON/OFFだけでいいのかもしれませんが)。


(3) 接続!

・まず、G1/ADP1側のWifiをOFFにしておきます。
・次に、Ades側でWiFiSnapを起動します。
・最後に、G1/ADP1側のWifiをONにします。

※ このとき、ネットワーク一覧に「WiFiSnap」が出てくれば、そのまま繋ぎにいくと思いますが、出てこなければ、一度、手動で「Add Wi-Fi network」から「WiFiSnap」というネットワークを作り(「セキュリティ」は無しでよい)、もう一度、WiFiをOFF→ONとしてみてください。

うまくできていれば、これでWiFiSnapに接続し、IPアドレスもWiFiSnapのDHCPから自動取得され、G1から各種インターネット接続ができるようになります。

と、ここまで書いたものの、あくまで自宅で実験しただけですので、これを外出時のモバイル環境で実践して使い物になるかどうかは、さらなるフィールドテストが必要になりそうです。

おそらくは、カバンに「Ades+外部バッテリー」を放り込んでWiFiSnapを起動しておく、という、いわゆる「PHS300」のような使い方になるだろうと思われます。AdesのWiFiSnapはPHSですから、「PHS300」よりPHSらしい、って感じになりそうですね。ってダジャレか・・・。

参考:私のWiFiSnapのライセンスはキャンペーンで無料で発行していただいたものです
[WILLCOM] WiFiSnapを使ってみました
http://mobile54sblog.blogspot.com/2009/07/willcom-wifisnap.html

コメント

  1. はじめまして、太沙です。

    私もAndroid(HT-03A+Dwang1.17)<->Ad Hoc(Ades+WiFiSnap)で通信ができないかと検討している際に、このブログを拝見させていただきました。
    結果、こちらの方法でなんとか「WiFiSnap」との接続に成功することができました。有難うございました。

    現在、自宅では宅内APを、外出先では「WiFiSnap」を使用したいと考えているのですが、接続先を切り替える度に手動でWiFiネットワークを設定しなければならない状態なのです。何か良い方法がないか検討中です。

    ◆宅内AP→「WiFiSnap」
     ①「Wi-Fiネットワーク」で宅内APを切断
     ②「Wi-Fiネットワークを追加」から「WiFiSnap」作成
     ③「WiFiSnap」の接続
    ◆「WiFiSnap」→宅内AP
     ①「Wi-Fiネットワーク」で「WiFiSnap」を切断
     ②宅内APの接続(暗号キーを再入力)

    wpa_supplicant.confの「network」に宅内APを登録したり、優先順位を変更したり、WiFi関連のアプリを試してみたりしているのですが、なかなか良い方法が・・・。
    進展がありましたら、またコメント記入させていただきます。

    また、ブログを拝見させていただきます。
    更新、頑張ってください。

    返信削除
  2. 太沙さん>

    コメントありがとうございます。

    私のところでは、ADP1+Donut(非rooted)で使っていますが、切り替えができています。

    ただ、会社の無線LANはダメだったりとか、癖があるかもしれません。

    無線をOFFにしてリセットし、再起動後に無線ONにしたりしたらどうでしょうか?

    返信削除

コメントを投稿