SoapySDR not in Myriad-RF repository?

According to

I should install soapysdr with:
sudo apt-get install soapysdr soapysdr-module-lms7

However, soapysdr is not in

Am I missing something?

Did you set up the Myriad-RF PPA as per:

You need to do this first if you want to install SoapySDR and the LMS7 module from packages.

1 Like

Thanks Andrew!

Soapy and LimeSuite successfully recognize the LimeSDR.
However, inside of GNURadio when I am using the Osmocom source block, it reports null source when I have device arguments “soapy=0,driver=lime” or when I dont put any device arguments.
The osmocom block does not list “soapy” as a built in source, which I believe is the issue.
I’m having a lot of trouble trying to make “soapy” a built in source…
Any help is appreciated!


How did you install gr-osmosdr?

Yes, with “sudo apt-get install gr-osmosdr”. I’ve tried it on 4 computers, and it worked on 1 computer because “soapy” was a ‘built-in source’. The ‘soapy’ component was disabled on the other 3 computers. I’m not sure how to install gr-osmosdr such that ‘soapy’ is in the ‘enabled components list’.


Odd. I just checked and my gr-osmosdr is from the Myriad-RF PPA.

With SoapySDR from packages and making sure you also have libsoapysdr-dev installed, you could try removing the gr-osmosdr package and building just this from source.

SoapySDR is technically part of Pothosware and this has its own discussion group, so it could also be worth posting there if you don’t have any luck.!forum/pothos-users


Could you be more specific about which PPA in Myriad-RF you downloaded with “sudo apt-get install gr-osmocom”?

I have Soapy as an enabled component when I install gr-osmocom in the root directory with:
git clone git://
cd gr-osmosdr/
mkdir build
cd build/
cmake …/
sudo make install
sudo ldconfig

…but, when its finished, the osmocom block is not available in gnuradio.

It seems the only way for me to see the component is to install gr-osmosdr in my user name directory, but the osmocom block doesn’t show up as having ‘soapy’ as a built in source.


I meant gr-osmosdr installed from the Myriad-RF GNU Radio PPA:


After installing SoapySDR, LimeSuite, then,
if I do “apt search SoapySDR”, it gives me a list of modules I can install. I installed anything that looked pertinent.
Gnuradio worked, but when I installed gr-osmosdr with:

sudo add-apt-repository ppa:myriadrf/gnuradio
sudo apt-get update
sudo apt-get install gr-osmosdr

GNUradio crashes when I drag the osmocom block into my block diagram.
GNU works as long as the osmocom block is not involved.

Sounds like one for @joshblum.

It seemed to work out of the box for me using the myriadrf ppa we maintain.

Make sure to add all of the ppas listed here:

sudo add-apt-repository -y ppa:bladerf/bladerf
sudo add-apt-repository -y ppa:ettusresearch/uhd
sudo add-apt-repository -y ppa:myriadrf/drivers
sudo add-apt-repository -y ppa:myriadrf/gnuradio
sudo apt-get update

Installing gr-osmosdr package is enough to bring in any dependencies like soapysdr. And in addition you will want soapysdr-module-lms7 and limesuite for limesuite command line utils and soapysdr bindings.

And very importantly, be careful with mixing libraries/packages from source and from package managers. Things in /usr (binaries from package managers) and things in /usr/local (source builds) are usually both in the default search path (modules, runtime libraries, python etc) and its easy to make things crash with ABI issues or python errors. If you follow these rules you should be ok (like in general, not just for projects in this ecosystem):

  1. never install the same piece of software from both apt and from source. Only one must exist at a time
  2. if a software is installed from source, all software dependent on this must also be installed from source
  3. and following rules 1 and 2: if a runtime library is installed from apt, but you need to compile a dependency against it, do install the corresponding -dev development package

So its totally cool to mix and match packages available in the PPA and source builds, but you need to follow the chain of dependencies. People do it all the time to get particular features updated, but to avoid rebuilding the entire kitchen sink. So judging from the comments above, you might have a few things to cleanup/revisit to get your software install sane.

Thanks Josh.
Should an ARM SBC (Odroid) be able to handle the limesdr in gnuradio with the osmocom block?

It is possible to install such driver stack on Odroid ARM boards. Especially XU4 may be worth a shot because of USB 3.0 support (in fact, I have used LimeSDR via GNURadio on this board without any issues). But we can’t really tell whether it will be powerful enough for your application or not :wink:

1 Like

I have an XU4. Could you send me the history of the terminal commands you used to set up LimeSDR via GNURadio? Did you have to use snappy?

