Giter Site home page Giter Site logo

utshina / haxm Goto Github PK

View Code? Open in Web Editor NEW

This project forked from intel/haxm

1.0 2.0 0.0 503 KB

Intel® Hardware Accelerated Execution Manager (Intel® HAXM)

License: BSD 3-Clause "New" or "Revised" License

C 84.70% Assembly 2.60% Objective-C 0.32% C++ 12.38% Makefile 0.01%

haxm's Introduction

Intel Hardware Accelerated Execution Manager (HAXM)

HAXM is a hardware-assisted virtualization engine (hypervisor) that uses Intel Virtualization Technology to speed up IA (x86/ x86_64) emulation on a host machine running Windows or macOS. It started as an Android SDK component, but has recently transformed itself into a general accelerator for QEMU.

HAXM can be built as either a kernel-mode driver for Windows or a kernel extension for macOS.

Building for Windows

Prerequisites

Option A (Visual Studio)

Note that the version/build number of Windows SDK must match that of WDK. In particular, the Windows 10 SDK installed by Visual Studio 2017 (version 1709, build 10.0.16299 as of this writing) may not be the latest version. If you want to use the latest WDK (version 1803 as of this writing), you may need to download and install the latest Windows 10 SDK (version 1803, build 10.0.17134 as of this writing).

Option B (EWDK)

  • Enterprise WDK (EWDK) 10 with Visual Studio Build Tools 15.6
    • Install the downloaded ISO image by mounting it or extracting it to an empty folder.
  • NuGet CLI tool (nuget.exe) version 4.x or later

Build steps

Option A (Visual Studio)

  1. Open HaxmDriver.sln in Visual Studio 2017.
  2. Select either Debug or Release configuration.
    • The Debug configuration also signs the driver with a test certificate. The Release configuration does not do that.
  3. Select either x64 or Win32 platform.
  4. Build solution.

Option B (EWDK)

  1. cd X:\path\to\EWDK\
  2. LaunchBuildEnv.cmd
  3. cd X:\path\to\haxm\
  4. X:\path\to\nuget.exe restore
  5. msbuild HaxmDriver.sln /p:Configuration="Debug" /p:Platform="x64"
    • Use Release instead of Debug to build an optimized driver that is suitable for release. Note that the Release configuration does not sign the driver with a test certificate.
    • Use Win32 instead of x64 to build a 32-bit driver that works on 32-bit Windows.
    • Add /t:rebuild for a clean rebuild instead of an incremental build.

If successful, the driver binary (IntelHaxm.sys) will be generated in X:\path\to\haxm\obj\out\win7\x64\ (or X:\path\to\haxm\obj\out\win7\x86\ if Platform="Win32"), and will be able to run on Windows 7 and later.

Building for macOS

Prerequisites

  • Xcode 7.2.1 or later
  • OS X 10.10 SDK (archived here)
  • NASM 2.11 or later
    • Install to /usr/local/bin/ using Homebrew: brew install nasm
    • Note that Apple NASM (/usr/bin/nasm) cannot be used.

Build steps

  1. cd /path/to/haxm/
  2. cd darwin/hax_driver/com_intel_hax/
  3. xcodebuild -configuration Debug
    • Use -sdk to override the default macOS SDK version (10.10), e.g. -sdk macosx10.12.
    • Use Release instead of Debug to build an optimized KEXT that is suitable for release.

If successful, the kext (intelhaxm.kext/) will be generated in /path/to/haxm/darwin/hax_driver/com_intel_hax/build/Debug/.

Reporting an Issue

You are welcome to file a GitHub issue if you discover a general HAXM bug or have a feature request.

However, please do not use the GitHub issue tracker to report security vulnerabilities. If you have information about a security issue or vulnerability with HAXM, please send an email to [email protected], and use the PGP key located at https://www.intel.com/security to encrypt any sensitive information.

haxm's People

Contributors

raphaelning avatar wcwang avatar alexaltea avatar junxiaoc avatar sevenqc avatar taogle2018 avatar martinlindhe avatar stweil avatar yuleiwang avatar

Stargazers

 avatar

Watchers

James Cloos avatar Takahiro Shinagawa avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.