## Build Emulator
sudo apt update
sudo apt-get install libx11-dev # if no install, it will happen that edk2/EmulatorPkg/Unix/Host/X11GraphicsWindow.c:15:10: fatal error: X11/Xlib.h: No such file or directory
sudo apt-get install libxext-dev # if no install, it will happen that edk2/EmulatorPkg/Unix/Host/X11GraphicsWindow.c:18:10: fatal error: X11/extensions/XShm.h: No such file or directory
git clone https://github.com/tianocore/edk2/
cd edk2 && git submodule update --init
make -C BaseTools/
. edksetup.sh
build -p EmulatorPkg/EmulatorPkg.dsc -a X64 -t GCC5 -b DEBUG
## Run emulator
sudo apt install xvfb xautomation xdotool
cd Build/EmulatorX64/DEBUG_GCC5/X64/ && xvfb-run -a ./Host # xvfb-run for fixing GOP: cannot connect to X server
## Or
Xvfb :99 -screen 0 1024x768x24 &
export DISPLAY=:99
cd Build/EmulatorX64/DEBUG_GCC5/X64/ && ./Host &
xdotool type --delay 100 "hello" # Send command to active window rather than all windows
xdotool key --delay 100 Return