tree: 7b4b5a3aab1273ef14267033756ad0f4d3c31670 [path history] [tgz]
  1. Application/
  2. AutoScanPei/
  3. BootModePei/
  4. CpuRuntimeDxe/
  5. EmuBlockIoDxe/
  6. EmuBusDriverDxe/
  7. EmuGopDxe/
  8. EmuSimpleFileSystemDxe/
  9. EmuSnpDxe/
  10. EmuThunkDxe/
  11. FirmwareVolumePei/
  12. FlashMapPei/
  13. FvbServicesRuntimeDxe/
  14. Include/
  15. Library/
  16. PlatformCI/
  17. PlatformSmbiosDxe/
  18. RealTimeClockRuntimeDxe/
  19. ResetRuntimeDxe/
  20. Sec/
  21. ThunkPpiToProtocolPei/
  22. TimerDxe/
  23. Unix/
  24. Win/
  25. build.sh
  26. EmulatorPkg.ci.yaml
  27. EmulatorPkg.dec
  28. EmulatorPkg.dsc
  29. EmulatorPkg.fdf
  30. Readme.md
EmulatorPkg/Readme.md

Overview

EmulatorPkg provides an environment where a UEFI environment can be emulated under an environment where a full UEFI compatible environment is not possible. (For example, running under an OS where an OS process hosts the UEFI emulation environment.)

https://github.com/tianocore/tianocore.github.io/wiki/EmulatorPkg

Status

  • Builds and runs under
    • a posix-like environment with X windows
      • Linux
      • OS X
    • Windows environment
      • Win10 (verified)
      • Win8 (not verified)

How to Build & Run

You can use the following command to build.

  • 32bit emulator in Windows:

    build -p EmulatorPkg\EmulatorPkg.dsc -t VS2017 -a IA32

  • 64bit emulator in Windows:

    build -p EmulatorPkg\EmulatorPkg.dsc -t VS2017 -a X64

  • 32bit emulator in Linux:

    build -p EmulatorPkg\EmulatorPkg.dsc -t GCC5 -a IA32

  • 64bit emulator in Linux:

    build -p EmulatorPkg\EmulatorPkg.dsc -t GCC5 -a X64

You can start/run the emulator using the following command:

  • 32bit emulator in Windows:

    cd Build\EmulatorIA32\DEBUG_VS2017\IA32\ && WinHost.exe

  • 64bit emulator in Windows:

    cd Build\EmulatorX64\DEBUG_VS2017\X64\ && WinHost.exe

  • 32bit emulator in Linux:

    cd Build/EmulatorIA32/DEBUG_GCC5/IA32/ && ./Host

  • 64bit emulator in Linux:

    cd Build/EmulatorX64/DEBUG_GCC5/X64/ && ./Host

On posix-like environment with the bash shell you can use EmulatorPkg/build.sh to simplify building and running emulator.

For example, to build + run:

$ EmulatorPkg/build.sh $ EmulatorPkg/build.sh run

The build architecture will match your host machine's architecture.

On X64 host machines, you can build + run IA32 mode as well:

$ EmulatorPkg/build.sh -a IA32 $ EmulatorPkg/build.sh -a IA32 run