If you've wanted to peek under the hood of how your Metis hardware talks to Linux, there’s a new Axelera AI repo with the PCIe driver source code.
Repo: https://github.com/axelera-ai-hub/axelera-driver
For most of us running the standard Voyager SDK setup, you won't likely need to touch this. The driver gets installed automatically. But if you're doing something a bit more adventurous (custom kernel builds, embedded systems, that sort of thing) this could be really useful. I know at least a few people on here have been experimenting with Debian and Yocto, for instance.
Quick overview of what's there:
It's the metis.ko kernel module. The one that handles all the PCIe communication between your system and the Metis hardware. Currently it supports Ubuntu 22.04 and 24.04 (LTS).
Building it yourself is pretty straightforward if you should want to. Make sure you've got your kernel headers installed (sudo apt-get install linux-headers-$(uname -r)), then it's just the usual make and sudo make install route.
If you're building against a custom kernel, you can point it at your kernel build directory with make KDIR=/path/to/kernel/build.
Why might you actually need this?
Honestly, most people probably won't. But if you're working with a non-standard kernel version, running a custom Linux distro, or just curious about how the hardware interface works at a lower level, having the source available is pretty handy.
And it's GPL-2.0 licensed, so you can see exactly what's going on, which is a nice touch. If you run into issues, dmesg | tail -n 50 will show you what's happening in the kernel logs. Most problems tend to be mismatched kernel headers, which is an easy fix once you know what to look for.
Anyone else been poking around in here? I’d be really interested to hear if anyone’s using this to run anything new or unusual!

