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.mdfile.
- 1. Clone This Repository
- 2. Install Third-Party Requirements
- 3. Install Rust Toolchain
- 4. Build DPDK Library (For Catnip and Only Once)
- 5. Build IO Uring Library (For Catcollar and Only Once)
- 6. Setup Configuration File (Only Once)
- 7. Enable Huge Pages (Optional for Catnip at 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/demikernel/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./scripts/setup/io_uring.sh- Copy the template from
scripts/config/default.yamlto$HOME/config.yaml. - Open the file in
$HOME/config.yamlfor editing and do the following:- Change
XX.XX.XX.XXto match the IPv4 address of your server host. - Change
YY.YY.YY.YYto match the IPv4 address of your client host. - Change
PPPPto the port number that you will expose in the server host. - Change
ZZ.ZZ.ZZ.ZZto match the IPv4 address that in the local host. - Change
ff:ff:ff:ff:ff:ffto match the MAC address in the local host. - Change
abcdeto match the name of the interface in the local host. - Change the
arp_tableaccording to your setup. - If using DPDK, change
WW:WW.Wto match the PCIe address of your NIC.
- Change
- Save the file.
sudo -E ./scripts/setup/hugepages.sh