2008年03月31日

Androidに任意のIPを割り当てる方法

前々回、途中までしかやらなかった「qemuのtun/tapのブリッジ使用する」の補足です。


こちらこちら を、参考としました。基本的には、これらを参考してもらえれば、問題ありません。下記は、その補足事項となります。


■インストール対象

・CentOS4.6
 - CentOS4.6を、「全てのパッケージ」のインストールとする
・android-sdk_m5-rc15_linux-x86
・dhcp環境は整っているものとする



■準備
・tunctl
tunctlが、入っていませんので、自分でインストールします。こちらより、「Makefile」と「tunctl.c」を入手して、makeしてください。



■設定
前提:こちらをベースとして、話を進めます。

1,「Step2」まで、作業をします。
  実際には、「Step1」の作業のみで、あとは、確認作業です。そのままやれば、トラブルは起きないかと思います。

2,「Step5」まで、作業をします。
  「Step4」が、メインの作業です。
  「Step2」で、閲覧したファイルの編集と言うことになります。
  書き換えが必要な箇所は、下記のifconfigをしているところで、ここのIPを使用したいIPに変更します。あとは、そのまま利用してください。

ifconfig eth1 192.168.1.2 netmask 255.255.255.0 up
route add default gw 192.168.1.1 dev eth1

3,「Step6」の作業をします。
  Codeの2行目、「$USER」は、任意のものに置き換えてください。
  さらに、一番最後のコマンドが、そのままではエラーとなります。下記のように、置き換えてください。

誤:sudo dhclient3 br0
正:sudo dhclient br0

4,「Step7」の作業をします。
  emulatorを起動するところですが、このままでは、pingには応答するけど、実際にはうまくAndroid内のIPにbind出来ていないようです。
  下記のように起動オプションを指定するとうまくいくようです。

${android_sdk}/tools/emulator -console -qemu -net user -net nic -net nic,vlan=1 -net nic -net tap,vlan=1,ifname=net_android

以上で、「2」で設定したIPアドレスに、ホストOS側のネットワークからアクセス可能となります。
これで、ぜひ、ServerSocketなどを利用したアプリケーションを開発してみてください。

Creative Commons License
This weblog is licensed under a Creative Commons License.