您的位置:首页 > 运维架构 > Linux

How to Start Intel Hardware-assisted Virtualization (hypervisor) on Linux to Speed-up Intel Android

2015-12-22 19:12 561 查看
没什么太难理解的部分,懒得翻译了,原文转载,避免哪天找不到。

找到这篇文章的初衷是在ubuntu 12.04上安装好android studio之后,模拟器总是启动不了,提示HAXM。

在此之前还进入到BIOS配置了一下,打开主板的虚拟功能。

原文地址十有八九不能直接访问,不过还是贴一下吧:
https://software.intel.com/blogs/2012/03/12/how-to-start-intel-hardware-assisted-virtualization-hypervisor-on-linux-to-speed-up-intel-android-x86-emulator
以下正文:

The Intel Hardware Accelerated Execution Manager (Intel® HAXM) is a hardware-assisted virtualization engine (hypervisor) that uses Intel Virtualization Technology (VT) to speed up Android app emulation on a host machine. In combination withAndroid
x86 emulator images provided by Intel and the official
Android SDK Manager, HAXM allows for faster Android emulation on Intel VT enabled systems. HAXM for both Windows and OS X are available now.

Since Google mainly supports Android build on Linux platform (with Ubuntu 64-bit OS as top Linux platform, and OS X as 2nd), and a lot of Android Developers are using AVD on Eclipse or Android Studio hosted by a Linux system, it is very critical that Android
developers take advantage of Intel hardware-assisted KVM virtualization for Linux just like HAXM for Windows and OS X.

Below are the quick step-by-step's on how to install, enable KVM  on Ubuntu host platform and start Intel Android x86 emulator with Intel hardware-assisted virtualization (hypervisor). The result is very pleasing and AVD runs significantly faster and smoother
than without hypervisor.

KVM Installation

I referred the instructions from Ubuntu community
documentation page. to get KVM installed.To see if your processor supports hardware virtualization, you can review the output from this command:

$ egrep -c '(vmx|svm)' /proc/cpuinfo

If the output is 0 it means that your CPU doesn't support hardware virtualization.

Next is to install CPU checker:

$ sudo apt-get install cpu-checker

Now you can check if your cpu supports kvm:

$sudo kvm-ok

and insert root password

If you see:

"INFO: Your CPU supports KVM extensions

KVM acceleration can be used"

It means you can  run your virtual machine faster with the KVM extensions.

If you see:

"INFO: KVM is disabled by your BIOS

HINT: Enter your BIOS setup and enable Virtualization Technology (VT),

and then hard poweroff/poweron your system

KVM acceleration can NOT be used"

You need to go to BIOS setup and enable the VT.

Use a 64 bit kernel

Running a 64bit kernel on the host operating system is recommended since Google no longer offers support for 32bit kernel..

This allows the serving of more than 2GB of RAM for your VMs.

Also, a 64-bit system can host both 32-bit and 64-bit guests. A 32-bit system can only host 32-bit guests.

To see if your processor is 64-bit, you can run this command:

$ egrep -c ' lm ' /proc/cpuinfo

If 0 is printed, it means that your CPU is not 64-bit.

If 1 or higher, it is. Note: lm stands for Long Mode which equates to a 64-bit CPU.

Now see if your running kernel is 64-bit, just issue the following command:

$ uname -m

x86_64 indicates a running 64-bit kernel. If you see i386, i486, i586 or i686, you're running a 32-bit kernel.

Install KVM

For Ubuntu Lucid (12.04 LTS Precise) or later:

$ sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils ia32-libs-multiarch

If it is displayed, you may ignore the Postfix Configuration below by selecting "No Configuration"





Next is to add your <username> account to the group kvm and
libvirtd


$ sudo adduser your_user_name kvm

$ sudo adduser your_user_name libvirtd

After the installation, you need to relogin so that your user account becomes an effective member of kvm and libvirtd user groups. The members of this group can run virtual machines.

Verify Installation

You can test if your install has been successful with the following command:

$ sudo virsh -c qemu:///system list

Your screen will paint the following below if successful:
Id Name                 State

----------------------------------

Install Java

Please referred to the instructions from Ubuntu community documentation pageto get Java installed. There are four implementations of Java. Oracle java 7 has
to be installed in order to run Android emulator x86 system Images.

Start the AVD from Android SDK Directly from Terminal

Documented information on how to install Android sdk or Android Sudio can be found on android developerswebsite.

After installing Android SDK a new virtual machine can be created using virtual device manager. Make sure that after installation OS system variable LD_LIBRARY_PATH point to <SDK directory>/tools/lib64

Type in a terminal:

$android avd



Android Virtual device manager is started. Click on the create button and fallow the wizard remembering the virtual machine name and selecting x86 system image in CPU/ABI section

Now start the Android for x86 Intel Emulator using  the following command:

$ <SDK directory>/tools/emulator64-x86 -avd Your_AVD_Name -qemu -m 2047 -enable-kvm

Only a 64-bits Ubuntu can allow you to run allocated Memory of 2G or more. My 64-bit Ubuntu has 6G of Memory, so I used 1/3 of it for Android AVD. My AVD name is Intel_Atom_x86_64. '-qemu' provides the options to qemu, and '-m' specifies the amount of memory
for the emulated Android (i.e. guest). If you use too small value for that, it's possible that performance is bad because of frequent swapping activities. Add '-show-kernel' to see the message from the kernel.





Start the AVD by AVD Manager in Android Studio

Below is the recommended procedure. If you are running the emulator from Android Emulator, run your Android application with an x86-based AVD and include the KVM options:

In Android Studio, click your Android project folder and then select
Run > Edit Configurations

Click the Emulator tab
Check Additional command line options and in the input field enter:
-qemu –m 2047 -enable-kvm

Run your Android project using this run configuration.
遇到的其他一些问题:

1.我的环境是ubuntu 12.04,装好后总是运行不了,提示failed to initialize KVM: Device or resource busy Back to tcg accelerator.

始终不得要领,某次重启后突然能用了,搜索了一下,知道了原因:

KVM和其他虚拟机软件冲突了,关掉一个就可以了。

由于工作环境的关系,常常同时开着vbox虚拟Windows环境,关掉vbox就可以正常启动虚拟机了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android studio haxm linux