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
$ sudo apt install pip python-apt
Then upgrade pip to the latest:
$ sudo pip install --upgrade pip
pip to install the gnuradio package manager
$ 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.