Provider requirements

What a Community machine needs, how to set up the firmware (virtualization, IOMMU) and VFIO on Ubuntu, and how to check it in a few commands.

Everything a machine needs before it hosts Community sessions, and how to check it yourself. Plan about 15 minutes, plus one reboot.

The machine

System Ubuntu Server 24.04 LTS, installed directly on the machine. No VM, no WSL.
Kernel Linux 6.12 or newer: the Ubuntu 24.04 HWE kernel. Sessions do not start on an older kernel.
Machine Dedicated to Node Lodge.
GPU NVIDIA, Ampere or newer, 12 GB of VRAM or more. Consumer, professional and datacenter cards.
CPU Intel or AMD with hardware virtualization (VT-x or AMD-V) and an IOMMU (VT-d or AMD-Vi).
Disk An SSD or NVMe drive with free space for session disks.
Display No screen on the rented GPUs. Use the integrated graphics or another card for a console.
Network Wired uplink, outbound internet. No inbound port. The agent measures the internet speed weekly against speedtest.nodelodge.com, see Pair a machine.

Check it in one go

On the machine, in a terminal:

lsb_release -ds; uname -r; nvidia-smi --query-gpu=name,memory.total --format=csv,noheader; ls /dev/kvm; ls /sys/kernel/iommu_groups | wc -l; df -h /
Line What you want to see
System Ubuntu 24.04
Kernel 6.12 or higher, e.g. 6.14.0-29-generic
GPU Your card and its memory, 12 GB or more
/dev/kvm The path printed back. An error means virtualization is off.
IOMMU groups A number above 0. 0 means the IOMMU is off.
Disk Free space on the drive that holds session disks

A kernel below 6.12: install the HWE kernel, then restart.

sudo apt install linux-generic-hwe-24.04 && sudo reboot

nvidia-smi answers only while the NVIDIA driver is loaded. Once the GPU is reserved for sessions (see VFIO below), it no longer shows there: that is expected.

Firmware (BIOS or UEFI)

Open the firmware setup at boot (usually Del, F2 or F10) and set:

Setting Intel AMD
CPU virtualization Intel Virtualization Technology (VT-x): On SVM Mode: On
IOMMU VT-d: On IOMMU: On (sometimes AMD-Vi)
Above 4G decoding On On
Boot mode UEFI UEFI
Primary display Integrated graphics, or the card you keep for the console Same

Names differ between boards. Look under Advanced, CPU Configuration, Chipset or North Bridge. Save, then boot Ubuntu.

IOMMU on the kernel command line

Intel boards need the IOMMU turned on in the kernel too. On AMD it is on by default; the same line does no harm.

  1. Edit /etc/default/grub and add to GRUB_CMDLINE_LINUX_DEFAULT:
    • Intel: intel_iommu=on iommu=pt
    • AMD: amd_iommu=on iommu=pt
  2. Run sudo update-grub, then reboot.
  3. Check: cat /proc/cmdline shows the options, and ls /sys/kernel/iommu_groups lists groups.

Never add pcie_acs_override. It fakes the isolation between devices, and a machine that uses it fails review.

Each GPU in its own IOMMU group

A rented GPU is attached to one VM, with every device that shares its IOMMU group. List the groups:

for g in /sys/kernel/iommu_groups/*; do echo "Group ${g##*/}"; for d in "$g"/devices/*; do echo "  $(lspci -nns "${d##*/}")"; done; done

Each NVIDIA GPU should share its group only with its own functions (its audio device, sometimes a USB controller on the card) and PCI bridges. If a GPU shares a group with a disk controller or a network card, move it to another PCIe slot, preferably one wired to the CPU.

VFIO

Sessions reach the GPU through vfio-pci, the Linux driver that hands a device to a VM. The Community host install reserves the rented GPUs for you. To check it, or to set it up by hand:

  1. Find the IDs of the GPU and its audio function: lspci -nn -d 10de: (for example [10de:2684] and [10de:22ba]).

  2. Create /etc/modprobe.d/vfio.conf with:

    options vfio-pci ids=10de:2684,10de:22ba
    softdep nvidia pre: vfio-pci
    softdep nouveau pre: vfio-pci
    
  3. Run sudo update-initramfs -u, then reboot.

  4. Check: lspci -nnk -d 10de: shows Kernel driver in use: vfio-pci for each rented function.

Two cards of the same model share their IDs: both are reserved. Keep a different card, or the integrated graphics, for the console.

The self-test

The Node Lodge agent runs the same checks and tells you what to fix. On the machine, in the agent folder:

node compute-host.mjs doctor --community

It reads the machine and changes nothing. Each line is pass, warn or fail:

Check Passes when
node Node 22.12 or later
privileges It runs as a standard user, not root
inventory, gpu The hardware is read, with an NVIDIA GPU and its VRAM
kernel Linux 6.12 or newer (Ubuntu 24.04 HWE)
kvm /dev/kvm exists
iommu IOMMU groups exist
iommu-gpu Each GPU is alone in its IOMMU group
acs-override No pcie_acs_override on the kernel command line
vfio-pci The vfio-pci driver is loaded
cloud-hypervisor The hypervisor is installed

Fix every fail before you pair the machine. Next: Pair a machine.

Last updated View as Markdown

Results appear as you type. Arrow keys move through them.