Before building and running seL4-based systems you must have several prerequisite software packages installed on the machine you will be using to build.
First of all we assume that you are running Linux. We typically use some flavour of Ubuntu or other Debian-based system. You could try using other Unix systems (including Mac OS) but your mileage may vary. The following instructions assume Ubuntu version 16.04 (Xenial Xerus) or greater on a 64-bit machine. Note that the commands starting with apt-get
must be run as root.
apt-get install git repo cmake ninja-build clang gcc-multilib gcc-arm-none-eabi binutils-arm-none-eabi \
libncurses-dev libxml2-utils libssl-dev libsqlite3-dev libcunit1-dev expect python-pip
pip install camkes-deps
# Required for CAmkES only
curl -sSL https://get.haskellstack.org/ | sh
Test that it works by getting seL4 and CAmkES and building and running it.
Get seL4 and CAmkES
mkdir camkes-manifest
cd camkes-manifest
repo init -u https://github.com/sel4/camkes-manifest.git
repo sync
Test it for ARM
make arm_simple_defconfig; make silentoldconfig
make
qemu-system-arm -M kzm -nographic -kernel images/capdl-loader-experimental-image-arm-imx31
# quit with Ctrl-A X
Test it for x86
make clean
make x86_simple_defconfig; make silentoldconfig
make
qemu-system-i386 -nographic -m 512 -cpu Haswell -kernel images/kernel-ia32-pc99 -initrd images/capdl-loader-experimental-image-ia32-pc99
# quit with Ctrl-A X
The following is a more detailed explanation of the prerequisites. You don't need to execute the commands here if you've already done the Quick-Start ones above.
Building and running seL4 and CAmkES reguires:
- git and repo
- cross compiler and build tools
- python packages
- haskell-stack (a haskell version and package manager)
- qemu (a CPU emulator)
apt-get install git repo
# Tools for building our build tools
apt-get install cmake ninja-build clang
# Cross compilers
apt-get install gcc-multilib gcc-arm-none-eabi binutils-arm-none-eabi
# Libraries and tools needed by our build system
apt-get install libncurses-dev libxml2-utils libssl-dev libsqlite3-dev libcunit1-dev expect
apt-get install python-pip
pip install camkes-deps
Haskell stack is a tool for managing ghc versions and haskell packages. Learn more on their website.
curl -sSL https://get.haskellstack.org/ | sh
apt-get install qemu-system-arm qemu-system-x86