Android x86 On Qemu
https://github.com/HybridOS/Document/wiki/Android-x86-On-Qemu
ubuntu 14.04 搭建android-x86 qemu测试运行环境
首先在系统上安装qemu 以及qemu-img,这里不细说qemu的安装;
用qemu命令来创建虚拟机.
第一步 创建一个虚拟机的硬盘 vdisk
将来来存放虚拟操作系统的.这个虚拟硬盘是利用文件系统来进行模拟的.
qemu-img create -f qcow2 vdisk.img 10G
qcow2是一种硬盘的格式,比qcow更新;qcow2 is an updated version of the qcow format, intended to supersede it.
The main difference with the original is that qcow2 supports multiple
virtual machine snapshots through a new, flexible model for storing snapshots.
qcow支持数据大小动态的增加,而不是一开始就固定大小了,直接分配那么大的位置占空间。
第二步 安装iso并运行
qemu-system-x86_64 -enable-kvm -m 1024 -smp 2 -boot order=dc -hda /opt/vdisk.img -cdrom android_x86.iso
选项解释:
-enable-kvm
是使用kvm内核,不用qemu的内核,开启虚拟机加速;
-m 1024
是给客户机分配1024MB内存;
-smp 1
是给客户机分配1个CPU;
-boot order=dc
是指定系统的启动顺序为光驱(d: CD-ROM)、硬盘(c: hard Disk);
-hda
是分配给客户机的IDE硬盘(即前面准备的镜像文件);
-cdrom
是分配客户机的光驱。
默认情况下,QEMU会启动一个VNC server端口(如上面的::1:5900),可以用vncviwer工具来连接到QEMU的VNC端口查看客户机。出现如下信息:VNC server running on `127.0.0.1:5900'
这意味着,你的虚拟机已经开启了,并且,开通了一个端口给你,你可以利用5900端口去远程桌面连接.
接下来就是普通的安装操作系统了.在安装结束后,我们需要进行重启,可能就出现问题了.这是将原先的虚拟机ctrl+c强制结束了.然后再次运行虚拟机
第三步 运行刚刚安装的操作系统
qemu-system-x86_64 vdisk.img -m 1024 -enable-kvm
【note】If you’re on Fedora/RHEL/CentOS (and installed a kvm package and not built kvm yourself from source) then substitute qemu-kvm for qemu-system-x86_64
【NOTE】 我尝试了下面三个版本:Android-x86 ** kitkat-x86** 分支对应的 4.4版本,使用live模式和安装模式均能正常启动,启动起来之后进入qemu窗口后鼠标键盘无反应;
Android-x86 lollipop-x86 分支对应的6.0版本,可以正常启动并且可以进行简单的使用,没有进行深入的测试;
Android-x86 marshmallow-x86 分支对应的6.0版本,可以正常启动且可以进行简单的使用,没有进行深入的测试;
Screenshoot lollipop-x86:
Screenshoot marshmallow-x86::
- qemu配置网卡的两种方法:> 我之前进行过相关的测试,qemu这一块的网络连接的相关方法分享一下,配置起来稍微麻烦一点,需要创建虚拟网卡;如果在本地测试可以通端口映射的方式进行;方法如下:
方法一:创建虚拟网卡(注意本地机器上创建的虚拟网卡和qemu上的配置的地址网段的关系)
- 一、需要安装的工具软件:
apt-get install bridge-utils # 虚拟网桥工具
apt-get install uml-utilities # UML(User-mode linux)工具
- 二、配置虚拟网卡的命令:
sudo ifconfig tap0 down
sudo tunctl -d tap0
sudo tunctl -b -u $USER -t tap0
sudo ifconfig tap0 192.168.10.1 promisc up
- 三、qemu启动时需要添加相关参数,启动命令如下:
sudo qemu-system-x86_64 -enable-kvm -m 1024 -smp 2 -hda qemu-test/vdisk.img -cdrom android-x86.iso -net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=no,downscript=no
【note 起来之后在qemu中通过命令行设置ip地址】
- 然后在宿主机上使用adb connect x.x.x.x 连接qemu中的android系统进行相关的操作;
方法二、在启动qemu的时候直接进行端口映射:
sudo qemu-system-x86_64 -enable-kvm -m 1024 -smp 2 -hda ./vdisk.img -cdrom android_x86_64.iso -redir tcp:5555::5555
adb shell
当前三个版本的android-x86 4.4 、5.1.1、 6.0都可以正常使用qemu启动(测试环境 ubuntu 14.04), android-x86 4.4版本在qemu上启动之后鼠标键盘无响应(这个问题还没有去查);其余版本均可正常操作;