https://github.com/3mdeb/edk2-docker
Docker container for building EDK2 UEFI Open Source reference implementation
https://github.com/3mdeb/edk2-docker
Last synced: 5 months ago
JSON representation
Docker container for building EDK2 UEFI Open Source reference implementation
- Host: GitHub
- URL: https://github.com/3mdeb/edk2-docker
- Owner: 3mdeb
- Created: 2018-02-14T00:55:54.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-10-30T11:46:24.000Z (over 1 year ago)
- Last Synced: 2024-10-30T12:31:52.648Z (over 1 year ago)
- Language: Dockerfile
- Size: 29.3 KB
- Stars: 16
- Watchers: 10
- Forks: 5
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
edk2-docker
===========
This container aim to provide portable and host independent compilation
environment for edk2 Open Source reference implementation of UEFI and PI
specifications.
Usage
-----
```
docker pull 3mdeb/edk2
```
Build
-----
```
git clone https://github.com/3mdeb/edk2-docker.git
cd edk2-docker
docker build -t 3mdeb/edk2:latest .
```
Building firmware for MinnowBoard Turbot
----------------------------------------
Note that `edk2-platforms` is actively developed and may require different
versions of binary objects in the future. Check [MinnowBoard Max/Turbot - UEFI Firmware](https://firmware.intel.com/projects/minnowboard-max)
for the latest version. Do not forget to change the directory name in `docker`
command accordingly.
```
$ docker pull 3mdeb/edk2
$ git clone https://github.com/tianocore/edk2.git -b vUDK2017
$ git clone https://github.com/tianocore/edk2-platforms.git -b devel-MinnowBoardMax-UDK2017
$ wget https://firmware.intel.com/sites/default/files/minnowboard_max-1.00-binary.objects.zip
$ unzip minnowboard_max-1.00-binary.objects.zip
$ cd edk2/CryptoPkg/Library/OpensslLib
$ git clone -b OpenSSL_1_1_0e https://github.com/openssl/openssl openssl
$ cd ../../../..
$ docker run --rm -it -w /home/edk2 -v $PWD/edk2:/home/edk2/edk2 \
-v $PWD/edk2-platforms:/home/edk2/edk2-platforms \
-v $PWD/MinnowBoard_MAX-1.00-Binary.Objects:/home/edk2/silicon \
-v ${CCACHE_DIR:-$HOME/.ccache}:/home/edk2/.ccache \
3mdeb/edk2 /bin/bash
(docker)$ cd edk2-platforms/Vlv2TbltDevicePkg/
(docker)$ . Build_IFWI.sh MNW2 Debug
```
Building firmware for QEMU AArch64
----------------------------------
```
$ docker pull 3mdeb/edk2
$ git clone https://github.com/tianocore/edk2.git
$ docker run --rm -it -w /home/edk2/edk2 -v $PWD/edk2:/home/edk2/edk2 \
-v $PWD/edk2-platforms:/home/edk2/edk2-platforms \
-v ${CCACHE_DIR:-$HOME/.ccache}:/home/edk2/.ccache \
3mdeb/edk2 /bin/bash
(docker)$ git submodule update --init --checkout
(docker)$ . edksetup.sh
(docker)$ make -C BaseTools
(docker)$ GCC5_AARCH64_PREFIX=aarch64-linux-gnu- build -a AARCH64 -t GCC5 -p ArmVirtPkg/ArmVirtQemu.dsc
```
Building firmware for Versatile Express ARM
-------------------------------------------
```
$ docker pull 3mdeb/edk2
$ git clone https://github.com/tianocore/edk2.git
$ cd edk2
$ git clone https://github.com/tianocore/edk2-platforms.git
$ cd ..
$ docker run --rm -it -w /home/edk2/edk2 -v $PWD/edk2:/home/edk2/edk2 \
-v $PWD/edk2-platforms:/home/edk2/edk2-platforms \
-v ${CCACHE_DIR:-$HOME/.ccache}:/home/edk2/.ccache \
3mdeb/edk2 /bin/bash
(docker)$ git submodule update --init --checkout
(docker)$ . edksetup.sh
(docker)$ make -C BaseTools
(docker)$ export PACKAGES_PATH=/home/edk2/edk2:/home/edk2/edk2/edk2-platforms
(docker)$ GCC5_ARM_PREFIX=arm-linux-gnueabihf- build -a ARM -t GCC5 -p Platform/ARM/VExpressPkg/ArmVExpress-CTA15-A7.dsc
```