UHD and GNURadio installation

On one hand, the UHD driver is necessary in order to communicate with an USRP device. On the other hand, the development environment GNURadio is also recommended in order to provide several signal processing building blocks operating in a pseudo-real-time fashion.

This documentation explains how to install both UHD and GNURadio from the sources with the help of the PyBombs script. The following prerequisites are assumed in the following:
  • a GNU/Linux operating system ;
  • a user account with administror rights (through sudo) ;
  • an Internet connection (if necessary, set http_proxy and https_proxy environment variables appropriately).

Downloading and configuring PyBombs

Installing and updating PIP

sudo apt-get install python-pip
sudo pip install -U pip
sudo pip install PyBOMBS

Installing PyBOMBS

sudo pip install PyBOMBS

Initiating the default prefix

sudo pybombs prefix init /usr/local -a usrlocal
sudo pybombs config default_prefix /usr/local

Adding recipes

sudo pybombs recipes add gr-recipes git+https://github.com/gnuradio/gr-recipes.git
sudo pybombs recipes add gr-etcetera git+https://github.com/gnuradio/gr-etcetera.git

Installing UHD, GNURadio and other packages

sudo pybombs install uhd gnuradio
sudo ldconfig

UHD configuration

Update the firmware database

In order to make sure that the firmwares are up-to-date, you can run the following instruction.

sudo "/usr/local/lib/uhd/utils/uhd_images_downloader.py" 

Setting up real-time scheduling

Since the UHD needs a high priority of execution, it is recommended to add the following line to /etc/security/limits.conf.

@usrp            -       rtprio          99

Hence, it necessary to create the group usrp and add to this group any user willing to use the USRP hardware.

sudo groupadd usrp
sudo adduser <my-login> usrp

At this time, the user shall close and reopen his session. Inside a shell, he can also issue the following instruction

su - <my-login>

The system is now ready for adding an USRP (see documentation for the appropriate model...).