GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - microsoft/HvLoader: HvLoader.efi is an EFI application for loading an external hypervisor loader

This repository was archived by the owner on Jun 11, 2026. It is now read-only.
BranchesTags
Open more actions menu

Latest commit

 

History

19 Commits
19 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
HvEfi.h
HvEfi.h
 
 
HvLoader.c
HvLoader.c
 
 
HvLoader.inf
HvLoader.inf
 
 
HvLoader.uni
HvLoader.uni
 
 
HvLoaderEfi.h
HvLoaderEfi.h
 
 
HvLoaderExtra.uni
HvLoaderExtra.uni
 
 
HvLoaderP.h
HvLoaderP.h
 
 
HvLoaderStr.uni
HvLoaderStr.uni
 
 
HvLoaderTest.c
HvLoaderTest.c
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
SECURITY.md
SECURITY.md
 
 

Repository files navigation

HvLoader Overview

HvLoader.efi is an EFI application for loading an external hypervisor loader.

HvLoader.efi loads a given hypervisor loader binary (DLL, EFI, etc.), and calls it's entry point passing HvLoader.efi ImageHandle. This way the hypervisor loader binary has access to HvLoader.efi's command line options, and use those as configuration parameters. The first HvLoader.efi command line option is the path to hypervisor loader binary.

Currently HvLoader.efi resides in the efi partition, i.e. /boot/efi, and has access to that partition only. Thus, any path arguments need to be relative to /boot/efi partition. This restriction may be relaxed in future updates.

A typical HvLoader.efi grub command may look like the following:

chainloader /HvLoader.efi \lxhvloader.dll MSHV_ROOT=\Windows MSHV_ENABLE=1 MSHV_SCHEDULER_TYPE=0 ...

Setting up the build environment

HvLoader.efi is built in TianoCore EDK2. The build environment was initially tested on a Ubuntu 22.04.1 LTS, but can be set up on Microsoft Windows, macOS, and Unix.
For more information, please refer to Getting Started with EDK2.

On Linux, please follow the instructions at Using EDK2 with Native GCC, and finally clone the repo and build according to Common EDK II Build Instructions for Linux.

Building HvLoader.efi

HvLoader.efi lives as an application in MdeModulePkg, i.e. /MdeModulePkg/Application/HvLoader.

After a successful build of EDK2, you can build HvLoader.efi following the steps below,
running from the root location of edk2:

  1. pushd MdeModulePkg/Application

  2. git clone https://github.com/asherkariv/HvLoader.git

  3. popd

  4. Add HvLoader to MdeModulePkg:

    • Edit MdeModulePkg/MdeModulePkg.dsc
    • Add MdeModulePkg/Application/HvLoader/HvLoader.inf in the [Components] section, for example:
      [Components]
      MdeModulePkg/Application/HelloWorld/HelloWorld.inf MdeModulePkg/Application/HvLoader/HvLoader.inf MdeModulePkg/Application/DumpDynPcd/DumpDynPcd.inf MdeModulePkg/Application/MemoryProfileInfo/MemoryProfileInfo.inf ...
  5. Build HvLoder.efi:
    build -p MdeModulePkg/MdeModulePkg.dsc -m MdeModulePkg/Application/HvLoader/HvLoader.inf

  6. Based on your target configuration (DEBUG/RELEASE), HvLoader.efi is produced at Build/MdeModule/DEBUG_GCC5/X64/HvLoader.efi
    or
    Build/MdeModule/RELEASE_GCC5/X64/HvLoader.efi

Signing HvLoader.efi

HvLoader.efi needs to be signed for secure boot.

About

HvLoader.efi is an EFI application for loading an external hypervisor loader

Resources

Readme
MIT license

Code of conduct

Code of conduct

Security policy

Security policy
Activity
Custom properties

Stars

71 stars

Watchers

5 watching

Forks

9 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.