LimeSDR environment installation

A, GNU Radio Introduction

1. What is GNU Radio?

GNU Radio is a fully open source software radio platform, which can be used to design and simulation can also be connected to a real radio system. GNU Radio is a highly modular, using the flow chart in the form of software architecture platform, which itself provides a number of library modules, users can very quickly use these modules to create a flow on signal processing.
## 2. Why use GNU Radio?
In the past, in the development of radio equipment, the engineer must develop a specific signal level detecting circuit, the design of a particular integrated circuit chip capable of decoding or encoding. Software Defined Radio (Software Defined Radio, SDR) modular processing, arithmetic processing radio signals implemented on a computer.
Of course, you can also use your computer to connect to a wireless device from scratch to write algorithms in a program, but this becomes very troublesome: Why do you want to re-execute a standard filter? Why should you care about how to move data between different processing modules? Highly optimized method, rather than write their own is not a good thing? How do you king of your program scales well on architecture, and runs on an embedded device well? Enter GNU Radio: framework for writing applications dedicated computer signal processing. GNU Radio package easy to use and reusable function modules, providing good scalability, but also provides an extensive library of standard algorithms for a variety of common platform.


Two, LimeSuite introduction

LimeSuite is a collection of software supports a variety of hardware platforms, including LimeSDR, LMS7002M transceiver RFIC drivers, and other tools for hardware development LMS7's. Next, specific description LimeSuite components, how it supports LimeSDR, how to adapt to SDR application ecosystem, based on LMS7 transceiver custom applications and new equipment how users use LimeSuite created.
## 1, LMS7002M driver
LimeSuite a variety of driving devices may be connected directly LMS7002M RFIC. A bridge between these drives serve as low-level and advanced SPI bus transaction calls (such as adjustment, gain control and data interface configuration). LimeSuite use LMS7 driver internally to bundle hardware, and provides more advanced second-independent and device interface. In addition. LMS7 driver has made a step C or C ++ API, for developers LMS7002M RFIC-based design.

## 2, LMS7002M C ++ driver
contained in the kit for LMS7 RFIC is a C ++ API. The driver for most of the settings (such as gain, filtering, adjustment) to provide high-level API calls. It also provides several API using a program used for self-calibration, as well as from the SQLite database cache and retrieve calibration results. LimeSuite installation provides all the header files and libraries needed to develop based on this API to create a project.

## 3, LMS7002M C driver


In addition, the kit also contains an embedded C drivers for LMS7, the code base is small enough, entirely written in C language, it can easily be included in the project or compile embedded architecture. The driver has a generally high level call gain, filter and tuning; but does not include a complete self-calibration or database cache.


2, tied Support

Several hardware support module along with LimeSuite bundled together. This includes support for the new LimeSDR, STREAM development board with EVB7 evaluate hardware with Novena LMS7 word cards, and so on. LimeSuite able to support many different hardware support through a single link to the registry and connection interface. This makes the kit can provide drivers, debugging, GUI and application support, regardless of how the underlying hardware.

Connection interface

Abstract connection interface hardware details, C ++ class, such as a call to the underlying USB stack. To create specific motherboard's own custom IConnection overload class, providing a lower control routine implemented (e.g., SPI and register write bus transaction); optionally provide an implementation for streaming transmission and reception. API connection interface flexible enough to handle multiple LMS7 RFIC. A plurality of streams, as well as the burst time and advanced flow control.

Connection registry

The registry is connected to enumerate the available processing device, and each device as IConnection instantiated C ++ class interfaces. Registry using the connection circuit board is substantially specific support modules and examples indicating how to locate LimeSuite handle hardware. Registry supports a variety of hardware identification methods, including continuous, index, interface type and the device node name.

Support for custom hardware

Use Connect API in question, it can support any custom hardware development in the kit. On LimeSuite concerned, there is no difference between the bindings hardware support and custom development. As long as the board in connection registry, it will be supported by a suite of software. Developers can build and install a custom support module for LimeSuite compiler environment, without having to change the kit itself or make any additions.

LimeSuite graphical tool

LimeSuite also provides a graphical interface for selecting available devices, debugging LMS7, mapping and real-time spectrum FPGA image to update the firmware and various devices. A graphical debugger LMS7 can be very useful. Developers can configure the entire LMS7 as a ".ini" file upload and download, and use the buttons, sliders and drop-down menus to LMS7 interactive graphics, and built-in FFT plotter can achieve any circuit board flow linked offer spectrum observed in real time.

3, SDR application program interface

When it comes to other support to LimeSDR hardware interfaces, LimeSDR provides users with many options. Users will get access to low-level and high-level API by Soapy SDR, and SDR ecosystem integration with various API and software applications. Using the above-mentioned connection registry, any device registry can be instantiated in C ++, the configuration and streaming. In addition, LimeSDR provides a C language bindings for C language application.

Soapy SDR Support

The kit comes with a module called Soapy LMS7 support, will bind together SoCySDR library LimeSuite connection and driver API. Soapy SDR as a bridge between the drivers, API, and SDR applications. It provides an API languages ​​(C, C ++, Python), the use of remote access, and bind multiple SDR SDR graphical programming environment and applications transparently through the local network. These applications include GQRX, Pothos, CubicsSDR and GNU Radio

4, to integrate them together

