Skip to content

RBLN Driver Installation Guide

This guide describes how to install the RBLN Driver.


Pre-installation actions

Before installing the driver, complete the following checks.

Verify you have a supported Linux distribution

Confirm that the distribution version and kernel meet the requirements in the Support Matrix.

$ hostnamectl

From the output, confirm:

  • Operating System (distribution and version)
  • Kernel (running kernel version)
  • Architecture (it must match the runfile)

Ubuntu kernel selection

Ubuntu 22.04: the GA kernel is 5.15, which the driver does not support. Install the HWE kernel before installing the driver; reboot once in Reboot before installing.

1
$ sudo apt-get install -y linux-generic-hwe-22.04

Ubuntu 24.04: only the GA kernel is supported. Do not install linux-generic-hwe-24.04; it moves the host to a kernel outside the support matrix.

Complete the product-specific steps

Choose the tab for the cards in the host.

Unbind pciehp on RHEL 10.2 hosts

When several NPUs behind the same PCIe switch are reset at once, the link can stay down long enough for the hotplug driver pciehp to remove a card from the kernel while it is in use. To prevent this on a RHEL 10.2 host, unbind pciehp from the downstream ports that host NPUs before you run the installer. Hosts running other supported OS versions can skip this step.

If the node runs OpenShift (RHCOS), do not run this script. Follow PCIe Hotplug Unbinding on OpenShift instead. If you use virtual machines, run the script on the hypervisor host that owns the PCIe switch, not in the guest.

Download rbln-pciehp-hook.sh, then install and apply it. The script unbinds pciehp only on the downstream ports that host NPUs.

$ chmod +x rbln-pciehp-hook.sh
$ sudo ./rbln-pciehp-hook.sh install

Confirm that every port hosting an NPU is reported as unbound:

$ ./rbln-pciehp-hook.sh status

To roll back, run uninstall. It rebinds the ports to pciehp, removes every file that install deployed, and rebuilds the initramfs if the hook script was in it. After that, the card removal described above can occur again.

$ sudo ./rbln-pciehp-hook.sh uninstall

--help describes the other subcommands and what install deploys.

$ ./rbln-pciehp-hook.sh --help

Set the mandatory kernel boot parameter on Intel hosts

ATOM™ supports Intel CPU servers. On a host with an Intel CPU, add pci=noats to the kernel command line before you install the driver. Without it, the installer reports GRUB preflight: CRITICAL and stops. In that case, add the parameter, reboot as described in Reboot before installing, then run the installer again.

  • Debian/Ubuntu family
# Add pci=noats to GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub
$ sudo update-grub
  • RHEL family
$ sudo grubby --args="pci=noats" --update-kernel=/boot/vmlinuz-$(uname -r)

Reboot before installing

If you installed the HWE kernel or changed the kernel command line in the previous step, reboot the host. The installer checks the command line of the running kernel, so a parameter added without a reboot still stops it.

$ sudo reboot

After the reboot, confirm the kernel version and the parameter:

$ uname -r
$ cat /proc/cmdline

Verify the system has the correct kernel packages installed

The DKMS-based driver build requires kernel headers that match the running kernel confirmed above. Install them:

  • Debian/Ubuntu family
$ sudo apt-get update
$ sudo apt-get install -y linux-headers-$(uname -r)
  • RHEL family
$ sudo dnf install -y kernel-headers-$(uname -r) kernel-devel-$(uname -r)

Remove a legacy deb/rpm driver

If the rebellions deb/rpm package shipped before 3.0 is installed, remove it before you run the runfile installer.

  • Debian/Ubuntu family
$ sudo apt remove -y rebellions
  • RHEL family
$ sudo dnf remove -y rebellions

Install the driver

Note

The driver installer (*.run) is distributed separately and is not installed via the OS package manager. If you do not have the runfile, request it from Rebellions Support before proceeding (see Contact Us).

The runfile is named rebellions-<product>-x86_64-<version>.run. For <product>, use rebel100 for Rebel100™ or atom for ATOM™.

If the installer is not executable, run:

$ chmod +x rebellions-<product>-x86_64-<version>.run

Then run the installer with root privileges:

$ sudo ./rebellions-<product>-x86_64-<version>.run

Post-installation actions

Configure GRUB boot parameters

Missing recommended parameters do not stop the installation — the installer reports them and carries on — so check them once the driver is installed with rbln-bios:

$ sudo /usr/bin/rbln-bios -t grub -v

If the result is WARNING, add the parameters listed under Missing to the kernel command line.

  • Debian/Ubuntu family
# Add <parameters> to GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub
$ sudo update-grub
  • RHEL family
$ sudo grubby --args="<parameters>" --update-kernel=/boot/vmlinuz-$(uname -r)

If you added parameters, reboot the host. The added parameters apply only after the reboot.

$ sudo reboot

Apply udev rules

The installer creates udev rules at /etc/udev/rules.d/99-rebellions.rules. Reload and apply them:

$ sudo udevadm control --reload-rules
$ sudo udevadm trigger

Verify the installation

Run rbln-smi to confirm the driver is loaded and NPUs are accessible:

$ rbln-smi

For an example output, see rbln-smi.


Troubleshooting

Pre-installation cleanup required

This message means that a previously installed driver package is still present or the driver module is still loaded.

Run the cleanup commands from the installer output, then retry the installation.

Example cleanup commands
=================================
Pre-installation cleanup required
=================================

Please run the following commands before installing:

$ sudo systemctl stop rbln-smd.service 2>/dev/null || true
$ sudo modprobe -r rebellions
$ sudo apt remove rebellions-dkms

Kernel module cannot be unloaded

If modprobe -r rebellions fails with "module is in use", stop the daemon and retry:

$ sudo systemctl stop rbln-smd.service 2>/dev/null || true
$ sudo modprobe -r rebellions

If unloading still fails, find processes using the devices and stop them:

$ sudo lsof /dev/rbln*