ホスト OS から KVM の DHCP サーバー機能が貸し出した IP アドレスを知る方法
# cat /var/lib/libvirt/dnsmasq/default.leases 1441701163 52:54:00:98:b7:d4 192.168.122.163 android-8421de533efe41db 01:52:54:00:98:b7:d4 1441702194 52:54:00:85:c1:b5 192.168.122.149 AndroidStudio * #
IP アドレスが 192.168.122.163 ということがわかります。
2-2. AndroidStudio を起動← 接続されました。
connect to 192.168.122.163:5555
2-3. アプリケーションの起動
2-4. Red Hat KVM Android 4.4.4 (API 19) を選択する
Build が開始されて…
デバイス選択に Android x86 を選択できるようになっています。
↑
Choose Device ● Choose a running device Device Serial Number State Compatible □ Red Hat KVM Android 4.4.4 (API 19) 192.168.122.163 Online Yes
特にエラーは無い模様2-5. 画面を Android x86 に切り替える
画面に Hellow world! の表示
実行できています。
NIC を追加3-2. 追加した NIC を活性化
・ソースデバイス: macvtap
・デバイスモデル: virtio
・Source mode: bridge
Source mode は VEPA でも良い。(KVM 間の通信は仮想ハブ間で行うため)
ネットワーク接続の画面を開いて、追加された NIC を編集する
手動接続が面倒なので、自動接続にしておく
ついでに、MAC アドレスを確認する (追加したときと同じはず)
同じネットワークに DHCP サーバーがあるので、ここでは DHCP を選択しています。
もちろん、固定 IP アドレスでも可。
DHCP にしたので、割り当てられた IP アドレスを確認。(この IP アドレスに VNC クライアントから接続する)
↑
$ ifconfig … eth1 Link encap:Ethernet HWaddr 52:54:00:53:63:8A inet addr:192.168.1.51 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::5054:ff:fe53:638a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:8529 errors:0 dropped:0 overruns:0 frame:0 TX packets:9380 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:682816 (666.8 KiB) TX bytes:2883787 (2.7 MiB) … $
リモート・デスクトップの設定画面を開く3-4. ファイアウォールの設定
チェックを入れる
リモート・デスクトップの設定 共有
■他のユーザが自分のデスクトップを表示できる(Y)
■他のユーザがデスクトップを操作できる(A)
ファイアウォールの設定を開く3-5. AndroidStudio (CentOS) を VNC クライアントから接続
VNC サーバーのポート (5900/tcp) を開ける
VNC クライアントからの接続
接続できました。
ちゃんと AndroidStudio も動作しています。
ダウンロードしたバイナリファイルは adb コマンドで Android x86 へ転送するため、adb コマンドが存在する端末で用意する
Dropbox に保存されています。
ダウンロードを試みると Dropbox からアカウント作成を催促されますが、アカウントを作成しなくてもダウンロードすることができます。
droidvnc_x86 をダウンロードした端末から adb コマンドで Android x86 へ接続4-3. Android x86 に外部接続用の NIC を設置
$ ~/Android/Sdk/platform-tools/adb connect 192.168.122.163
転送先ディレクトリーのパーミッションを確認 (変更前)
* daemon not running. starting it now on port 5037 * * daemon started successfully * connected to 192.168.122.163:5555
$ ~/Android/Sdk/platform-tools/adb shell 'su root ls -ld /system/bin'
転送先ディレクトリーのパーミッションを変更 (ユーザー 'shell' では書き込めない)
drwxr-xr-x root shell 2015-09-06 15:57 bin
$ ~/Android/Sdk/platform-tools/adb shell 'su root chmod 777 /system/bin'
$ ~/Android/Sdk/platform-tools/adb shell 'su root ls -ld /system/bin'
バイナリファイルを転送する
drwxrwxrwx root shell 2015-09-06 15:57 bin
$ ~/Android/Sdk/platform-tools/adb push ~/ダウンロード/droidvnc_x86 /system/bin/
転送先ディレクトリーのパーミッションを戻す
6041 KB/s (287431 bytes in 0.046s)
$ ~/Android/Sdk/platform-tools/adb shell 'su root chmod 755 /system/bin'
$ ~/Android/Sdk/platform-tools/adb shell 'su root ls -ld /system/bin'
drwxr-xr-x root shell 2015-09-09 16:29 bin
NIC を追加4-4. 追加した NIC を有効化
・ソースデバイス: macvtap
・デバイスモデル: virtio
・Source mode: VEPA
$ ~/Android/Sdk/platform-tools/adb shell4-5. Android x86 で VNC サーバーを起動
$ su
# netcfg
NIC 追加前eth1 を DHCP クライアントとして Link-UP させる
lo UP 127.0.0.1/8 0x00000049 00:00:00:00:00:00 eth0 UP 192.168.122.163/24 0x00001043 52:54:00:98:b7:d4 sit0 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00 ip6tnl0 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00
NIC 追加直後
lo UP 127.0.0.1/8 0x00000049 00:00:00:00:00:00 eth0 UP 192.168.122.163/24 0x00001043 52:54:00:98:b7:d4 eth1 DOWN 0.0.0.0/0 0x00001002 52:54:00:4a:77:d8 sit0 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00 ip6tnl0 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00
# netcfg eth1 dhcp
eth1 は 192.168.1.55/24 として Link-UP した# exit
lo UP 127.0.0.1/8 0x00000049 00:00:00:00:00:00 eth0 UP 192.168.122.163/24 0x00001043 52:54:00:98:b7:d4 eth1 UP 192.168.1.55/24 0x00001043 52:54:00:4a:77:d8 sit0 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00 ip6tnl0 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00
$ exit
droidvnc_x86 を起動4-6. Android x86 を VNC クライアントから接続
※通常ユーザーでも起動できますが、その時は見るだけ (操作できない) になります。
$ ~/Android/Sdk/platform-tools/adb shell
$ su
# /system/bin/droidvnc_x86 &
# ps | grep 3866
[1] 3866 Initializing framebuffer device... line_lenght=1600 xres=800, yres=600, xresv=800, yresv=600, xoffs=0, yoffs=0, bpp=16 colourmap_rgb=11:5:0 lenght=5:6:5Using Droid workaround Initializing virtual keyboard and touch device... cannot create virtual kbd device. Initializing VNC server: width: 800 height: 600 bpp: 16 port: 5901 Initializing server... 09/09/2015 20:35:09 Listening for VNC connections on TCP port 5901 09/09/2015 20:35:09 Listening for HTTP connections on TCP port 5801 09/09/2015 20:35:09 URL http://localhost:5801
#
root 3866 3854 5548 388 c10ec8b0 40082a20 S /system/bin/droidvnc_x86
VNC クライアントからの接続。ポートは 5901 を使用する。4-7. VNC サーバーの除去
AndroidStudio の動作結果も表示可能
※ VNC なので、音声の再現はできない
VNC サーバーの削除
起動画面 (GRUB) も表示されません。