Skip to content

Flamitsu/spark

Spark

Pre alpha stage

BIG DISCLAIMER - Spark is a PRE ALPHA STAGE boot manager written in Rust, IT IS NOT MEANT TO BE USED IN PRODUCTION AT THIS MOMENT.

Table of contents

Description

Spark is a boot manager written in Rust that aims for speed and stability during the boot process.

Features

  • Minimalist
  • Fast
  • Stable
  • Maintainable and modular

TODO

TODO (spark-cli):

  • ESP automatic detection

  • Installation process and removal

  • Establishing an ESP directory map

  • Reading the NVRAM variables

  • Modifying the NVRAM variables successfully

  • Generating operating system entries

  • Supporting custom signatures of the binary

TODO (spark-loader):

  • Detect user input

  • Booting any kernel with the initramfs

  • Supporting firmware signatures

  • Choose between entries

  • Parsing the system's entries in the ESP

  • Customization of the general config file

Requirements

  • UEFI firmware
  • GPT partition table
  • Rustup configured
  • x86_64 architecture
  • QEMU installed and configured with a Linux OS instance
  • QEMU virtual snapshot of the virtual machine before executing the software

Installation

Make sure you have the rustup toolchain before trying to build the binary.

Clone the repository and compile:

git clone https://github.com/Flamitsu/spark
cd spark
cargo loader # This command builds the binary for the .efi bin.
cargo cli # This command builds the general binary.

However, cargo loader may produce an error. If that happens, it may be that you don't have the toolchain installed. To install the proper target you need to execute this code:

cd scripts/
./install-targets.sh 

Execution

Disclaimer

This code is still work in progress and it is not meant to be executed in the host machine in any way. You should have a QEMU snapshot (or the software you are using to virtualize an environment) and then execute the software.

If you only want to try the UEFI binary, you need to execute this commands:

cd scripts/
./only-loader.sh

To execute the spark-cli or spark-loader binary as a whole, it is extremely recommended to be inside a virtual machine.

After the installation process is complete, you need to run the following command: ./tyr-virtual-machine.sh, and it should be only executed inside a virtual machine.

Contribution

To contribute to this project you should look at the contributing guidelines first.

License

This project is licensed under the MIT license or under the Apache 2.0 license

Credits

  • uefi - Crate to interact with the UEFI in Rust.

Releases

No releases published

Packages

 
 
 

Contributors