LimeSuite is based Lime RFIC SDR hardware design combined with a binder application ecosystem. Hardware developers can create with the help of hardware debugging tools and driver API. LimeSDR user may interact with other devices and conventional SDR applications. Application developers can create software in a variety of API and programming environment
Here Insert Picture Description

Third, the installation kit LimeSuite

Driver LimeSuite is, first need to install
the following two methods: compiling source code and binary installation
if the binary packages, will be mounted beneath the /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.6/ directory. The use of source compiler installation, the default is the /usr/local/lib/SoapySDR/modules0.6/ below. If both binary installation, and source installation, there will be two LibLMS7 Support.so . While not affecting normal use, but it seems not the same version, it is recommended to use the source code installation.

1, a binary installation, executable

#更新软件包
sudo add-apt-repository -y ppa:myriadrf/drivers    	       
sudo apt-get update
#安装LimeSuite套件
sudo apt-get -y install limesuite liblimesuite17.06-1 liblimesuite-dev limesuite-udev limesuite-images
#安装soapysdr支持,可以使用soapysdr接口
sudo apt-get -y install soapysdr soapysdr-module-lms7

2, the source code to build installation

#先准备好依赖库
sudo add-apt-repository -y ppa:myriadrf/drivers  	       
sudo apt-get update
#install核心库和构建依赖项
sudo apt-get install git g++ cmake libsqlite3-dev
#install硬件支持依赖项
sudo apt-get install libsoapysdr-dev libi2c-dev libusb-1.0-0-dev
#intall图形依赖
sudo apt-get install libwxgtk3.0-dev freeglut3-dev
#源码编译LimeSuite
git clone https://github.com/myriadrf/LimeSuite.git
cd LimeSuite
mkdir builddir && cd builddir
cmake ../
make -j4
sudo make install
sudo ldconfig
#安装成功,LimeSuiteGUI启动LimeSDR的软件图形界面
#接下来保证非root用户能够访问LimeSDR usb设备
cd LimeSuite/udev-rules
sudo ./install.sh

Fourth, the installation SoapySDR

1, added PPA

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

2, install dependencies

sudo apt-get install  cmake g++  libpython-dev python-numpy swig python-dev
sudo apt-get -y install build-essential cmake git-core autoconf automake  libtool g++ python-dev swig pkg-config libfftw3-dev libcppunit-dev libusb-dev sdcc libsdl1.2-dev python-numpy python-cheetah python-lxml doxygen python-qt4 python-qwt5-qt4 libxi-dev libqt4-opengl-dev libqwt5-qt4-dev libfontconfig1-dev libxrender-dev

3, Pothos and toolkits add support

sudo apt-get install pothos-all
sudo apt-get install python-pothos
sudo apt-get install python3-pothos
sudo apt-get install pothos-python-dev

4, the installation Soapy SDR runtime

sudo apt-get install soapysdr
sudo apt-get install python-soapysdr python-numpy
sudo apt-get install python3-soapysdr python3-numpy
sudo apt-get install soapysdr-module-remote soapysdr-server

5, the drive installation Soapy SDR

sudo apt-get install osmo-sdr soapysdr-module-osmosdr
sudo apt-get install rtl-sdr soapysdr-module-rtlsdr
sudo apt-get install bladerf soapysdr-module-bladerf
sudo apt-get install hackrf soapysdr-module-hackrf
sudo apt-get install uhd-host uhd-soapysdr soapysdr-module-uhd
sudo apt-get install umtrx uhd-host uhd-soapysdr soapysdr-module-uhd
sudo apt-get install miri-sdr soapysdr-module-mirisdr
sudo apt-get install soapysdr-module-rfspace
sudo apt-get install airspy soapysdr-module-airspy

6, the test installation

PothosUtil --system-info
SoapySDRUtil --info

Fifth, install GNU Radio

1, the GNU Radio installation dependencies

sudo apt-get -y install git cmake libboost-dev libcppunit-dev libfftw3-dev python-numpy doxygen python-cheetah python-gtk2-dev python-qt4 python-qwt5-qt4 libxi-dev libqt4-opengl-dev libqwt5-qt4-dev python-lxml

2, the installation GNU Radio

sudo apt-get install gnuradio

6, installation gr-osmosdr

1, the first mounting gr-osmosdrd Support Package

sudo apt-get install libsoapysdr-dev
sudo apt install gr-fcdproplus

## 2, clone source code, compiled and installed gr-osmosdr

git clone git://git.osmocom.org/gr-osmosdr
cd gr-osmosdr/
mkdir build
cd build/
cmake ../

Here an error
Here Insert Picture Description

# Solution: Download the boost libraries
apt-cache search boost
search to all the boost library
then:
sudo install for libboost APT-GET-All-dev
installed the appropriate libraries
# This is an error
Here Insert Picture Description
# workaround:
sudo APT-GET install gnuradio- dev

# Here an error
gnuradio version to be> = 3.7.8 solution is as follows: See URL
http://blog.csdn.net/wxsdr/article/details/51966559

make
sudo make install
sudo ldconfig

Seven, gr-osmosdr support GNURadio expansion

gr-osmosdr will support member rear extensions GNURadio cmake
Here Insert Picture Description
if desired extension component image above can be referred to as URL:
http://blog.csdn.net/sinat_38431275/article/details/77367773

Guess you like

Origin blog.csdn.net/proton_boke/article/details/91953673