SoapySDR not in Myriad-RF repository?

According to https://wiki.myriadrf.org/Lime_Suite#Device_enumeration

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

However, soapysdr is not in https://github.com/myriadrf

Am I missing something?
Thanks,
Matthew

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

https://wiki.myriadrf.org/Lime_Suite#Ubuntu_PPA

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!

Matthew

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ā€™.

Thanks!

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.

https://groups.google.com/forum/#!forum/pothos-users

Andrew,

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://git.osmocom.org/gr-osmosdr
cd gr-osmosdr/
mkdir build
cd build/
cmake ā€¦/
make
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.

Regards,
Matthew

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

https://launchpad.net/~myriadrf/+archive/ubuntu/gnuradio

Andrew,

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: http://wiki.myriadrf.org/Packaging#Ubuntu

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: libEGL.so.1, needed by /usr/lib/gcc/arm-linux-gnueabihf/5/ā€¦/ā€¦/ā€¦/arm-linux-gnueabihf/libQtGui.so, not found (try using -rpath or -rpath-link)
/usr/lib/gcc/arm-linux-gnueabihf/5/ā€¦/ā€¦/ā€¦/arm-linux-gnueabihf/libQtGui.so: undefined reference to eglQueryString' /usr/lib/gcc/arm-linux-gnueabihf/5/../../../arm-linux-gnueabihf/libQtGui.so: undefined reference toeglCreateContextā€™
/usr/lib/gcc/arm-linux-gnueabihf/5/ā€¦/ā€¦/ā€¦/arm-linux-gnueabihf/libQtGui.so: undefined reference to eglGetDisplay' /usr/lib/gcc/arm-linux-gnueabihf/5/../../../arm-linux-gnueabihf/libQtGui.so: undefined reference toeglGetProcAddressā€™
/usr/lib/gcc/arm-linux-gnueabihf/5/ā€¦/ā€¦/ā€¦/arm-linux-gnueabihf/libQtGui.so: undefined reference to eglMakeCurrent' /usr/lib/gcc/arm-linux-gnueabihf/5/../../../arm-linux-gnueabihf/libQtGui.so: undefined reference toeglGetConfigAttribā€™
/usr/lib/gcc/arm-linux-gnueabihf/5/ā€¦/ā€¦/ā€¦/arm-linux-gnueabihf/libQtGui.so: undefined reference to eglDestroyContext' /usr/lib/gcc/arm-linux-gnueabihf/5/../../../arm-linux-gnueabihf/libQtGui.so: undefined reference toeglGetErrorā€™
/usr/lib/gcc/arm-linux-gnueabihf/5/ā€¦/ā€¦/ā€¦/arm-linux-gnueabihf/libQtGui.so: undefined reference to eglChooseConfig' /usr/lib/gcc/arm-linux-gnueabihf/5/../../../arm-linux-gnueabihf/libQtGui.so: undefined reference toeglSwapBuffersā€™
/usr/lib/gcc/arm-linux-gnueabihf/5/ā€¦/ā€¦/ā€¦/arm-linux-gnueabihf/libQtGui.so: undefined reference to eglGetConfigs' /usr/lib/gcc/arm-linux-gnueabihf/5/../../../arm-linux-gnueabihf/libQtGui.so: undefined reference toeglTerminateā€™
/usr/lib/gcc/arm-linux-gnueabihf/5/ā€¦/ā€¦/ā€¦/arm-linux-gnueabihf/libQtGui.so: undefined reference to eglDestroySurface' /usr/lib/gcc/arm-linux-gnueabihf/5/../../../arm-linux-gnueabihf/libQtGui.so: undefined reference toeglCreatePixmapSurfaceā€™
/usr/lib/gcc/arm-linux-gnueabihf/5/ā€¦/ā€¦/ā€¦/arm-linux-gnueabihf/libQtGui.so: undefined reference to eglCreateWindowSurface' /usr/lib/gcc/arm-linux-gnueabihf/5/../../../arm-linux-gnueabihf/libQtGui.so: undefined reference toeglBindAPIā€™
/usr/lib/gcc/arm-linux-gnueabihf/5/ā€¦/ā€¦/ā€¦/arm-linux-gnueabihf/libQtGui.so: 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