Skip to content

pakar1/docker-gnuradio-ott

Repository files navigation

Docker build for gnuradio with external plugins

The docker's intended to:

  • To allow a stable enviroment for GnuRadio runtime.
  • To allow users a easy way to build GnuRadio OTT modules without messing with their day-to-day system.
  • To allow OTT module developers a simple enviroment when porting from previous version of GnuRadio.

Uses

  • Uses Ubuntu 24.04 as base.
  • Gnuradio 3.10 (from ubuntu repo)

Tested SDR HW

  • HackRF One.

    Should still work for all osmocom enabled drivers in the ubuntu 24.04 package.

Currently compiled Gnuradio modules

OTT modules included from Ubuntu repo

  • gr-air-modes
  • gr-fosphor
  • gr-funcube
  • gr-gsm
  • gr-hpsdr
  • gr-iqbal
  • gr-limesdr
  • gr-osmosdr
  • gr-radar
  • gr-rds

Dockerfiles

  • Dockerfile-ubuntu-base - Ubuntu base and requirements
  • Dockerfile-sdr-apps - SDR related packages from ubuntu-repo.
  • Dockerfile-custom-builds - Source-code builds of gnuradio components.

To build docker-image

$ ./docker_build.sh

To run image

$ ./docker_run.sh

Set module path

Before starting gnuradio-companion the module path must be set manually at the moment.

$ export PYTHONPATH=/usr/lib/python3.12/dist-packages:/usr/lib/python3.12/site-packages:$PYTHONPATH

Shared folder.

  • Create /home/gnuradio on your host and have this as shared storage between container and host. Allows gnuradio settings etc to be saved between builds/sessions.
  • As /home/gnuradio is setup to be shared it will make life easier if you update "Dockerfile-custom-builds" and set the uid to the same UID as your normal user.

TODO's

  • Github actions to build docker images.
  • GnuRadio examples
  • Some type of setup to be able to run network-accessible things such as https://github.com/gnuradio/gr-bokehgui
  • Split up what to be included in the docker-image and make each source-code module install it's own dependencies.