VMA bundle helpers. A bundle must be added separatetly to your project, see VmaBundle.distro packages.
$ dotnet add package VmaBundleFor VMA to work, only kernel mods are required. Normally they are loaded automatically when Mellanox cards are present.
The rest is userspace libraries.
The goal of this project is to extract all required userspace libraries using a Dickerfile build, and then pack them into NuGet format.
Dockerfile gets actual libraries from apt, builds libvma and extracts all required libraries to a tar archive.
To run, extract & clean
docker build -t vma-builder-debian13 .
docker create --name tmp-debian13 vma-builder-debian13
docker cp tmp-debian13:/export/vma-bundle.tar.gz .
docker rm tmp-debian13
docker build --build-arg BASE_IMAGE=ubuntu:25.10 -t vma-builder-ubuntu2510 .
docker create --name tmp-ubuntu2510 vma-builder-ubuntu2510
docker cp tmp-ubuntu2510:/export/vma-bundle.tar.gz .
docker rm tmp-ubuntu2510
Cleanup images & layers:
podman image prune -a -f
# This works fine from WSL, directly from Podman Desktop WSL distro
# If it's the default WSL distro, just run wsl in Explorer's address bar, or go to mnt/c/path/to/this/repo
./build_vma_bundle.sh debian:13 ./output/debian13 9.8.80
build_vma_bundle.sh.For LD_PRELOAD prefer system libraries if present
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}/opt/vma/lib
or prefer extracted ones
export LD_LIBRARY_PATH=/opt/vma/lib:$LD_LIBRARY_PATH
To clone libvma, a TLS certificate for a proxy may be required. Place it in the root of this repo as proxy.pem or proxy.crt.