This document contains instructions on how to setup a development environment for Demikernel in Linux.
The instructions in this file assume that you have at your disposal at one Linux machine. For more more information about required hardware and specification, check out the
README.md
file.
- Table of Contents
- 1. Clone This Repository
- 2. Install Third-Party Requirements
- 3. Install Rust Toolchain
- 4. Build DPDK Library (For Catnip and Only Once)
- 5. Setup Configuration File (Only Once)
- 6. Enable Huge Pages (Only for Catnip on Every System Reboot)
Follow these instructions to build Demikernel on a fresh Ubuntu 22.04 system.
export WORKDIR=$HOME # Change this to whatever you want.
cd $WORKDIR # Switch to working directory.
git clone --recursive https://github.com/microsoft/demikernel.git # Recursive clone.
cd $WORKDIR/demikernel # Switch to repository's source tree.
# Check what is going to be installed.
cat scripts/setup/debian.sh
# Install third party libraries.
sudo -H scripts/setup/debian.sh
# Get Rust toolchain.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
./scripts/setup/dpdk.sh
- Copy the template from
scripts/config/default.yaml
to$HOME/config.yaml
. If running on Azure, usescripts/config/azure.yaml
. - Open the file in
$HOME/config.yaml
for editing and do the following:- Change
XX.XX.XX.XX
to match the IPv4 address that in the local host. - Change
ff:ff:ff:ff:ff:ff
to match the MAC address in the local host. - Change
abcde
to match the name of the interface in the local host. - Change the
arp_table
according to your setup. Each line should contain the MAC address of a host matched to the IP address of the same host. - If using DPDK, change
WW:WW.W
to match the PCIe address of your NIC.
- Change
- Save the file.
sudo -E ./scripts/setup/hugepages.sh