Find the PCI address of your NIC:
ip link show
ethtool -i eth0 # Replace with your interface
Then check which driver is bound:
lspci -vvs 02:00.0 | grep "Kernel driver" # Use actual PCI id
If it shows a kernel driver (e.g., ixgbe), unbind it and bind to UIO:
# For DPDK-style binding
dpdk-devbind.py -b igb_uio 02:00.0
# Or manually
echo 0000:02:00.0 > /sys/bus/pci/drivers/ixgbe/unbind
echo 0000:02:00.0 > /sys/bus/pci/drivers/uio_pci_generic/bind
To resolve this issue, execute the following steps in order:
The job’s user needs read/write access:
sudo chown root:yourgroup /dev/uio0
sudo chmod 660 /dev/uio0
# Or add user to the group that owns it (often "uio" or "root")
Why would creating a memory address involve an IP address? This suggests the software is:
Thus, the error means: The system tried to locate a network device by its IP and link, then map its MMIO region into userspace via UIO, but that mapping failed.
Before diving into fixes, it’s crucial to dissect the error message into its core components: