1: 2011-07-18 (月) 03:43:39 yuji ソース
Line 1: Line 1:
 +*インフラストラクチャーでテザリング [#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の起動ができるようになった :)


トップ   差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 704, today: 1, yesterday: 0