Skip to main content
Question

Metis M.2 with a 4.19 kernel

  • May 6, 2026
  • 1 reply
  • 10 views

I would like to use the Metis M.2 in an embedded system running Open Embedded with a 4.19 kernel. (It doesn’t have the “modern” /dev/dma_heap/ interface, it uses /dev/ion). I have the driver installed in the host, and when I use the SDK in a Ubuntu 22.04 docker container I get this error:

[libaxldev_linux.c:394] No dmabuf driver found
[ERROR][axeShareMemAllocMap]: Fail to alloc dmabuf
[ERROR][axeMemAllocShared]: Share memory allocate mao failed: 0x70010001.
terminate called after throwing an instance of 'std::runtime_error'
  what():  axr_load_model_instance failed : Failed to create executor for model: kernel_function_batched
Aborted
 

Can the driver/library be compiled to use ION instead of dmabuf?

1 reply

Spanner
Axelera Team
Forum|alt.badge.img+3
  • Axelera Team
  • May 6, 2026

Hi ​@STU940652 !

Hmm, I’m not that hot with ION but don’t think so. The error is from libaxldev, which is part of the axelera_runtime package, distributed as pre-built binaries. It's hardcoded against the modern DMA-BUF heaps interface (/dev/dma_heap/), so even with ION present in your kernel, I don’t think it’d find what it's looking for?

The minimum kernel where this interface exists is 5.6, and you'll need CONFIG_DMABUF_HEAPS, CONFIG_DMABUF_HEAPS_SYSTEM, CONFIG_DMABUF_HEAPS_CMA, CONFIG_SYNC_FILE and CONFIG_SW_SYNC enabled. The Jetson Orin bring-up post lists the full set, if that’s useful?

I’d be interested to hear how this goes though!