This repository contains utilities for running integration tests for Linux guests under Machina.
First install rust (follow the instructions of the rustup
tool):
$ curl https://sh.rustup.rs -sSf | sh $ source ~/.cargo/env
Next we add some new targets for cross-compiling and static linking. Rust supports statically linking libc by replacing the usual GNU libc with musl (see The Rust Book: Advanced Linking).
$ rustup target add x86_64-unknown-linux-musl $ rustup target add aarch64-unknown-linux-musl
To compile to ARM targets, you will also need to have an appropriate cross-compiler in your path. For Debian-based systems, this can be installed by running the following command:
$ sudo apt install gcc-aarch64-linux-gnu
Lastly, run the build script for your desired architecture. This will invoke cargo for you as well as create an ext2 image in out/
.
$ ./build.sh {arm64|x64}