LimeSDR Mini with Gqrx on Arch Linux

The LimeSDR Mini is a newer product from the MyriadRF line of SDRs. Its ability to both transmit and receive, decent bandwidth, small form factor, and a reasonable price tag make it a very attractive device for experimentation.

Likely, one of the first things a radio hobbiest will want to do with this device is hook up an antenna, fire up Gqrx, and tune around. Recently I attempted just this, but had some issues getting things setup on an Arch Linux box. It wound up being a bit of a rabbit hole, so it’s worth a note on how I got this setup up and working.

As Github user alexf91 writes in a related gitub issue, the source of the problem is that the “stable” release of gnuradio-osmosdr is nearly 5 years old and horribly out of date. This is the version referenced in the community/gnuradio-osmosdr package, and probably the version most folks will install by default. Thankfully, as alexf91 points out, you can compile a more recent version of gnuradio-osmosdr and then compile gqrx using this newer library, all via AUR.

Compile and Install Gqrx and Dependencies

The order of installation is important here so that the appropriate libraries are available during compilation of the subsequent packages.

If you’re using an AUR utility (pacaur, yay, etc) you can of course do this all in one command, however I find it useful to break bigger things up to make any problems more visible.

1. Install soapysdr and soapylms7-git

soapysdr can be found at community/soapysdr so can be installed via pacmam.

pacman -S soapysdr

soapylms7-git is in AUR.

pacaur -S soapylms7-git

2. Install gr-osmosdr-git and missing libbladerf-git dependency

If you already have the “stable” version of gqrx and gnuradio-osmosdr installed, you will first need to uninstall them.

Before installing gr-osmosdr-git (at the time of this writing) you will need to install the missing dependency libbladerf-git from AUR. If you previously had gnuradio-osmosdr installed, you may be asked if you wish to replace bladerf with libbladerf-git, which you should do. Now you can install gr-osmosdr-git from AUR. If you previously had gnuradio-osmosdr installed, you may be asked if you want to replace airspy with airspy-git, and again you should do this.

pacaur -S libbladerf-git gr-osmosdr-git

This will kick off gnuradio-osmosdr compiling and it may take a bit while it does so.

3. Finally install gqrx-git

gqrx-git can be found in AUR.

pacaur -S gqrx-git

This gets gqrx to compile, this time with all of our updated dependencies. Like the gnuradio-osmosdr compilation, it may take a while.

First Run and Initial Config

If you’ve run gqrx before you may need to remove or archive your old config file

rm ~/.config/gqrx/default.conf


mv ~/.config/gqrx/default.conf ~/.config/gqrx/default.conf.old

At this point you should be able to plug in the LimeSDR Mini and fire up Gqrx. Be sure its plugged into a USB 3.0 port for an optimal experience, and if you’re using a USB cable be sure it’s compatible with USB 3.0. (I was puzzling over why things were weird with my setup for far too long. It wound up being the cable.)

On the first run you will be confronted by the “Configure I/O devices” dialogue. In the device dropdown you will notice an entry for “LimeSDR Mini”. I have had no success in using this option, nor have others on the web as far as I can tell. What does work, however, is telling Gqrx to use Soapy with the lime driver. For that you will need to configure as follows:

 Gqrx Config

  • Set device to “Other…”.
  • Device string should be driver=lime,soapy=0.
  • Initially it may be good to set the bandwidth to 5.00 MHz just to have better visibility of what’s going on, but you should be able to go up to around 30.00 Mhz.
  • Everything else should be good as is.

Note: I have occasionally noticed things being a little buggy with subsequent runs of Gqrx, in which case I delete the config file and run it again.

Now you should be in the main Gqrx screen. Before you kick off the DSP you will need to set which antenna to use on the device. Go into “input controls” and set “Antenna” to LNAW, and you’re good to go!

( || ) ? : NULL