this article introduce install uhd and gnuradio on ubuntu 16.04

if you are from China you can download ubuntu 16.04 livecd which has been install uhd and gnuradio.

and you can go to step 4. the livecd url: extract code: zs09


1. install uhd

ubuntu 16.04 apt-get have uhd package but it is old version.

if you are from China, I suggest you change apt-get source to other. I use 清华大学 source which work fine for me, open /etc/apt/sources.list and replace all the content as below:

# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
deb xenial main restricted
deb xenial-updates main restricted
deb xenial universe
deb xenial-updates universe
deb xenial multiverse
deb xenial-updates multiverse
deb xenial-backports main restricted universe multiverse
deb xenial-security main restricted
deb xenial-security universe
deb xenial-security multiverse

run the commands below one by one:

sudo apt-get remove -y uhd
sudo apt-get remove libuhd-dev libuhd003 uhd-host -y
sudo apt-add-repository --remove "deb trusty main"
sudo add-apt-repository ppa:ettusresearch/uhd -y
sudo apt-get update
sudo apt-get -y --allow-unauthenticated install python python-tk libboost-all-dev libusb-1.0-0-dev
sudo apt-get -y --allow-unauthenticated install libuhd-dev libuhd003 uhd-host

download usrp firmware:

sudo uhd_images_downloader


2. install other required package for gnuradio

sudo apt-get -y install git swig cmake doxygen build-essential libboost-all-dev libtool libusb-1.0-0 libusb-1.0-0-dev libudev-dev libncurses5-dev libfftw3-bin libfftw3-dev libfftw3-doc libcppunit-1.13-0v5 libcppunit-dev libcppunit-doc ncurses-bin cpufrequtils python-numpy python-numpy-doc python-numpy-dbg python-scipy python-docutils qt4-bin-dbg qt4-default qt4-doc libqt4-dev libqt4-dev-bin python-qt4 python-qt4-dbg python-qt4-dev python-qt4-doc python-qt4-doc libqwt6abi1 libfftw3-bin libfftw3-dev libfftw3-doc ncurses-bin libncurses5 libncurses5-dev libncurses5-dbg libfontconfig1-dev libxrender-dev libpulse-dev swig g++ automake autoconf libtool python-dev libfftw3-dev libcppunit-dev libboost-all-dev libusb-dev libusb-1.0-0-dev fort77 libsdl1.2-dev python-wxgtk3.0 git-core libqt4-dev python-numpy ccache python-opengl libgsl-dev python-cheetah python-mako python-lxml doxygen qt4-default qt4-dev-tools libusb-1.0-0-dev libqwt5-qt4-dev libqwtplot3d-qt4-dev pyqt4-dev-tools python-qwt5-qt4 cmake git-core wget libxi-dev gtk2-engines-pixbuf r-base-dev python-tk liborc-0.4-0 liborc-0.4-dev libasound2-dev python-gtk2 libzmq-dev libzmq1 python-requests python-sphinx libcomedi-dev python-zmq python-setuptools


3. download gnuradio source code and build

git clone --recursive

checkout 3.7 release:

git checkout remotes/origin/maint-3.7

build. just run following commands one by one:

mkdir build
cd build
cmake ../
sudo make install
sudo ldconfig


4. after installation you can open gnuradio by this command:


if you want to run fft to test usrp. just run:

sudo uhd_fft -f 900M --spec A:A

if you want to swich to B channel then modify the command as

sudo uhd_fft -f 900M --spec A:B