audk/EmulatorPkg
Nate DeSimone ad1c0394b1 EmulatorPkg: Fix Terminal Issues
After running EmulatorPkg, one will notice that their terminal acts
strangely. This is caused by the EmulatorPkg Host changing the terminal
mode and not restoring the original mode, which is now fixed.

Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Andrew Fish <afish@apple.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Chasel Chiu <chasel.chiu@intel.com>
Signed-off-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
2023-09-27 01:00:47 +00: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/EmuGopDxe: Set ModeInfo after Open successfully 2022-03-03 05:17:46 +00: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: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
Include EmulatorPkg/PeiTimerLib: Bug fix in NanoSecondDelay 2023-02-09 02:04:37 +00:00
Library EmulatorPkg: Update code to be more C11 compliant by using __func__ 2023-04-10 14:19:57 +00:00
PlatformCI EmulatorPkg: CI: use ubuntu-22.04 vm_image (Linux only) 2023-01-17 19:06:32 +00: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 EmulatorPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00: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 EmulatorPkg: Fix Terminal Issues 2023-09-27 01:00:47 +00:00
Win EmulatorPkg: Fix Terminal Issues 2023-09-27 01:00:47 +00:00
EmulatorPkg.ci.yaml EmulatorPkg: Remove unnecessary dependency on EmbeddedPkg 2022-12-08 10:44:20 +00:00
EmulatorPkg.dec EmulatorPkg: Add persistent memory in EmuThunkPpi 2022-12-08 10:44:20 +00:00
EmulatorPkg.dsc MdeModulePkg: Duplicate BaseRngLibTimerLib to MdeModulePkg 2023-09-08 09:48:55 +00:00
EmulatorPkg.fdf EmulatorPkg: Redfish related changes on EmulatorPkg 2020-12-03 07:54:44 +00:00
Readme.md EmulatorPkg: strip trailing whitespace 2019-10-04 11:18:32 +01:00
build.sh EmulatorPkg: Fix XCODE5 lldb issues 2019-08-19 09:57:25 -07: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 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