This is an old revision of the document!
GNU Radio comes pre-installed on the SD card image that ships with the AD-FMCOMMS2-EBZ, AD-FMCOMMS3-EBZ, AD-FMCOMMS4-EBZ, ARRADIOand AD-FMCOMMS5-EBZ, as well as the gr-iio blocks. Gnu Radio can also be compiled for a host PC.
On Ubuntu 16.04 or newer GNU Radio can be installed from the package management. The installed version should be compatible with the gr-iio package build from source. Libiio and gr-iio may also be available from the package management, but to get the latest and most feature complete work, it’s recommend to build it from the latest github sources.
apt-get -y install gnuradio-dev libxml2 libxml2-dev bison flex cmake git libaio-dev libboost-all-dev swig
git clone https://github.com/analogdevicesinc/libiio.git cd libiio cmake . make sudo make install cd ..
git clone https://github.com/analogdevicesinc/libad9361-iio.git cd libad9361-iio cmake . make sudo make install cd ..
git clone https://github.com/analogdevicesinc/gr-iio.git cd gr-iio cmake . make sudo make install cd .. sudo ldconfig
GNURadio will recommend you include
/usr/local/lib${type}/python${PYVER}/site-packages/gnuradio
or
/usr/local/lib${type}/python${PYVER}/dist-packages/gnuradio
in your PYTHONPATH during installation. If this is not the case you will need to modify the cmake command for the gr-iio configuration above with:
cmake -DCMAKE_INSTALL_PREFIX=/usr .
For certain binary installs of GNU Radio, python binding are placed in a competing folder to GNU Radio's built-in blocks. This may require you to manualy copy blocks between the /usr/lib and /usr/local/lib. If you receive import error for iio_swig this is likely the case. To remedy this move the blocks between the necessary folders:
cp -r /usr/local/lib/python2.7/dist-packages/gnuradio/iio /usr/lib/python2.7/dist-packages/gnuradio/
This is due to the iio python blocks being placed in the gnuradio subfolder. This is required since the iio language binding for python would overwrite these blocks.
The gr-iio blocks can be installed using PyBombs or if you have GNURadio already installed from source go to the “Download and build libiio” step above.
GNURadio and the gr-iio blocks are installed by default on the latest ADI image. If you want to install GNURadio on your host consult the official GNURadio Wiki.
A complete GNU Radio installer with gr-iio support is provided for Windows 7/10. Please read the entire linked page before installing.
Although the GNU Radio block is called “FMCOMMS-2”, it will work with the any of the AD-FMCOMMS[234], ADRV9361, ADRV9364, ADRV9363 or ARRADIO boards. The FMCOMMS-2 IIO blocks can run over the IP network or USB. By setting the “IIO context URI” parameter to the IP address of the target board, you can stream samples from/to the remote board. It should be preferred when possible, as it is faster, knowing that the target board does not have the processing power of your PC.
Several sample flow graphs that use the FMCOMMS-2/3/4 IIO blocks are provided in our GNU Radio repository. They can be found in the “iio-example” folder.
The current recommended way to use GNU Radio under Windows is with the Windows Subsystem for Linux (WSL). To install WLS follow the instructions from Microsoft here: https://docs.microsoft.com/en-us/windows/wsl/install-win10 . Please install Ubuntu when selecting an operating system.
Once Ubuntu is up and running go to GNU Radio install section above and proceed with “the preferred way” install, which will be much faster than pybombs.
Once all the blocks are installed an X11 server will need to be install on Windows itself so we can use GNU Radio's GUI tools. Download and install Xming in Windows.
Next back in Ubuntu, add the following to your .bashrc file:
DISPLAY=:0.0 export DISPLAY
Then in Ubuntu source the file with command
source ~/.bashrc
Next, launch Xming in Windows which should only add an icon to your taskbar tray.
Finally, launch GNU Radio Companion from Ubuntu with command
gnuradio-companion
This should launch the familar GUI for GNU Radio.