InstallingGRFromSource on Raspberry Pi: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
(Initial creation.)
(Major revision with references to other document pages.)
 
(16 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<p>These instructions have been tested with the <q>Raspbian Buster with desktop and recommended software</q> Operating System on a Raspberry Pi 3B+. A 32GB microSD card is recommended.</p>
<!-- InstallingGRFromSource_on_Raspberry_Pi -->
Note that there is a pre-built 32-bit SDR flavored Raspberry Pi OS distro, [https://github.com/luigifcruz/pisdr-image PiSDR] that includes GNU Radio and other SDR utilities.  Alternatively, you can install from source using the steps in the remainder of this page.


== Load prerequisites ==
These instructions have been tested with the <q>Raspberry Pi OS (previously called Raspbian) (32-bit) with desktop and recommended software</q> on a Raspberry Pi 3B+. A 32GB microSD card is recommended.
<p>You may have some of these prerequisites already, but it doesn't hurt to get them again and check for the latest versions.</p>
<pre>
sudo apt-get update --allow-releaseinfo-change
sudo apt-get upgrade
sudo apt-get install git cmake g++ libboost-all-dev libgmp-dev swig python3-numpy
sudo apt-get install python3-mako python3-sphinx python3-lxml doxygen libfftw3-dev
sudo apt-get install libsdl1.2-dev libgsl-dev libqwt-qt5-dev libqt5opengl5-dev python3-pyqt5
sudo apt-get install liblog4cpp5-dev libzmq3-dev python3-yaml
sudo apt-get install libpthread-stubs0-dev
sudo pip3 install click-plugins
sudo apt-get install python3-scipy
</pre>


== Set up a swap file ==
== Set up a swap file ==
<p>A swap file will improve the compile time greatly.</p>
 
A swap file will improve the compile time greatly.
 
<pre>
<pre>
sudo fallocate -l 2G /swapfile
sudo fallocate -l 2G /swapfile
Line 28: Line 19:
</pre>
</pre>


== Clone the gnuradio repository ==
== Load prerequisites ==
<p>The gnuradio directory will be built in the home directory. The current maintenance branch is 'maint-3.8'.</p>
 
<pre>
Before building UHD and GNU Radio, you need to make sure that all the dependencies are installed. For Ubuntu 20.04 [[UbuntuInstall#Install_Dependencies|use this page]].
cd ~/
 
git clone --recursive https://github.com/gnuradio/gnuradio.git
== Install UHD from source ==
git checkout maint-3.8
 
</pre>
<b>If you want to use GNU Radio with a USRP, you FIRST must clone and install UHD</b>.<br> Follow the instructions in [[Draft-AN-445#Building_and_installing_UHD_from_source_code|Install UHD from source]].
 
== Install GNU Radio ==


== Build ==
* For GNU Radio 3.9, 3.10, and the Main branch, click [https://wiki.gnuradio.org/index.php?title=LinuxInstall#Installing_Volk here].
<pre>
* For GNU Radio 3.8, click [https://wiki.gnuradio.org/index.php?title=LinuxInstall#Installing_GNU_Radio_2 here].
cd ~/gnuradio
mkdir build
cd build
</pre>
<p>Here are some common cmake flags you may want to use:
* <code>-DENABLE_GR_XXX=ON</code> This enables (or disables for =OFF) the GNU Radio component named XXX. You might not need all of them, and this way, you can compile quicker.
* <code>-DCMAKE_INSTALL_PREFIX=XXX</code> Install your build into XXX.
* <code>-DCMAKE_BUILD_TYPE=Debug</code> This causes gcc to add debug symbols to all binaries. Useful for debugging (otherwise, it decreases efficiency!)
* <code>-DPYTHON_EXECUTABLE=/usr/bin/python{2,3}</code> This selects the Python version and executable to be used during build time and will determine which Python libraries will be used for building the Python bindings.<br />
For a list of additional cmake flags, as well as minimum versions of dependencies, see https://www.gnuradio.org/doc/doxygen/build_guide.html</p>
<p>This next 'cmake' command is all on one line, starting with cmake and ending with ../</p>
<pre>
cmake -DCMAKE_INSTALL_PREFIX="/usr/local" -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python3 ../
</pre>
<p>The next steps will take two or more hours. Be patient. The terminal does show the progress.</p>
<pre>
make -j3
make test
sudo make install
sudo ldconfig
</pre>

Latest revision as of 02:02, 22 April 2023

Note that there is a pre-built 32-bit SDR flavored Raspberry Pi OS distro, PiSDR that includes GNU Radio and other SDR utilities. Alternatively, you can install from source using the steps in the remainder of this page.

These instructions have been tested with the Raspberry Pi OS (previously called Raspbian) (32-bit) with desktop and recommended software on a Raspberry Pi 3B+. A 32GB microSD card is recommended.

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

Load prerequisites

Before building UHD and GNU Radio, you need to make sure that all the dependencies are installed. For Ubuntu 20.04 use this page.

Install UHD from source

If you want to use GNU Radio with a USRP, you FIRST must clone and install UHD.
Follow the instructions in Install UHD from source.

Install GNU Radio

  • For GNU Radio 3.9, 3.10, and the Main branch, click here.
  • For GNU Radio 3.8, click here.