I'm currently working on getting an Ettus X310 Software-defined-radio (SDR) to work with Docker on Ubuntu 24.04 or 22.04.
My first goal was to create a docker container that finds the SDR using the uhd_find_devices command.
This command does not find the device, which is connected via ethernet, on both operating systems.On Ubuntu 22.04, I can ping the SDR and get a response. This doesn't work on 24.04.
The host can however find the device.
I'm using the official dockerfile provided by Ettus which is quite old:https://github.com/EttusResearch/ettus-docker/blob/master/ubuntu-uhd/Dockerfile
I also tried making my own dockerfile which lets me build the image, however in the container it gives me the same problems as the old official dockerfile.
FROM ubuntu:24.04ENV DEBIAN_FRONTEND=noninteractiveRUN apt-get update && \ apt-get install -y software-properties-common && \ add-apt-repository ppa:ettusresearch/uhd && \ apt-get update && \ apt-get install -y libuhd-dev uhd-host && \ apt-get clean && \ rm -rf /var/lib/apt/lists/*
It's hard to provide steps to reproduce, as this requires the X310 SDR to test.
My run parameters:
docker run -t -d --privileged --network host uhd-ubuntu:22.04 /bin/bash
The uhd_find_devices command should list my X310 with relevant information such as driver date, IP-address
My guess is some security updates with Ubuntu 22.04 / 24.04 are preventing the communication of data in Docker via ethernet, but I'm not sure. Maybe someone here has an idea?
If you need any additional information please let me know.