Develop or modify UEFI firmware for a hardware platform using the standard EDK II build system.
Build and test a UEFI firmware image inside QEMU using OvmfPkg without needing physical hardware.
Add a custom UEFI driver or application module to an existing EDK II-based firmware project.
| tianocore/edk2 | rpisec/mbe | wszqkzqk/deepin-wine-ubuntu | |
|---|---|---|---|
| Stars | 5,986 | 5,970 | 5,970 |
| Language | C | C | C |
| Setup difficulty | hard | moderate | moderate |
| Complexity | 5/5 | 5/5 | 3/5 |
| Audience | developer | developer | general |
Figures from each repo's GitHub metadata at analysis time.
Requires specific toolchains (Visual Studio, GCC, or Clang), Python, and NASM, multi-component setup with git submodules.
EDK II is an open-source development environment for writing firmware that runs before an operating system loads. Firmware at this level handles the most fundamental tasks on a computer: initializing hardware components, running a pre-boot environment, and eventually handing control to an operating system. EDK II is built around the UEFI and PI specifications, which are industry standards maintained by uefi.org and adopted by most modern computers. The codebase is cross-platform and cross-architecture. It supports building firmware images that target processors in the x86-64, ARM, and AArch64 families. Building requires a toolchain, and the README lists multiple supported combinations: Visual Studio on Windows, GCC on Linux, and Clang-based options on both. Continuous integration builds run across all major toolchain and platform combinations, with build and test status tracked for each configuration. Beyond the core firmware modules, the repository includes platform packages for specific use cases. OvmfPkg provides a UEFI firmware image that runs inside QEMU virtual machines, which is useful for testing firmware behavior without needing physical hardware. ArmVirtPkg similarly targets ARM virtualization. EmulatorPkg lets you run an emulated UEFI environment on a host machine directly. The primary license is BSD-2-Clause Plus Patent License, though specific subdirectories carry additional licenses from upstream components such as OpenSSL, Google's Brotli, and Mbed TLS, which are pulled in as git submodules. The README lists each separately. This is an advanced project requiring deep knowledge of computer architecture, firmware standards, and specific build toolchains. It is developed primarily by hardware manufacturers, firmware engineers, and contributors to the UEFI ecosystem. The full README is longer than what was shown.
EDK II is an open-source UEFI firmware development environment used by hardware vendors to build the pre-OS software that initializes computers before the operating system loads.
Mainly C. The stack also includes C, Python, Assembly.
BSD-2-Clause Plus Patent License for most of the codebase, some subdirectories carry additional upstream licenses.
Setup difficulty is rated hard, with roughly 1day+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.