LinuxInstall

The recommended way to install GNU Radio on most platforms is using already available binary packages. Find your platform below in the From Binaries section for instructions on how to get GNU Radio through your regular package manager (e.g. Ubuntu PPA Installation), or visit the Conda Installation page for instructions on how to use the Conda package manager to install GNU Radio on any Linux distribution, macOS, or Windows. For some platforms there are no binaries provided by available package managers or the GNU Radio project. In these cases please contact the maintainer of the package manager or the GNU Radio project to find a sensible way to provide binaries for your platform.

From Binaries
Most distributions contain a package named  or similar in their standard repositories. For most use cases it is enough to install this package and start developing.

The development of GNU Radio can be fast-paced, and binaries provided by your distribution may be outdated. '''Do check if the version you're installing is up to date! Sometimes old versions are not updated in the packaging systems.''' If you find a bug in a older GNU Radio version, please check if the bug still exists in the newer version of GNU Radio before filing a new issue.

If the version shipped in your distribution is outdated please contact the corresponding maintainer to update it in the packaging system.

Distributions and Commands
Here are examples of how to install GNU Radio in various Linux distributions. Click the link under &quot;Distribution&quot; for how to install dependencies.

On other distributions, simply use the appropriate package management command to install the  package and then please add it to this list. If you need newer versions or have a different platform please contact the package maintainer of your distribution or raise your issue on the mailing list.

Ubuntu PPA Installation
For Ubuntu, the latest builds (both released and pulled from master branch) are maintained as PPAs on launchpad. Be sure to uninstall any previously installed versions of gnuradio first. See UnInstallGR.

To access the current released version (3.10), add the gnuradio/gnuradio-releases ppa (removing other gnuradio ppas if already configured)

$ sudo add-apt-repository ppa:gnuradio/gnuradio-releases

To access the 3.9 released version, add the gnuradio/gnuradio-releases-3.9 ppa (removing other gnuradio ppas if already configured)

$ sudo add-apt-repository ppa:gnuradio/gnuradio-releases-3.9

To access the 3.8 released version, add the gnuradio/gnuradio-releases-3.8 ppa (removing other gnuradio ppas if already configured)

$ sudo add-apt-repository ppa:gnuradio/gnuradio-releases-3.8

To access the 3.7 released version (legacy), add the gnuradio/gnuradio-releases-3.7 ppa (removing other gnuradio ppas if already configured)

$ sudo add-apt-repository ppa:gnuradio/gnuradio-releases-3.7

Then, update the apt sources, and install gnuradio $ sudo apt-get update $ sudo apt install gnuradio

Attention: Do NOT try to install further packages like `gr-osmosdr` via Ubuntu's package management (i.e. using "apt"). Ubuntu will try to install a potentially incompatible version and your system will be in an undefined state. Instead, please first open GNURadio-Companion, and in the right-hand side block list, open "Soapy" -> "Source" or "Sink", to see whether the hardware you are most likely using is already integrated.

Note on 3.10 packaging dependency For some distributions you may need to install the python module 'packaging' using pip (which may also need to be installed).

$ sudo apt install python3-pip $ pip install packaging

Modtool on Ubuntu
NOTE: On released builds for Ubuntu 18.04 (bionic), there is an issue using gr_modtool after GNU Radio has been installed from the PPA. This is due to byte-compiled code that remains in the modtool templates after installation. To work around this issue:

$ cd /usr/share/gnuradio/modtool/templates/gr-newmod $ sudo py3clean.

This issue does not appear for Ubuntu 19 and later packages

Fedora COPR Installation
NOTE: FEDORA COPR is not currently maintained.

Packages are available for Fedora 29, 30, 31 hosted under COPR:

https://copr.fedorainfracloud.org/coprs/gnuradio/

1. Add the repository:

-- For the latest released version: $ sudo dnf copr enable gnuradio/gnuradio-releases -- For the latest pull from git master: $ sudo dnf copr enable gnuradio/gnuradio-master

2. Install GNU Radio $ sudo dnf install gnuradio

= From Source =

Binary installation should be sufficient for most users, and certainly for anyone who is new to GNU Radio. However, if you have special requirements, want the latest version, or the binary packages are not working for you, you may want to install GNU Radio from source. But note that running and developing out-of-tree modules does NOT require GNU Radio to be installed from source.

