Building LimeSuite on Centos 7

The Problem

  • Error compiling LimeSuite - SUCCESS

SoapySDR

cd /tmp
git clone https://github.com/pothosware/SoapySDR.git
cd SoapySDR
rm -fr build
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/ ..
make -j4
sudo make install
sudo ldconfig #needed on debian systems
SoapySDRUtil --info #test SoapySDR install

Dependencies for LimeSuite

sudo yum install sqlite sqlite-devel -y
sudo yum install cmake3 -y
sudo yum install gnuplot -y

wxWidgets 3.1.0

cd ~/bin/
wget https://github.com/wxWidgets/wxWidgets/releases/download/v3.1.0/wxWidgets-3.1.0.tar.bz2
tar -xf wxWidgets-3.1.0.tar.bz2  
cd wxWidgets-3.1.0/
mkdir -p ~/bin/wxWidgets-staticlib
./autogen.sh 
./configure --with-opengl --disable-shared --enable-monolithic --with-libjpeg --with-libtiff --with-libpng --with-zlib --disable-sdltest --enable-unicode --enable-display --enable-propgrid --disable-webkit --disable-webview --disable-webviewwebkit --prefix=`echo ~/bin/wxWidgets-staticlib` CXXFLAGS="-std=c++0x"
make -j4
sudo make install

LimeSuite

cd /tmp
git clone https://github.com/myriadrf/LimeSuite.git
cd LimeSuite
mkdir builddir && cd builddir
#rm -rf * && ll
#cmake3 ../
cmake3 ../ -DwxWidgets_USE_STATIC:BOOL=ON -DwxWidgets_CONFIG_EXECUTABLE:FILEPATH=~/bin/wxWidgets-staticlib/bin/wx-config

make -j4
sudo make install
sudo ldconfig #needed to work on my centos 7

# enable non-root users to access usb-based devices like the LimeSDR
cd ../udev-rules
sudo ./install.sh

Test SoapySDR and LimeUtil

$ LimeUtil --find
* [LimeSDR-USB, media=USB 3.0, module=STREAM, addr=1d50:6108, serial=0009062000C51A1B]
$ SoapySDRUtil --find="driver=lime"
######################################################
## Soapy SDR -- the SDR abstraction library
######################################################

Found device 0
  addr = 1d50:6108
  driver = lime
  label = LimeSDR-USB [USB 3.0] 9062000C51A1B
  media = USB 3.0
  module = STREAM
  name = LimeSDR-USB
  serial = 0009062000C51A1B
1 Like

Probably not it … but check wxwidgets are installed

Perhaps you are building against a version of wxwidgets, from what I see in cmake output and make output, that is too old given the function signature/match error during build

wxWidgets_INCLUDE_DIRS: /usr/lib64/wx/include/gtk2-unicode-release-> 2.8;/usr/include/wx-2.8

/tmp/LimeSuite/src/oglGraph/dlgMarkers.cpp: In member function ‘void dlgMarkers::AddMarker(int)’:
/tmp/LimeSuite/src/oglGraph/dlgMarkers.cpp:75:79: error: no matching function for call to ‘wxString::Format(const char [4], int&)’
wxCheckBox* chk = new wxCheckBox(pnl, markerId, wxString::Format(“M%i”, id));

The LimeSuite build example shows wxWidgets 3.1, so try a 3.x instead–

-DwxWidgets_ROOT_DIR=C:/wxWidgets-3.1.0 ^
-DwxWidgets_LIB_DIR=C:/wxWidgets-3.1.0/lib/vc140_x64_lib ^

1 Like

