Skip to main content

Install Voyager SDK in a Docker Container

This guide installs the Voyager SDK inside a Docker container, for customers who prefer to evaluate or develop with Docker.

Driver on the host

The driver for the Axelera Metis AIPU must be installed on the host system, not in the container.

Version examples

The version numbers in the examples below (for instance 1.2.3, 1.2.5) are illustrative. Replace <version> with the version that matches your Voyager SDK, and use the canonical install guide for the most current steps.

Create the install directory

Check the driver version that matches your Voyager SDK version in these files inside the Voyager SDK folder:

  • cfg/config-ubuntu-2204-arm64.yaml
  • cfg/config-ubuntu-2204-amd64.yaml

Look for AX_DKMS_VERSION, for example:

AX_DKMS_VERSION: 1.2.3

Then, in your home folder (replace <version>):

mkdir metis-driver-<version>
cd metis-driver-<version>/

Install the PCIe driver

  1. Download the driver. Specify your Ubuntu version in the URL (for Raspberry Pi, use Ubuntu 22.04):

    wget https://software.axelera.ai/artifactory/axelera-apt-source/metis-dkms/<ubuntu_version>/metis-dkms_<version>_all.deb
  2. Make sure DKMS is installed:

    sudo apt-get install dkms
  3. Install the driver:

    sudo dpkg -i metis-dkms_<version>_all.deb
    sudo modprobe metis

Check your driver version, then reboot the host:

cat /sys/class/metis/version
No driver output after reboot

If cat /sys/class/metis/version shows no output after rebooting, follow Driver not persisting after reboot to fix it.

Install Docker

  1. If Docker is not already installed, follow the official Docker installation instructions.

  2. Add your user to the docker group, then log out and back in:

    sudo usermod -aG docker $USER
  3. Allow display inside the container:

    xhost +local:root

Create a Docker container with the Voyager SDK

  1. Create an Ubuntu 22.04 container (replace <version>):

    docker run -it --privileged -v /tmp:/tmp -v /lib/modules:/lib/modules -v /run:/run --device=/dev/dri --device=/dev/vchiq --group-add video  -e DISPLAY=$DISPLAY --network=host --name=voyager-sdk-<version> ubuntu:22.04
    Passing the Metis device

    On some hosts you must create a symbolic link to your Metis device and pass it to docker run with --device. Select the correct /dev/metis-* for your system:

    sudo ln -s /dev/metis-0:xx:0 /dev/metis0
    docker run -it --privileged -v /tmp:/tmp -v /lib/modules:/lib/modules -v /run:/run --device=/dev/dri --device=/dev/vchiq --group-add video  -e DISPLAY=$DISPLAY --device /dev/metis0 --network=host --name=voyager-sdk-<version> ubuntu:22.04
  2. Install the SDK as you would on the host OS, but excluding the driver. Inside a container, do not use --all, and always specify --no-driver:

    apt update && apt install -y sudo git pciutils curl lsb-release && update-pciids
    git clone https://github.com/axelera-ai-hub/voyager-sdk.git
    cd voyager-sdk
    ./install.sh --YES --no-driver --media

See the install guide for more detail.