1.2.1.2.1. Install Dependencies

We tested Keystone with QEMU Ubuntu 16.04/18.04 and derivatives.

1.2.1.2.1.1. Ubuntu

sudo apt update
sudo apt install autoconf automake autotools-dev bc \
bison build-essential curl expat libexpat1-dev flex gawk gcc git \
gperf libgmp-dev libmpc-dev libmpfr-dev libtool texinfo tmux \
patchutils zlib1g-dev wget bzip2 patch vim-common lbzip2 python \
pkg-config libglib2.0-dev libpixman-1-dev libssl-dev screen \
device-tree-compiler expect makeself unzip cpio rsync cmake

Note

You need Git version >= 2.11.0 to use ./fast-setup.sh, because the script uses --shallow-clone for faster submodule initializtion.

In order to use the Rust version of the security monitor, you will also need to install rustup and llvm-9 (available in Ubuntu repositories in versions 18.04 and above). Then, run the following commands:

rustup toolchain install nightly
rustup +nightly component add rust-src
rustup +nightly target add riscv64gc-unknown-none-elf
cargo +nightly install cargo-xbuild