My problem is that I can’t get ‘soapy’ to be a built in source in the osmocom block on the Odroid XU4. I’ve gotten it to work on x86 architectures.

Basically you should follow this order of software installation:

  1. SoapySDR
  2. LimeSuite
  3. UHD (optional, or as I see it: highly recommended because of limited functionality of Osmocom sources/sinks)
  4. GNURadio
  5. gr-osmocom
  6. SoapyUHD (as above)

Especially, gr-osmocom should be installed after installing SoapySDR & LimeSuite combo. I believe this is the mistake you made. But you should be able to resolve the issue by reinstalling gr-osmocom now.

My way of making everything work was building from source every software listed above, unfortunately I got no terminal history available at the moment. But there are details instructions how to build all of it.

1 Like

I got 98% finished installing gnuradio from source, but I’m getting hung up at qt. Any suggestions?

[ 98%] Linking CXX executable display_qt
/usr/bin/ld: warning:, needed by /usr/lib/gcc/arm-linux-gnueabihf/5/…/…/…/arm-linux-gnueabihf/, not found (try using -rpath or -rpath-link)
/usr/lib/gcc/arm-linux-gnueabihf/5/…/…/…/arm-linux-gnueabihf/ undefined reference to eglQueryString' /usr/lib/gcc/arm-linux-gnueabihf/5/../../../arm-linux-gnueabihf/ undefined reference toeglCreateContext’
/usr/lib/gcc/arm-linux-gnueabihf/5/…/…/…/arm-linux-gnueabihf/ undefined reference to eglGetDisplay' /usr/lib/gcc/arm-linux-gnueabihf/5/../../../arm-linux-gnueabihf/ undefined reference toeglGetProcAddress’
/usr/lib/gcc/arm-linux-gnueabihf/5/…/…/…/arm-linux-gnueabihf/ undefined reference to eglMakeCurrent' /usr/lib/gcc/arm-linux-gnueabihf/5/../../../arm-linux-gnueabihf/ undefined reference toeglGetConfigAttrib’
/usr/lib/gcc/arm-linux-gnueabihf/5/…/…/…/arm-linux-gnueabihf/ undefined reference to eglDestroyContext' /usr/lib/gcc/arm-linux-gnueabihf/5/../../../arm-linux-gnueabihf/ undefined reference toeglGetError’
/usr/lib/gcc/arm-linux-gnueabihf/5/…/…/…/arm-linux-gnueabihf/ undefined reference to eglChooseConfig' /usr/lib/gcc/arm-linux-gnueabihf/5/../../../arm-linux-gnueabihf/ undefined reference toeglSwapBuffers’
/usr/lib/gcc/arm-linux-gnueabihf/5/…/…/…/arm-linux-gnueabihf/ undefined reference to eglGetConfigs' /usr/lib/gcc/arm-linux-gnueabihf/5/../../../arm-linux-gnueabihf/ undefined reference toeglTerminate’
/usr/lib/gcc/arm-linux-gnueabihf/5/…/…/…/arm-linux-gnueabihf/ undefined reference to eglDestroySurface' /usr/lib/gcc/arm-linux-gnueabihf/5/../../../arm-linux-gnueabihf/ undefined reference toeglCreatePixmapSurface’
/usr/lib/gcc/arm-linux-gnueabihf/5/…/…/…/arm-linux-gnueabihf/ undefined reference to eglCreateWindowSurface' /usr/lib/gcc/arm-linux-gnueabihf/5/../../../arm-linux-gnueabihf/ undefined reference toeglBindAPI’
/usr/lib/gcc/arm-linux-gnueabihf/5/…/…/…/arm-linux-gnueabihf/ undefined reference to `eglInitialize’
collect2: error: ld returned 1 exit status
gr-qtgui/examples/c++/CMakeFiles/display_qt.dir/build.make:149: recipe for target ‘gr-qtgui/examples/c++/display_qt’ failed
make[2]: *** [gr-qtgui/examples/c++/display_qt] Error 1
CMakeFiles/Makefile2:12095: recipe for target ‘gr-qtgui/examples/c++/CMakeFiles/display_qt.dir/all’ failed
make[1]: *** [gr-qtgui/examples/c++/CMakeFiles/display_qt.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs…
Makefile:160: recipe for target ‘all’ failed
make: *** [all] Interrupt

I’m also experiencing the same issue with missing soapysdr in repo.

And yes I have added this repo to PPA:
sudo add-apt-repository -y ppa:myriadrf/drivers

and updated
sudo apt-get update

And still getting:
E: Unable to locate package soapysdr

I’m on Ubuntu 18.04

sudo apt-get install soapySDR

sudo apt-get install soapysdr-module-lms7