The classic arcade game, now as a bare bones UEFI executable!
Download the latest BOOTX64.EFI image from the releases page and copy it to a FAT32 formatted thumbdrive at /EFI/BOOT/BOOTX64.EFI. Then boot into your computers firmware and select the thumbdrive from the boot options.
nix users, you can download, build, and run a VM image with:
nix run 'github:Ex-32/snakEFI#vm'for everyone else...
mtools(for creating/editing FAT32 images)qemu(for running program in VM)edk2-ovmf(UEFI firmware for VM)M dependencies
To run snakEFI in a VM you need to download the image, install the VM dependencies and then run the following from the same directory as the BOOTX64.EFI file:
dd if=/dev/zero of=snakEFI.img bs=1k count=1440
mformat -i snakEFI.img -f 1440 ::
mmd -i snakEFI.img ::/EFI
mmd -i snakEFI.img ::/EFI/BOOT
mcopy -o -s -i snakEFI.img BOOTX64.EFI ::/EFI/BOOTthis will create a image file called snakEFI.img which can be run with:
sudo qemu-system-x86_64 -drive if=pflash,format=raw,file=$UEFI_IMG -drive format=raw,file=snakEFI.imgwhere $UEFI_IMG is the path to the OMVF firmware bundle, on my system it's /usr/share/edk2/x64/OVMF_CODE.fd
Since UEFI Applications are their own unique executable format (well... it's not quite identical to standard windows PE files) handled by the system firmware rather than any kernel, and snakEFI has no runtime dependencies, the precompiled version should run on any amd64, UEFI capable machine, but if for whatever reason you want to compile the project yourself, the process is pretty straight forward.
if you're using nix, you can build this project by just running one of these:
nix build 'github:Ex-32/snakEFI' # BOOTX64.EFI
nix build 'github:Ex-32/snakEFI#image' # snakEFI.img
nix build 'github:Ex-32/snakEFI#vm' # snakEFI-vm-wrappergnu-efi(for UEFI headers, not linked)gnumake(probably packaged by your distro as justmake)clang(nogccwon't work)lld(nold/gold/moldwon't work)
First, clone the repository.
git clone https://github.com/Ex-32/snakEFI.git && cd snakEFITo just create the EFI Application binary, for example to run on hardware just run:
makethis creates the BOOTX64.EFI binary in the project directory.
If your goal is to run snakEFI in a VM, then make sure you've got the VM dependencies installed and run:
make runthis will compile the project, create the VM image, and run it using qemu; if qemu exits with an error you may need to adjust the value of UEFI_IMG at the top of the Makefile to where OVMF_CODE.fd is actually located on your system.
If you just want to create the VM image but not run it you can run:
make imgwhich will create the snakEFI.img file, which can then be run manually as described here or by running make run