| Crates.io | cargo-uefi-runner |
| lib.rs | cargo-uefi-runner |
| version | 1.0.0 |
| created_at | 2025-06-25 01:12:04.45847+00 |
| updated_at | 2026-01-16 16:10:38.098163+00 |
| description | A tool for running and testing UEFI project. |
| homepage | https://github.com/kmakita13714/cargo-uefi-runner |
| repository | https://github.com/kmakita13714/cargo-uefi-runner |
| max_upload_size | |
| id | 1725207 |
| size | 4,225,838 |
A tool for running and testing UEFI projects.
UEFI Runner is modified from BootUEFI
UEFI Runner is a tool designed to help developers run and test UEFI (Unified Extensible Firmware Interface) applications written in Rust. It provides an easy way to launch, debug, and test UEFI applications in a development environment.
cargo install cargo-uefi-runner
Set uefi-runner as a custom runner in .cargo/config:
[build]
target = "x86_64-unknown-uefi"
[target.x86_64-unknown-uefi]
runner = "uefi-runner"
You can run your rust UEFI application through cargo run or test it throught cargo test.
Configuration is done through a [package.metadata.uefi-runner] table in the Cargo.toml of your project.
The following options are available:
[package.metadata.uefi-runner]
# ESP root folder
esp_root = "target/esp"
# Specifies the destination for the built file as a relative path from esp_root
file_path = "EFI/BOOT/BOOTX64.EFI"
# The command to run qemu.
# Set this to an absolute path if your qemu is not in your PATH
qemu = "qemu-system-x86_64"
# The Path to UEFI firmware
bios = "OVMF.fd"
# Additional arguments passed to qemu for non-test executables
run-args = []
# Additional arguments passed to qemu for test executables
test-args = []
# An exit code that should be considered as success for test executables
test-success-exit-code = 0
# The timeout for running a test
test-timeout = 300
[package.metadata.uefi-runner.copy]
"boot.conf" = "EFI/BOOT/boot.conf"
"kernel.conf" = "kernel.conf"
# (You can specify any number of them.)
Part of a project's specifications
esp_root = "../qemu/volume"
file_path = "EFI/BOOT/BOOTX64.EFI"
Part of another project's specifications
esp_root = "../qemu/volume"
file_path = "kernel.elf"
You can do something like the above.