For GNU Radio 3.10, 3.9, and Main Branch
This section describes how to install GNU Radio 3.10, 3.9, and the Main branch from source code.

Installing Dependencies
Refer to the table above for your specific Linux distro to find how to install dependencies. For example, on Ubuntu 22.04 use this page.

Installing UHD
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.

Installing Volk
Since Volk is no longer considered as a submodule of GNU Radio (GNU Radio commit #80c04479da962d048d41165081b026aafdaa0316), you MUST FIRST install Volk, and then install GNU Radio.

The basic idea is the same, but instead of building Volk along with GNU Radio, you need to clone and build it separately. For this example, we will start in the home directory. You can, of course, use any directory you wish and the results will be the same.

Note: In the following command, you can add  to install Volk into the PREFIX  ; if not specified, then the PREFIX is. See other CMake options in Common cmake flags.

If you're running Linux, then always remember to do the following command after installing any library:

Installing GNU Radio
Note: If you want to build the  or   branch rather than the default   branch, enter: or  and then Note: In the following command, you can add  to install GNU Radio into the PREFIX  ; if not specified, then the PREFIX is. See other CMake options in Common cmake flags. Note: In the following command, it is very possible that not all tests pass. Generally any error is a sign of a missing dependency such as the Python interface to ZMQ or NumPy or SciPy, none of which are required for building GNU Radio but are required for testing. If you're running Linux, then always remember to do the following command after installing any library: As an optional step to increase performance, we recommend running the following, although it can take 10-15 minutes and you can always do it later: If you encounter "Cannot import gnuradio" error, then go to Finding the Python library to set your PYTHONPATH and LD_LIBRARY_PATH. After setting these environment variables, you need to do  again for the Linux dynamic library loader to find the just-installed GNU Radio libraries. If you have installed in a custom path with, you will need to add that path to $PATH in order to find gnuradio-companion.
 * (e.g. if you want to use 3 CPU cores during the build. To use 8 do -j8, to use all cores use -j$(nproc), to use 1, leave out the -j flag.)
 * (e.g. if you want to use 3 CPU cores during the build. To use 8 do -j8, to use all cores use -j$(nproc), to use 1, leave out the -j flag.)

Installing Dependencies
Refer to the table above for your specific Linux distro to find how to install dependencies. For example, on Ubuntu 20.04 use this page.

Installing UHD
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.

Installing GNU Radio
For this example, we will start in the home directory; you can, of course, use any directory you wish and the results will be the same.



Note: In the following command, change  to   if you want to build that version.



Note: In the following command, you can add  to install GNU Radio into the PREFIX  ; if not specified, then the PREFIX is. See other CMake options in Common cmake flags.

Note: In the following command, it is very possible that not all tests pass. Generally any error is a sign of a missing dependency such as the Python interface to ZMQ or NumPy or SciPy, none of which are required for building GNU Radio but are required for testing.
 * (e.g. if you want to use 3 CPU cores during the build. To use 8 do -j8, to use all cores use -j$(nproc), to use 1 leave out the -j flag.)
 * (e.g. if you want to use 3 CPU cores during the build. To use 8 do -j8, to use all cores use -j$(nproc), to use 1 leave out the -j flag.)

If you're running Linux, then always remember to do the following command after installing any library:

Go to Finding the Python library to set your PYTHONPATH and LD_LIBRARY_PATH. After setting these environment variables, you need to do  again for the Linux dynamic library loader to find the just-installed GNU Radio libraries. If you have installed in a custom path with, you will need to add that path to $PATH in order to find gnuradio-companion.

For Ubuntu 18.04
An easy way to install GNU Radio 3.8 on Ubuntu 18.04 systems is to use the following commands (note that this skips the setup for UHD hardware):



Once this is done, reboot your computer and GNU Radio should be all set for you.

Common cmake flags
For a list of additional cmake flags, as well as minimum versions of dependencies, see build_guide.html#cmake_options
 * Install the generated code in XXX. For example,  would put the code in ,  , etc.
 * Unless you need more than one version of UHD or Volk, those builds can be done in the standard location.
 * For the system to find 'gnuradio-companion' and other related programs,  must be added to $PATH.
 * 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.
 * This causes gcc to add debug symbols to all binaries. Useful for debugging (otherwise, it decreases efficiency!)
 * 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.