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:lollipop-x86-on-qemu

Screenshoot marshmallow-x86:marshmallow-x86-on-qemu


  • 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上启动之后鼠标键盘无响应(这个问题还没有去查);其余版本均可正常操作;


原文地址:https://www.cnblogs.com/ztguang/p/12646412.html