Skip to content

v1.0-rel2021.05.07

Latest
Compare
Choose a tag to compare
@carlesfernandez carlesfernandez released this 07 May 21:43
· 64 commits to main since this release
v1.0-rel2021.05.07
714b496

docker-pybombs-gnsssdr

DOI

This is the first release of docker-pybombs-gnsssdr.

This repository contains a Dockerfile that creates a Docker image with GNSS-SDR and its dependencies installed via PyBOMBS. This includes GNU Radio and drivers for a wide range of RF front-ends through UHD, [gr-osmosdr] (https://osmocom.org/projects/gr-osmosdr/wiki/GrOsmoSDR), and gr-iio.

The software snapshot was taken on 2021/05/07.

This image uses baseimage-docker, a special Docker image that is configured for correct use within Docker containers. It is Ubuntu, plus:

  • Modifications for Docker-friendliness.
  • Administration tools that are especially useful in the context of Docker.
  • Mechanisms for easily running multiple processes, without violating the Docker philosophy.
  • Reduced footprint on RAM.

If you still have not done so, install Docker and verify your installation before proceeding to use or build the Docker image.

Pull docker image

You can download (pull) the image from the Docker Hub via the following command:

 $ docker pull carlesfernandez/docker-pybombs-gnsssdr:v1.0-rel2021.05.07

Run docker image

Run:

$ docker run -it carlesfernandez/docker-pybombs-gnsssdr:v1.0-rel2021.05.07

Run with access to a folder in the host machine

Maybe you want to include a local folder with GNSS raw data to process in your container, or to extract output files generated during its execution. You can do that by running the container as:

$ docker run -it -v /home/user/data:/data carlesfernandez/docker-pybombs-gnsssdr

This will mount the /home/user/data folder in the host machine on the /data folder inside the container, with read and write permissions.

Run with graphical environment:

  • On GNU/Linux host machines

    Install the X11 server utilities in the host machine:

    • Debian: apt-get install x11-xserver-utils
    • Ubuntu: apt-get install x11-xserver-utils
    • Arch Linux: pacman -S xorg-xhost
    • Kali Linux: apt-get install x11-xserver-utils
    • CentOS: yum install xorg-xhost
    • Fedora: dnf install xorg-xhost
    • Raspbian: apt-get install x11-xserver-utils

    Each time you want to use the graphical environment, adjust the permission of the X server in the host by the following command:

    $ xhost +local:root
    

    Then run the container with:

    $ docker run -e DISPLAY=$DISPLAY -v $HOME/.Xauthority:/root/.Xauthority \
    --net=host -it carlesfernandez/docker-pybombs-gnsssdr
    

    In case you want to revoke the granted permission:

    $ xhost -local:root
    
  • On macOS host machines

    Do this once:

    Each time you want to use the graphical environment, type in the host machine (with XQuartz already running):

    $ xhost + 127.0.0.1
    

    Then run the container with:

    $ docker run -e DISPLAY=host.docker.internal:0 -v $HOME/.Xauthority:/root/.Xauthority \
    --net=host -it carlesfernandez/docker-pybombs-gnsssdr
    
  • Test it!

    In the container:

    root@ubuntu:/home# gnuradio-companion
    

Build docker image

This step is not needed if you have pulled the docker image. If you want to build an updated Docker image on your own, go to the repository root folder and run the following command:

 $ docker build -t carlesfernandez/docker-pybombs-gnsssdr .

You can change the tag name carlesfernandez/docker-pybombs-gnsssdr at your own preference.

Copyright and License

Copyright: © 2017-2021 Carles Fernández-Prades, CTTC. All rights reserved.

The content of this repository is released under the MIT license.

Acknowledgements

This work was partially supported by the Spanish Ministry of Science, Innovation, and Universities through the Statistical Learning and Inference for Large Dimensional Communication Systems (ARISTIDES, RTI2018-099722-B-I00) project.