A standard installation of GNU Radio 3.10 contains a vast array of functionality, but you can add quite a bit more with a few minutes of additional work. These Out Of Tree (OOT) modules expand the functionality of GNU Radio in ways that are valuable for people learning to use the software as well as experienced users. I provide a BASH script that installs these modules on my GitHub page, and recommend my students perform this installation before attending my classes.
What the Script Installs
The install script is located here, and you should definitely take a look it before running, as it does required admin privileges to run:
https://github.com/paulgclark/grc-install/blob/master/install_scripts/flabs_training_setup_24_04.sh
The script installs the following:
- GNU Radio 3.10.9.2
- Standard Ubuntu packages required for building the OOT modules
- UHD support, including a download of the images required
- PlutoSDR support
- LimeSDR support
- The UDEV rules required to access your SDR hardware in user mode
- gr-satellites
- gr-reveng
- gr-fosphor
- A snap containing PyCharm Community Edition
- A snap with Universal Radio Hacker, including USB access to the snap
Install Process
There are three steps for installing this on your Ubuntu 24.041 machine:)
- Clone my GitHub repository
- Run the script
- Reboot and log in using Xorg display server
First, install git if you haven’t already:
sudo apt install git
Next, change to the install scripts directory and run the BASH script:
git clone https://github.com/paulgclark/grc-install
cd grc-install/install_scripts
./flabs_training_setup_24_04.sh
When the script completes, reboot. Then click your login icon. Before entering your password and completing your login, click the little gear in the bottom right of your screen to select “Ubuntu on Xorg”:
Complete your login, and you’re done! You will only need to select Xorg once – all subsequent logins will default to Xorg unless you change it back.
Testing Your Installation – Software
All of the test flowgraphs are contained in the grc subdirectory of the grc-install repo you cloned earlier. Change to that directory before proceeding2:
cd ~/grc-install
Running the following flowgraph will test GNU Radio Companion, as well as gr-satellites and gr-reveng:
gnuradio-companion grc/gfsk_loopback_sim.grc
After the flowgraph loads, click the Execute button in the toolbar (it looks like a Play ▶️ button). If the installation went well, you’ll see a stream of messages stating “It works!” in the bottom left console. You can close the execution window to kill the simulation.
Testing Your Installation – Pluto SDR Drivers
If you have a PlutoSDR, you can test that hardware support was correctly installed by plugging in your SDR hardware, then bringing up an FM receiver flowgraph with:
gnuradio-companion grc/pluto/fm_rx_hw_pluto.grc
Running the flowgraph will bring up a window that allows you to tune the FM receiver. Use the slider to select the frequency of a station known to broadcast in your area3 to listen.
Testing Your Installation – USRP/UHD SDR Drivers
If you have a USRP SDR, you can test that hardware support was correctly installed by plugging in your SDR hardware, then bringing up an FM receiver flowgraph with:
gnuradio-companion grc/uhd/fm_rx_hw_uhd.grc
Running the flowgraph will bring up a window that allows you to tune the FM receiver. Use the slider to select the frequency of a station known to broadcast in your area to listen.
Testing fosphor
Foshpor is an incredible visualization tool, but it can be tricky to set up depending on your CPU and graphics hardware. To see if your installation has worked, you can run one of the following flowgraphs:
gnuradio-companion grc/fosphor/fosphor-pluto.grc
gnuradio-companion grc/fosphor/fosphor-uhd.grc
You may need to click the corner of the execution window and stretch it out to see the display properly:
- This process is intended only for Ubuntu 24.04 computers running on x64 CPUs – no promises if you try it on a different platform ↩︎
- I’m assuming you cloned grc-install into your home directory. If you put it somewhere else, adjust your path accordingly. ↩︎
- For example, 98.1 FM would be entered as “98.1M” after which you would hit the Enter key ↩︎