Building the Kitty system #
Acquire source code #
git clone https://github.com/au-ts/lionsos.git
cd lionsos
Dependencies #
Run the following commands depending on your machine:
sudo apt update && sudo apt install make cmake clang lld llvm device-tree-compiler unzip git qemu-system-arm python3 python3-pip
# If you see 'error: externally-managed-environment', add --break-system-packages
pip3 install sdfgen==0.26.0
# Make sure that you add the LLVM bin directory to your path.
# For example:
# echo export PATH="/opt/homebrew/Cellar/llvm/bin:$PATH" >> ~/.zshrc
# Homebrew will print out the correct path to add
brew install make dtc llvm qemu
# If you see 'error: externally-managed-environment', add --break-system-packages
pip3 install sdfgen==0.26.0
sudo pacman -Sy make clang lld dtc python3 python-pip
# If you see 'error: externally-managed-environment', add --break-system-packages
pip3 install sdfgen==0.26.0
nix develop
Acquire the Microkit SDK #
Run the following commands depending on your machine:
wget https://github.com/seL4/microkit/releases/download/2.0.1/microkit-sdk-2.0.1-linux-x86-64.tar.gz
tar xf microkit-sdk-2.0.1-linux-x86-64.tar.gz
wget https://github.com/seL4/microkit/releases/download/2.0.1/microkit-sdk-2.0.1-macos-aarch64.tar.gz
tar xf microkit-sdk-2.0.1-macos-aarch64.tar.gz
wget https://github.com/seL4/microkit/releases/download/2.0.1/microkit-sdk-2.0.1-macos-x86-64.tar.gz
tar xf microkit-sdk-2.0.1-macos-x86-64.tar.gz
Compiling the Kitty system #
The Kitty system, when running, takes files from an NFSv3 server. The address of this server has to be known at build time.
cd examples/kitty
export MICROKIT_SDK=/path/to/sdk
# Platform to target
export MICROKIT_BOARD=qemu_virt_aarch64
# IP adddress of NFS server to connect to
export NFS_SERVER=<ip address of NFS server>
# NFS export to mount
export NFS_DIRECTORY=/path/to/dir
# Compile the system
make
cd examples/kitty
export MICROKIT_SDK=/path/to/sdk
# Platform to target
export MICROKIT_BOARD=odroidc4
# IP adddress of NFS server to connect to
export NFS_SERVER=<ip address of NFS server>
# NFS export to mount
export NFS_DIRECTORY=/path/to/dir
# Compile the system
make
If you need to build a release version of the system:
make MICROKIT_CONFIG=release
Next steps #
If you have successfully compiled the system, there should be a file
build/kitty.img
.
You can now move to running the system.