#qemu #kernel #cargo-subcommand #limine #run #running #runner

app cargo-qemu-runner

A cargo subcommand that allows running Limine kernels using cargo run

3 releases

0.1.2 Jan 27, 2024
0.1.1 Mar 29, 2023
0.1.0 Mar 26, 2023

#220 in Cargo plugins

MIT license

10KB
217 lines

Limine Qemu Cargo Runner

Prerequisites

  • xorriso for creating the iso
  • git for downloading limine

Installation

  • Git version: run install.sh or cargo install --path .
  • Release version: cargo install cargo-qemu-runner

Usage

  • Put runner = "cargo qemu-runner" in your .cargo/config.toml's [target] section
  • Specify these keys under [package.metadata.qemu_runner] section in Cargo.toml:
    • limine-branch, the limine binary branch to clone
      • NOTE: Only branches starting from v4.x are supported
    • extra-files, specifies extra files to copy to the resulting image
    • test-success-exit-code, qemu exit code which is considered success
    • test-args, extra arguments which are used along with run-command for tests
    • run-args, extra arguments which are used along with run-command
    • run-command, base command used to run qemu
  • Now you can cargo run your kernel and it will automatically launch it in qemu

Example config

Todo

  • Write a portable xorriso replacement in Rust
  • More configuration options?
  • Make it possible to have cargo-qemu-runner as a dev-dependency instead of requiring installation if possible

Dependencies

~1–1.9MB
~39K SLoC