KVMでAndroid インターネット接続の覚書

31 12 2012

KVMはAndroidも入ります。

ただインターネット接続が針に糸を通すくらいとても難解で厄介で、
今回それが解決しましたので、メモです。

Google検索も「android-x86 kvm ethernet」のサジェストが。みなさんひっかかっている模様。

まず使用したAndroidはこれ

http://mariuz.android-dev.ro/

の、vm.iso.7zです。これを解凍して仮想マシンへ。

するとインストールもLiveCD起動もできるのですが、設定からイーサを有効にしようともエラー、強制終了でできません。

ぐぐってみると、ここ

https://groups.google.com/forum/?fromgroups=#!topic/android-x86/HdIiBa01pLo

に、eth0が自動で起動しないとかなんとか、Alt+カーソル右のコンソールから立ち上げてあげる必要があるとかないとか

やってみるもエラー。

どうやらeth0が存在しないらしいです。netcfgコマンド(Androidではifconfigで見れない)でNICの確認ができます。

eth0を出す方法を探すべくさらに検索してみると、ここ

http://www.android-x86.org/documents/nfs-how-to

にこのlibvirt XMLで成功したとかなんとか。

やってみるもeth0が出てこない。

ただ私は普段利用するのにmodelを指定していなかったため、これがネックになっているとみてさらに捜索、

すると、ここ

http://libvirt.org/formatdomain.html#elementsNICS

によると、使用可能なNICは

qemu-kvm -net nic,model=? /dev/null

で得られるらしいです。

qemu-kvmは私はlibvirtのものでなく、別途用意してあるので、

#qemu-system-x86_64-1.2.0 -net nic,model=? /dev/null

//出力:  ne2k_pci,i82551,i82557b,i82559er,rtl8139,e1000,pcnet,virtio

これを一個一個いれて試しました。

その結果、e1000でAndroidが認識(!)

eth0が出現しました。

a

この後はコンソールでどうこうでなく、通常の設定からイーサをONにするだけでインターネットへの接続ができます。

記述したXMLは以下です。

<interface type=’bridge’>
<mac address=’52:54:00:12:34:92’/>
<source bridge=’br0’/>
<model type=’e1000’/>
<address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x03′ function=’0x0’/>
</interface>

 

2