That makes sense. They will probably need to uninstall the wx2.8 packages and then install wxWidgets 3.1.0 package for RedHat/Fedora/OpenSuse/CentOS (ref: https://www.wxwidgets.org/downloads/ ). Or install from source, but either way you will need to uninstall the existing wxWidgets developer packages, the runtime libraries should be fine to be left in place.

Yes, the problem was with the version of wxWidgets. Downloaded and compiled wxWidgets 3.1.0, added this version to cmake options and everything is good now.

Updated the post with details.

What are the steps to update the firmware?

What I tried

Command Line update

$ LimeUtil --update
Connected to [LimeSDR-USB [USB 3.0] 9062000C51A1B]
[WARNING] Gateware version mismatch!
  Expected gateware version 2, revision 8
  But found version 2, revision 6
  Follow the FW and FPGA upgrade instructions:
  http://wiki.myriadrf.org/Lime_Suite#Flashing_images
  Or run update on the command line: LimeUtil --update

[INFO] Estimated reference clock 30.7197 MHz
[INFO] Selected reference clock 30.720 MHz

Programming update failed! : ProgramWrite length should be > 0

LimeSuiteGUI

Manually downloaded firmware LimeSDR-USB_HW_1.4_r2.8.rbf from http://downloads.myriadrf.org/project/limesuite/17.06/

LimeSuiteGUI root

Started GUI as root user. The program is downloading from location that does not exist - there is no 17.07 in http://downloads.myriadrf.org/project/limesuite/

Hi,
when doing manual update you need to select programming mode: ‘Bitstream to Flash’

Thanks bro!

I just ran these procedures on my Centos 7 box using a LimeSDR Mini and it all worked. SoapySDR and LimeSuite all installed, and the USB enable, find, and firmware update all worked:

SoapySDRUtil --find=“driver=lime”
######################################################

Soapy SDR – the SDR abstraction library

######################################################

Found device 0
addr = 24607:1027
driver = lime
label = LimeSDR Mini [USB 3.0] 1D3BD222764182
media = USB 3.0
module = FT601
name = LimeSDR Mini
serial = 1D3BD222764182

I then did a firmware update:

LimeUtil --update
Connected to [LimeSDR Mini [USB 3.0] 1D3BD222764182]
–2018-09-02 10:05:51-- http://downloads.myriadrf.org/project/limesuite/18.06/LimeSDR-Mini_HW_1.1_r1.26.rpd
Resolving downloads.myriadrf.org (downloads.myriadrf.org)… 213.138.113.29, 2001:41c8:51:71d:fcff:ff:fe00:4203
Connecting to downloads.myriadrf.org (downloads.myriadrf.org)|213.138.113.29|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 577536 (564K)

[100%] 303104/303104 Bytes programming: completed (/home/…/.local/share/LimeSuite/images/18.06/LimeSDR-Mini_HW_1.1_r1.26.rpd)
Programming update complete!

I then ran the LimeSuiteGUI it it seems to work as well. Make sure to “connect” to the device, then hit “default”, “reset”, and "gui->chip’, then the fft window fires right up with "start’.

Nice design reuse work Lime team!

2 Likes

I used: LimeUtil --update
successfully and it worked. I see in your attempt after connecting to the LimeSDR-USB you get a message “”[WARNING] Gateware version mismatch!
Expected gateware version 2, revision 8
But found version 2, revision 6"
Perhaps that is where the problem is.
Cheers,
Jon

I was able to go to:
http://downloads.myriadrf.org/project/limesuite/18.10/
Then down load the latest LimeSDR-Mini file (for me it was:
LimeSDR-Mini_HW_1.2_r1.28.rpd 10-Dec-2018 08:09 564K
After it was downloaded, from inside the LimeSuiteGUI application, I “connected” then chose “program” with"automatic" selected, then “program” it all worked.

Cheers,
Jon

Hi,
I tried to follow these instructions same on Centos7, After installation SoapySDR is unable to find the device,

===================================================
SoapySDRUtil --info
######################################################

Soapy SDR – the SDR abstraction library

######################################################

Lib Version: v0.8.0-gf722f9ce
API Version: v0.8.0
ABI Version: v0.8
Install root: /usr/local
Search path: /usr/local/lib64/SoapySDR/modules0.8
Module found: /usr/local/lib64/SoapySDR/modules0.8/libLMS7Support.so (20.01.0)
Available factories… lime
Available converters…

  • CF32 -> [CF32, CS16, CS8, CU16, CU8]
  • CS16 -> [CF32, CS16, CS8, CU16, CU8]
  • CS32 -> [CS32]
  • CS8 -> [CF32, CS16, CS8, CU16, CU8]
  • CU16 -> [CF32, CS16, CS8]
  • CU8 -> [CF32, CS16, CS8]
  • F32 -> [F32, S16, S8, U16, U8]
  • S16 -> [F32, S16, S8, U16, U8]
  • S32 -> [S32]
  • S8 -> [F32, S16, S8, U16, U8]
  • U16 -> [F32, S16, S8]
  • U8 -> [F32, S16, S8]
    ========================================================
    SoapySDRUtil --find=“driver=lime”
    ######################################################

Soapy SDR – the SDR abstraction library

######################################################

No devices found! driver=lime

root@IntelRT-10:/tmp/wxWidgets-3.1.0# LimeUtil --find

root@IntelRT-10:/tmp/wxWidgets-3.1.0#

==================================================================
[46021.287648] usb 1-2: new high-speed USB device number 2 using xhci_hcd
[46021.413881] usb 1-2: New USB device found, idVendor=0403, idProduct=601f, bcdDevice= 0.00
[46021.413887] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[46021.413891] usb 1-2: Product: LimeSDR Mini
[46021.413895] usb 1-2: Manufacturer: Lime Micro
[46021.413899] usb 1-2: SerialNumber: 1D4C298A26D97F

Also do note addtitional dependency of freeglut-devel to compile wxWidgets
yum install freeglut-devel

Do let me know if I am missing any step or if there is updated procedure for lime installation on centos.

Strange. SoapySDR reports that it has LimeSDR support (libLMS7Support.so) and Lime Suite can find the device, so SoapySDR should. Can you try running SoapySDRUtil --find (without drive argument).