|
1: 2011-07-18 (月) 03:43:39 yuji |
| + | *インフラストラクチャーでテザリング [#k1423e54] |
| + | **とりあえず頑張る [#q5384649] |
| + | HT-03Aでも使っていたwifi tetherを使えば,アドホックモードでテザリング出来る。~ |
| + | アップデート前のGingerbread 2.3.3の時は,Androidマーケットから「Mobile AP Shortcut」をインストールしたら,インフラストラクチャーでの接続が問題無くできたんだけど,アップデートされた2.3.3だとPCからうまく接続出来ない。 |
| + | # netcfg |
| + | として調べてみると,以下の理由でPCと接続出来ていなかった。 |
| + | -SC-02Bの無線LANのIPアドレスがちゃんと割り当てられていない |
| + | -dhcpdが動いていなくて,PCにIPアドレスを渡せない |
| + | -ルーティングされていないのと,NATが動作していない |
| | | |
| + | 手動でこれらを動くようにしたら,無事インフラストラクチャーでもテザリングできるようになった。 |
| + | |
| + | ***ファイルの準備 [#x9a685e7] |
| + | テザリング開始用のスクリプト (/sd-ext/etc/tether/tether_start)を作成 |
| + | #!/system/bin/sh |
| + | ifconfig eth0 0.0.0.0 |
| + | ifconfig wl0.1 192.168.1.1 netmask 255.255.255.0 |
| + | iptables -t nat -A POSTROUTING -o pdp0 -j MASQUERADE |
| + | iptables -A FORWARD -i wl0.1 -j ACCEPT |
| + | sysctl -w net.ipv4.ip_forward=1 |
| + | dnsmasq -i wl0.1 --resolv-file=/sd-ext/etc/tether/conf/resolv.conf --conf-file=/sd-ext/etc/tether/conf/dnsmasq.conf |
| + | |
| + | テザリング終了用スクリプト(/sd-ext/etc/tether/tether_stop)を作成 |
| + | #!/system/bin/sh |
| + | killall dnsmasq |
| + | sysctl -w net.ipv4.ip_forward=0 |
| + | iptables -t nat -F POSTROUTING |
| + | ifconfig wl0.1 0.0.0.0 |
| + | |
| + | /sd-ext/etc/tether/conf/dnsmasq.confを作成 |
| + | server=220.159.212.200 |
| + | server=220.159.212.201 |
| + | dhcp-authoritative |
| + | dhcp-range=192.168.1.100,192.168.1.105,12h |
| + | dhcp-leasefile=/sd-ext/etc/tether/var/dnsmasq.leases |
| + | pid-file=/sd-ext/etc/tether/var/dnsmasq.pid |
| + | user=root |
| + | no-negcache |
| + | |
| + | /sd-ext/etc/tether/conf/resolv.conf作成。(moperaのdnsにした) |
| + | nameserver 220.159.212.200 |
| + | nameserver 220.159.212.201 |
| + | |
| + | これらのファイルを用意した。 |
| + | |
| + | ***Mobile AP Sortcutの実行 [#q7d027e3] |
| + | AndroidマーケットからインストールしたMobile AP Sortcutを実行して,テザリングを実行する。~ |
| + | これだけだと,PCから接続出来ない。 |
| + | -テザリングのスタート~ |
| + | ターミナルから, |
| + | # /sd-ext/etc/tether/tether_start |
| + | としてスクリプトを動かす。この後,PCとの接続がうまくできた。 |
| + | -テザリングの終了~ |
| + | # /sd-ext/etc/tether/tether_stop |
| + | して,Mobile AP Shortcutを終了して,テザリング終了 |
| + | |
| + | しかし,これじゃめんどくさいなぁ。自動で実行出来ないと・・・ |
| + | |
| + | **設定からtethering起動出来るように変更 [#tbce4acd] |
| + | framework-res.apkとSettings.apkを変更すれば,設定から変更できるように出来た。 |
| + | |
| + | framework-res.apkをapktoolで分解して,res/values/arrays.xmlファイルの, |
| + | <string-array name="config_tether_wifi_regexs"> |
| + | <item>wl0.1</item> |
| + | </string-array> |
| + | のように,config_tether_wifi_regexsを内容を変更する。 |
| + | 同様に,Settings.apkをapktoolで分解して,res/xml/wireless_settings.xmlファイルに, |
| + | <PreferenceScreen android:title="@string/mobileap" android:key="mobileap_settings" android:summary="@string/mobileap_settings_summary"> |
| + | <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.wifi.WifiApSettings" /> |
| + | </PreferenceScreen> |
| + | <PreferenceScreen android:title="@string/mobileap" android:key="mobileap_settings2" android:summary="@string/mobileap_settings_summary"> |
| + | <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.wifi.WifiApSettings" /> |
| + | </PreferenceScreen> |
| + | の内容を,追加・変更する。 |
| + | |
| + | 変更したらapktoolで再構成してapkを作りなおして,SC-02Bのものと入れ替える。 |
| + | [[tether対応したkernel>../kernelのコンパイル]]((USB接続でのtetheringも出来た))で,Mobile AP Sortcut無しでインフラストラクチャーで設定からtetheringの起動ができるようになった :) |