通过Android Studio启动模拟器,弹出启动错对话框如下:


提示的意思即:通过内核调用接口ioctl()让Linux的内核虚拟机KVM创建一个新的虚拟机,但是KVM设备当前被占用,处于忙碌状态。


KVM知多少

        KVM是Kenel Virtual Machine的所写,直译为内核虚拟机。KVM是Linux系统在X86体系架构上的基于内核的虚拟机,是一个完全虚拟化的解决--方案,包含Intel VT or AMD-V两种虚拟化扩展。KVM在Linux系统中由内核模块kvm.ko以及CPU相关模块kvm-intel.ko or kvm-amd.ko组成。

        KVM支持多个虚拟机同时运行,每个虚拟机上运行Linux或Windows系统。每个虚拟机都有自己私有的虚拟的硬件:网卡、磁盘以及显卡等

        KVM上支持VirtualBox,VMware,QEMU,XEN等应用于本机或者云的虚拟机运行


问题分析和探索

        我在Ubuntu14.04下打开VirtualBox虚拟机,并运行Win7系统。应该是KVM内核模块当前的启动模式无法支持VirtualBox运行Win7和QEMU运行Android模拟器同时运行所致。猜想是先运行的VirtualBox中的Win7系统将KVM内核模块锁住所致。

        于是,我将Win7关闭,但保持VirtualBox打开,Android模拟器可以正常运行。然后,点击打开Win7,VirtualBox直接给出错误提示如下图所示,图中第一行直接直接说明:VT-x被另一个虚拟机管理程序占用。这点比google强,出了问题不直接说,只是提示个状态忙,遮遮掩掩,有思思吗!

        网上有人给出过两者可以同时运行的解决方案,有兴趣的朋友自己去验证,我不需要两者同时运行,直接将Win7关闭







Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