Skip to main content

Build and load Metis driver on host manually

Building and loading the metis.ko kernel module by hand can help when:

  • the kernel version on your Linux host changes (uname -r), or
  • the driver fails to install on a new host.

In these cases, cat /sys/class/metis/version returns no output.

Install the Voyager SDK first

Follow these steps after installing the Voyager SDK.

Install the Linux headers

Check whether the Linux headers are installed:

dpkg -l | grep linux-headers

If they are not, install them for your running kernel:

sudo apt update
sudo apt install linux-headers-$(uname -r)

Build and load the Metis driver

Build and load the driver for your current kernel version:

  1. Navigate to the driver directory (it exists after running ./install.sh in voyager-sdk):

    cd /usr/src/metis-<version>/driver
  2. Regenerate the Makefile:

    grep metis Makefile | sudo tee Makefile
  3. Compile the kernel module (this generates metis.ko in the current directory):

    sudo make -C /usr/src/linux-headers-$(uname -r) M=$PWD modules
  4. Load the module to test it:

    sudo insmod ./metis.ko
  5. Create the target directory and copy the module into place:

    sudo mkdir -p /lib/modules/$(uname -r)/updates/dkms
    sudo cp metis.ko /lib/modules/$(uname -r)/updates/dkms/.
  6. Update the module dependencies:

    sudo depmod -a