audk/EmulatorPkg
Mikhail Krichanov 46050fc0fc SecurePE: Defined new PcdImageProtectionPolicy. 2024-07-22 13:49:00 +03:00
..
Application/RedfishPlatformConfig EmulatorPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
AutoScanPei EmulatorPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
BootModePei EmulatorPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
CpuRuntimeDxe EmulatorPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
EmuBlockIoDxe EmulatorPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
EmuBusDriverDxe EmulatorPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
EmuGopDxe EmulatorPkg: Update the comments of ReadKeyStroke and ReadKeyStrokeEx 2024-04-03 10:25:06 +08:00
EmuSimpleFileSystemDxe EmulatorPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
EmuSnpDxe EmulatorPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
EmuThunkDxe EmulatorPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
FirmwareVolumePei EmulatorPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
FlashMapPei EmulatorPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
FvbServicesRuntimeDxe EmulatorPkg: Format with Uncrustify 73.0.8 2023-11-27 20:14:59 +00:00
Include EmulatorPkg: Fix some image loader related issues 2024-07-22 13:47:18 +03:00
Library MdePkg/MemoryAllocationLib: Add Allocate(Aligned)CodePages 2024-07-22 13:47:18 +03:00
PlatformCI Build: Replaced GCC5 toolchain with GCC. 2024-07-22 13:49:00 +03:00
PlatformSmbiosDxe EmulatorPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
RealTimeClockRuntimeDxe EmulatorPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
ResetRuntimeDxe EmulatorPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
Sec SecurePE: Replaced old PE loader with Secure one. 2024-07-22 13:42:14 +03:00
ThunkPpiToProtocolPei EmulatorPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
TimerDxe EmulatorPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
Unix MdePkg/UefiImageLib: Introduce DebugAddress 2024-07-22 13:49:00 +03:00
Win MdePkg/UefiImageLib: Support multi-format and multi-source architecture 2024-07-22 13:49:00 +03:00
EmulatorPkg.ci.yaml EmulatorPkg: Remove unnecessary dependency on EmbeddedPkg 2022-12-08 10:44:20 +00:00
EmulatorPkg.dec EmulatorPkg: fix typo. PcdRedfishServie -> PcdRedfishService 2023-12-27 00:09:49 +00:00
EmulatorPkg.dsc SecurePE: Defined new PcdImageProtectionPolicy. 2024-07-22 13:49:00 +03:00
EmulatorPkg.fdf Remove hacks related to former lack of XCODE5 .hii support 2024-07-22 13:47:18 +03:00
Readme.md Build: Replaced GCC5 toolchain with GCC. 2024-07-22 13:49:00 +03:00
build.sh Build: Replaced GCC5 toolchain with GCC. 2024-07-22 13:49:00 +03:00

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 GCC -a IA32

  • 64bit emulator in Linux:

    build -p EmulatorPkg\EmulatorPkg.dsc -t GCC -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_GCC/IA32/ && ./Host

  • 64bit emulator in Linux:

    cd Build/EmulatorX64/DEBUG_GCC/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