Building UHD Software from Source

Follow the instructions on this page to build and install UHD software from source.


PyBOMBS is a command-line tool for Linuxes (and some Unixes) from the GNU Radio ecosystem and will do a source build of UHD, including setting up prerequisites (regardless of the distribution) with the following command:

$ ./pybombs install uhd

Head to the PyBOMBS Homepage for more instructions. PyBOMBS can install UHD (as well as GNU Radio or similar projects) both into system directories as well as into user's home directories, omitting the requirement for superuser access.

Get the Source Code

The UHD source is stored in a Git repository. To download it, follow these instructions:

git clone git://

If you also want the FPGA code (which is not necessary for building UHD and applications which depend on it), run:

git clone --recursive git://

This will populate the 'fpga-src' submodule inside the repository. You can also do this after cloning the repository by running these commands from the top level source directory:

git submodule init
git submodule update

Our source code is divided into two branches:
  • master: This is the main branch, with updated new features and bug fixes.
  • maint: This branch has all bugfixes since the last major release, but there are no new features. This is what you should be using if you need a 'stable' release.

We might also be publishing experimental feature branches which can then be found in the same repository.

All of our releases are associated with tags in the repository.

Download Prerequisites

Follow the build guide for prerequisites or run one of the quick install commands for Fedora or Ubuntu:


sudo apt-get install libboost-all-dev libusb-1.0-0-dev python-cheetah doxygen python-docutils cmake


sudo yum -y install boost-devel libusb1-devel python-cheetah doxygen python-docutils cmake

Build instructions

  • Follow the Build Guide.
  • Download the firmware and FPGA images necessary to use a USRP device. Instructions are below.

Post-installation tasks

Using a USB-based device?

Firmware and FPGA images

Download Pre-Built Images

For maint and master branch (and in some cases, for development branches) we provide pre-built FPGA images, so you don't need to build them yourself. Unless you're modifying the FPGA image, we strongly advise you to use these images rather than building your own.

You can download images from this location:

UHD Images Downloader

The UHD Images Downloader utility downloads images compatible with the current host code and places them in the default image directory (or a user-specified directory).

For typical Linux installs, you can simply run

$ uhd_images_downloader

on the command line and it will do all you need.

Otherwise, unless you are using a custom install prefix, the UHD Images Downloader can be found in the following locations:

  • Linux: /usr/local/lib/uhd/utils/
  • Windows: C:\Program Files\share\uhd\utils\
  • NOTE: In most instances, you must be a superuser/Administrator to use this feature.

Using the USRP X300/X310 with PCIe

To be able to use USRP X300 or USRP X310 devices over PCIe, follow these instructions:

NOTE: Using the USRP X300/X310 with PCIe is not supported with OS X.