I thought I would start a separate thread here so that folks who were new to the platform would find it without getting lost.
If you want to use your fancy LimeSDR with gnuradio you can but to do that you need the latest sources rather than the ones that might be run by the package maintainers. I’ve just re-rerun these steps on a fresh Ubuntu install to verify they work as I expect them to.
First, this assumes you have no SDR packages installed (no Soapy, no LimeSuite, no UHD, no gnuradio. Nada zip)
Second it is important to realize that there are two abstraction layers, one called Osmosdr and one called Soapysdr. At present there is a SoapySDR driver that works with OsmoSDR so the linkage is:
LimeSuiteAPI -> Soapy -> Osmocom -> gnuradio
Start this process by installing the python installation tool pip
and python-apt
$ sudo apt install pip python-apt
Then upgrade pip to the latest:
$ sudo pip install --upgrade pip
Then use pip
to install the gnuradio package manager pybombs
.
$ sudo pip install pybombs
Then use pybombs to install the current default recipes
$ pybombs recipes add gr-recipes git+https:://github.com/gnuradio/gr-recipes.git
At this point you can create a directory for your version of gnuradio with this:
$ mkdir prefix
$ pybombs prefix init -a default prefix/default/ -R gnuradio-default
This will download, and build from source, all of the things you need for gnuradio. It may stop if it finds a problem it can’t overcome, for example on my system I had forgotten to remove the uhd-host
package and that version was interfering with the one pybombs wanted to build. But if you have to restart just type
$ pybombs install gnuradio
And it will pick up where it left off. Once it is done and gnuradio is installed you need to add three more things to complete the puzzle
$ pybombs install soapysdr limesuite gr-osmosdr
Now you should be good to go but before you run things you should try some things.
First, there will be a directory called ~/prefix/default
in your home directory at this point with gnuradio in it and a bunch of libraries and some python code. There is also a bit of bash shell script called setup_env.sh
. Before you start you should use the command:
$ source ~/prefix/default/setup-env.sh
This will set the environment variables LD_LIBRARY_PATH, PATH, and PYTHON_PATH so that you will get the version of the commands that were built together.
You can confirm this with the command which LimeUtil
which should return the directory prefix/default/bin
off of your home directory. And LimeUtil --info
should show your LimeSDR connected, and SoapyUtil --find
should find your LimeSDR as well.
If all that works then you can start up gnuradio-companion
or run your gnuradio python code and it should find all of the libraries it needs to run. You won’t need any special PPAs or extra packages installed usually, pybombs
should do all the work for you.