EDK2 compatible package to support gui based UEFI application development. This project is a work in progress and must only be used for testing.
- install all required packages for your environment (Getting started with EDK2), including llvm and clang
sudo apt install build-essential uuid-dev iasl git nasm python-is-python3 llvm clang lld
- create a new folder and set the WORKSPACE environment variable
mkdir edk2-workspace
cd edk2-workspace
export WORKSPACE=$PWD
- clone edk2 and initialize it
git clone https://github.com/tianocore/edk2 edk2
cd edk2
git checkout edk2-stable202411
git submodule update --init
make -C ./BaseTools
cd $WORKSPACE
- clone GuiPkg and initialize it
mkdir edk2-packages
git clone https://github.com/MiSimon/edk2-guipkg edk2-packages/GuiPkg
cd edk2-packages/GuiPkg
git submodule update --init
cd $WORKSPACE
- finish the edk2 workspace setup
export PACKAGES_PATH=$WORKSPACE/edk2:$WORKSPACE/edk2-packages
source $WORKSPACE/edk2/edksetup.sh
- build the package
build -a X64 -t CLANGDWARF -b RELEASE -p GuiPkg/GuiPkg.dsc
- run the demo application in qemu (requires qemu and ovmf)
qemu-system-x86_64 -bios /usr/share/qemu/OVMF.fd -nodefaults -display gtk -vga std -drive format=raw,file=fat:rw:$WORKSPACE/Build/Gui/RELEASE_CLANGDWARF/X64/
efi shell> fs0:
efi shell> LvglDemo.efi
- replace
#ifdef LV_USE_QRCODE
with#if LV_USE_QRCODE
in Library/LvglLib/lvgl/src/libs/qrcode/qrcodegen.h - QEMU does not support the SIMPLE/ABSOLUTE_POINTER_PROTOCOLs