InstallingGRFromSource on Raspberry Pi
These instructions have been tested with the
Raspbian Buster with desktop and recommended software Operating System on a Raspberry Pi 3B+. A 32GB microSD card is recommended.
If you want to use GNU Radio with a USRP, install the UHD package from source using the following instructions. UHD sits at the same level as GNU Radio as an independent driver, which gr-uhd references. So if you want gr-uhd enabled, you FIRST must clone and install UHD.
Install UHD from source
For this example, we will start in the home directory to parallel the steps in InstallingGR#To_install_system_wide.
The following command line script will install all the required dependencies for UHD:
sudo apt-get install libboost-all-dev libusb-1.0-0-dev python-mako doxygen python-docutils cmake build-essential
Clone the code into your home directory:
git clone git://github.com/EttusResearch/uhd.git
Note: By default, you have the
master branch after you have cloned from git. To get a list of available branches, enter
git branch. To get a list of available tags, enter
git tag -l (that's a lower case L). Use the following command to change to another branch or tag if you want to build a different version.
git checkout <your branch or tag>
Note: Unlike most build processes, UHD builds under the
Note: In the following command, we will use
-DCMAKE_INSTALL_PREFIX=/usr/local to install UHD into the same prefix as GNU Radio. When compiling for ARM platforms, the assumption is made that NEON extensions are available if the arm_neon.h header is found. However, for platforms such as Raspberry Pi, one must specify
-DNEON_SIMD_ENABLE=OFF in the following command.
cmake -DNEON_SIMD_ENABLE=OFF -DCMAKE_INSTALL_PREFIX=/usr/local ../
Note: In the following command, if your computer's CPU has multiple cores, you can use the argument
-j# to speed compilation;
make -j3 will use 3 threads in the build. Specify at least one less than the number of CPU cores so the system does not appear to 'freeze' during the build. If not specified, then a single thread is used for the build; this is not necessarily a bad thing, but it will take roughly 2 times as long to build as using 2 threads, and roughly 3 times as long to build as using 3 threads.
sudo make install
If you're running Linux, then always do the following command after installing any library:
Install GNU Radio
You may have some of these prerequisites already, but it doesn't hurt to get them again and check for the latest versions.
sudo apt update --allow-releaseinfo-change sudo apt upgrade sudo apt install git cmake g++ libboost-all-dev libgmp-dev swig python3-numpy \ python3-mako python3-sphinx python3-lxml doxygen libfftw3-dev \ libsdl1.2-dev libgsl-dev libqwt-qt5-dev libqt5opengl5-dev python3-pyqt5 \ liblog4cpp5-dev libzmq3-dev python3-yaml python3-click python3-click-plugins \ python3-zmq python3-scipy libpthread-stubs0-dev
Set up a swap file
A swap file will improve the compile time greatly.
sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile
To make the swap file permanent, add this line to /etc/fstab
/swapfile none swap sw 0 0
The next steps will take two or more hours. Be patient. The terminal does show the progress.
Click InstallingGR#To_install_system_wide to go to the install instructions.