导言:
Anbox是一个Android模拟器,可以从linux系统运行Android应用程序或游戏。对于Anbox的安装已经有了各种教程,主要针对ubuntu18.04之前的版本。最近在做一个关于虚拟机中跑安卓的项目,因此在虚拟机中使用ubuntu18.04系统,然后按照指导搭建Anbox模拟器。但是很遗憾Anbox未能成功的跑起来。
一、为什么Anbox启动失败呢?
在ubuntu18.04使用cirrus显卡时可以正常启动。按照网上的知道anbox也能正常的安装,但是在启动anbox Application Manager的时候失败了。启动的窗口一闪而过。查看anbox的启动日志,发现中有大量的报错。
如:
SurfaceFlinger: hwcomposer module not found - Abort message: no suitable EGLConfig found, giving up
由于EGLConfig是用来提供显示相关服务的所以猜测更显卡有关。由于之前解决过Android-x86在kvm启动时的花屏问题,所以猜测需要将网卡替换成VGA。
不幸的是ubuntu18.04在使用VGA显卡后居然不能正常进入图形界面。这一块应该是内核驱动问题。这个要是更改需要自己去替换内核,恰好手上也有19.10的系统,就试试在ubuntu19.10上开始搭建Anbox。
二、在kvm上启动ubuntu19.10
现在进入正题。首先需要下载ubuntu19.10的镜像。使用国内163的源下载速度飞快。
http://mirrors.163.com/ubuntu-releases/19.10/ubuntu-19.10-desktop-amd64.iso
本人是在centos7上使用libvirt启动虚拟机的。对于虚拟机的操作不再赘述。启动kvm虚拟机进行操作系统安装即可。这里将虚拟机的启动xml分享
'kvm'><name>anboxname>'KiB'>4194304</memory>4194304currentMemory><vcpu placement='static'>4vcpu><partition>/machinepartition>
</resource>hvmtype>destroyrestartdestroy
虚拟机xml很普通,但是为了规避之前遇到的Anbox启动不起来的问题,需要特别注意要使用VGA显卡来创建虚拟机。安装完成后,进入ubuntu这样准备工作已经完成了。
三、在ubuntu19.10中安装Anbox
对于安装Anbox本人参考
https://www.linuxidc.com/Linux/2020-01/162095.htm
由于ubuntu已经使用snap来管理软件的安装,其实Anbox的安装已经非常简单了。
直接输入命令
snap install --devmode --beta anbox
这样anbox就安装好了
按照参考文档接下来应该添加源,然后下载内核模块ashmem和binder。
可是源地址并没有编译ubuntu19.10要使用的模块。因此会报如下错误
既然如此,需要自己使用源码进行编译。在我编译源码时候意外的发现,其实Android 的内核模块已经进入主干了。
真是大大的惊喜,这样就不用再编译内核模块了,直接启动Anbox Application Manager。启动成功。
四、总结:
由于ubuntu19.10中已经对Android 的内核模块进行了支持。所以以后的Anbox安装变的十分方便。只需要执行如下命令就可以了。
snap install --devmode --beta anbox
当然如果想在虚拟机里面使用anbox,还是需要注意对虚拟显卡的配置,使用VGA显卡。
作者简介
肖丁,烽火云计算高级虚拟化设计师,多年从事云计算产品的架构设计、软件开发与技术方案编制等工作。长期专注于内核、虚拟化、云计算、容器、分布式等方向的研究,尤其对KVM和XEN虚拟化等产品有较深研究。
相关阅读:
万字长文:Kubernetes operator 模式开发实践
万字长文:Service Mesh · Istio · 以实践入门
万字长文:Docker容器安全性分析
2019 Kubernetes 六大趋势预测
神话还是现实?Docker和Kubernetes的完美架构
Docker、Kubernetes和Cloud Native Databases的崛起
万字长文:聊聊几种主流Docker网络的实现原理
万字长文:编写Dockerfiles最佳实践
万字长文:ELK(V7)部署与架构分析
吐血总结:最为详细的Docker入门指南
有坑!传统企业别上微服务了。。。
RightScale 2019年云状况调查报告:35% 的云支出被浪费「附50页PDF下载」
更多文章请关注
文章好看点这里[在看]?