| # Linux Tests |
| |
| This repository contains utilities for running integration tests for Linux |
| guests under Machina. |
| |
| ## Build |
| |
| First install rust (follow the instructions of the `rustup` tool): |
| |
| ```sh |
| $ 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](https://doc.rust-lang.org/1.9.0/book/advanced-linking.html)). |
| |
| ```sh |
| $ 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: |
| |
| ```sh |
| $ 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/`. |
| |
| ```sh |
| $ ./build.sh {arm64|x64} |
| ``` |