Table of Contents
This page provides wult installation instruction for the local usage model.
Before describing the installation steps, here is how to update an existing wult installation.
If you installed pepc, stats-collect and wult using pip then use the following commands to upgrade to the latest release:
sudo pip3 install --upgrade git+https://github.com/intel/pepc.git@release sudo pip3 install --upgrade git+https://github.com/intel/stats-collect.git@release sudo pip3 install --upgrade git+https://github.com/intel/wult.git@release sudo wult deploy
If you installed pepc, stats-collect and wult using dnf on one of the supported operating systems listed in the installation instructions, then upgrade to the latest version using the following commands:
sudo dnf upgrade pepc stats-collect wult sudo stats-collect deploy sudo wult deploy
Wult has several dependencies. First of all, the sources of the running kernel must be installed on the SUT. Not just kernel headers for user-space programs, but full kernel source code.
Wult also requires pepc and stats-collect to be installed. You'll also need the tools necessary for compiling kernel drivers on the SUT: gcc, make, etc.
In addition to this, wult requires various python packages.
Wult comes with kernel drivers which have to be built for the kernel running on the SUT.
On Fedora and Ubuntu, the sources are typically located in /lib/modules/<kernel_version>/build. The <kernel_version> part must match the kernel running on the SUT. In other words, it has to be the same as what the uname -r command prints when you run it on the SUT.
Unless you are an advanced user, you probably run a stock OS kernel. In this case, it is enough to just install the kernel sources package provided by the OS, e.g.:
Advanced users can provide custom kernel sources path via wult deploy command line options (see the wult man page).
Note that wult and ndl both have minimum kernel requirements. ndl requires that the SUT is running a kernel which is 'v5.2' or newer. For wult, the minimum kernel version depends on the method used. See the table below for details on which methods require which kernel version.
Method | Min Kernel Version |
---|---|
hrt | 5.6 |
tdt | 5.6 |
bpf-hrt | 5.15 |
bpf-tdt | 5.15 |
Here are the required OS packages.
Fedora
sudo dnf install -y make gcc elfutils-libelf-devel rsync procps-ng libbpf-devel sudo dnf install -y libffi-devel redhat-rpm-config openssl-devel sudo dnf install -y kernel-devel sudo dnf install -y git python3 python3-devel python3-pip python3-numpy sudo dnf install -y python3-colorama python3-yaml python3-pandas sudo dnf install -y python3-paramiko python3-argcomplete
Ubuntu
sudo apt install -y make gcc libelf-dev libssl-dev libbpf-dev rsync sudo apt install -y linux-headers-$(uname -r) sudo apt install -y procps git python3-pip python3-numpy python3-plotly sudo apt install -y python3-colorama python3-yaml python3-pandas sudo apt install -y python3-paramiko python3-argcomplete
Notes
Wult, stats-collect and pepc are Python 3 projects, and we recommend using the pip tool for installing them. Here is how to install them directly from the release branch of their git repositories:
sudo pip3 install --upgrade git+https://github.com/intel/pepc.git@release sudo pip3 install --upgrade git+https://github.com/intel/stats-collect.git@release sudo pip3 install --upgrade git+https://github.com/intel/wult.git@release
Note, we do not suggest using the --user option, because in local usage model wult has to be run with superuser (root) permissions, and --user will make this problematic.
It is recommended to install the tools using pip for quickest access to the latest release.
wult, stats-collect and pepc are available on Fedora 38 and Fedora 39. To install pepc, stats-collect, and wult, run the following command:
sudo dnf install -y pepc stats-collect wult
If you are using Fedora 37 or older, use the 'pip' installation method.
We do not provide CentOS/Ubuntu/Debian packages, so you'll need to use the 'pip' installation method. Install dependencies using the commands in the os-packages section before continuing with the 'pip' installation method.
The final step is to build and deploy wult drivers and stats-collect statistics collectors . Run these commands on the SUT as "root".
sudo stats-collect deploy sudo wult deploy
Important note
The drivers are installed only for the currently running kernel. If you reboot the SUT to a different kernel, you have to re-run wult deploy.
Wult, stats-collect and pepc tools have bash tab completions support, but this will only work if you have certain environment variables defined. The following commands will do it:
eval $(register-python-argcomplete wult) eval $(register-python-argcomplete pepc) eval $(register-python-argcomplete stats-collect)
You can put these lines to your .bashrc file in order to have wult and pepc tab completions enabled by default.