UEFI port of stage0
Go to file
Andrius Štikonas df9c276d81 Update M2libc with UEFI changes and build initial M2-Planet and M1. 2022-10-26 23:09:37 +01:00
Development Update M2libc with UEFI changes and build initial M2-Planet and M1. 2022-10-26 23:09:37 +01:00
LICENSES Add high level prototype for hex0. 2022-07-06 17:53:13 +01:00
M2-Planet@b8664784b6 Update M2libc with UEFI changes and build initial M2-Planet and M1. 2022-10-26 23:09:37 +01:00
M2libc@215859a120 Update M2libc with UEFI changes and build initial M2-Planet and M1. 2022-10-26 23:09:37 +01:00
amd64 Update M2libc with UEFI changes and build initial M2-Planet and M1. 2022-10-26 23:09:37 +01:00
bootstrap-seeds@491b485769 Update bootstrap-seeds submodule. 2022-10-11 21:21:10 +01:00
mescc-tools@0aeb341af4 Update M2libc with UEFI changes and build initial M2-Planet and M1. 2022-10-26 23:09:37 +01:00
.gitignore Add Makefile for creating images and launching qemu. 2022-08-07 11:38:45 +01:00
.gitmodules Update M2libc with UEFI changes and build initial M2-Planet and M1. 2022-10-26 23:09:37 +01:00
Makefile hex.S: Fix a bug where store label was called rather than jumped into. 2022-08-20 23:11:30 +01:00
README.md Fix wording in readme. 2022-08-28 00:57:20 +01:00
kaem.amd64 Add Makefile for creating images and launching qemu. 2022-08-07 11:38:45 +01:00

README.md

stage0-uefi

This is a port of stage0-posix (https://github.com/oriansj/stage0-posix) to UEFI.

Usage

make build/disk.img will create bootable images with stage0-uefi. You can use dd to write them on bootable media.

make qemu will create disk image and launch it in QEMU. To test this in QEMU, you need to provide some QEMU compatible UEFI implementation. In particular, you can use Tianocore's OVMF. make qemu is looking for it in a few paths where distros tend to install it. If not you can specify it via make qemu OVMF_IMG=/path/to/OVMF_CODE.fd

Minimal images

It is possible to create images without kaem-optional-seed.efi that contain only hex0-seed.efi. Those are a bit less automated but if your UEFI implementation lets you pass command line arguments, you can recreate kaem using just hex0.

  • make MINIMAL=1 qemu.
  • Open UEFI settings (often F2 but it varies from system to system).
  • Go to Add Boot option and pick appropriate boot volume that contains hex0-seed.efi.
  • Pick \bootstrap-seeds\UEFI\amd64\hex0-seed.efi.
  • Description can be anything, say kaem-seed.
  • Optional Data has to be hex0 amd64\kaem-minimal.hex0 EFI\BOOT\BOOTX64.efi.
  • Save boot entry and boot it. This will build kaem-minimal and exit.
  • Now boot normally from bootable media.