作者:BG7YWL@伏宸安全实验室
公众号:伏宸安全实验室

前言

LimeSDR 是一款完全开源的SDR产品,和 HackRF 一样,包括 PCB 设计图,FPGA 代码,HOST代码完全公开,方便研究和学习 SDR 系统原理。虽然市面上有很多 SDR 产品,但很少有像 LimeSDR 性价比这么高的。

LimeSDR 支持 100kHz 到 3.8GHz 频率范围,已经可以不需外置上变频器,即可完成短波应用的使用,另外LimeSDR 是一款完全开源的SDR产品包含了 2×2 MIMO 的支持,满足了大部分应用场景。

通过它的一些应用来了解一下其灵活性:

蜂窝网络、WiFi、蓝牙、IoT协议(LoRa/SigFox等)、导航、气象信息、航空信息、海事信息、空间通信、还有广播和电视。

这只是 LimeSDR 应用场景的一小部分,你可以应用到你能想到的任何领域。

编译环境

软件结构

Lime Suite 是一款支持多种硬件平台的软件,包括LimeSDR,LMS7002M收发器,以及使用基于 LMS7 开发的其他硬件。安装 Lime Suite 可以使许多 SDR 应用程序(如GQRX)可以通过中间适配组件 SoapySDR 适配多种 SDR 设备配合使用。

SoapySDR 是位于 LimeSDR 的驱动程序和 SDR 应用程序之间的胶水层。使用一个简单的包装器 (SoapyLMS7), LimeSDR 可以在任何 SoapySDR 或 Gr-OsmoSDR 支持的应用程序中使用。这包括编程环境, 如 Pothos 框架和 GNU Radio,以及像 GQRX 和 CubicSDR 这样的图形应用程序。

安装UHD

Wiki:http://files.ettus.com/manual/page_build_guide.html

$ sudo apt-get install libboost-all-dev libusb-1.0-0-dev python-mako doxygen python-docutils cmake build-essential git
$ git clone https://github.com/EttusResearch/uhd
$ cd uhd
$ cd host && mkdir build && cd build
$ cmake ../
$ make -j5
$ sudo make install
$ sudo ldconfig
安装SoapySDR

Wiki:https://github.com/pothosware/SoapySDR/wiki/BuildGuide

$ sudo apt-get install cmake g++ libpython-dev python-numpy swig
$ git clone https://github.com/pothosware/SoapySDR.git
$ cd SoapySDR
$ git pull origin master
$ mkdir build && cd build
$ cmake ..
$ make -j5
$ sudo make install
$ sudo ldconfig
安装SoapyUHD

Wiki:https://github.com/pothosware/SoapyUHD/wiki

$ git clone https://github.com/pothosware/SoapyUHD.git
$ cd SoapyUHD
$ mkdir build && cd build
$ cmake ..
$ make
$ sudo make install
安装LimeSuite

Wiki:http://wiki.myriadrf.org/Lime_Suite

$ sudo add-apt-repository -y ppa:myriadrf/drivers
$ sudo apt-get update
$ sudo apt-get install git g++ cmake libsqlite3-dev libsoapysdr-dev libi2c-dev libusb-1.0-0-dev libwxgtk3.0-dev freeglut3-dev
$ git clone https://github.com/myriadrf/LimeSuite.git
$ cd LimeSuite
$ mkdir builddir && cd builddir
$ cmake ../
$ make -j5
$ sudo make install
$ sudo ldconfig

输入下列命令使非ROOT用户可以访问LimeSDR这样基于USB的设备

$ cd LimeSuite/udev-rules
$ sudo sh ./install.sh

安装上述驱动后,运行命令检查驱动是否安装成功

然后查看能不能找到设备

安装GNU Radio、gr-osmosdr

Wiki:https://www.gnuradio.org/doc/doxygen/build_guide.html

从源码构建

$ sudo apt-get -y install git-core cmake g++ python-dev swig \
$ pkg-config libfftw3-dev libboost-all-dev libcppunit-dev libgsl0-dev \
$ libusb-dev libsdl1.2-dev python-wxgtk3.0 python-numpy \
$ python-cheetah python-lxml doxygen libxi-dev python-sip \
$ libqt4-opengl-dev libqwt-dev libfontconfig1-dev libxrender-dev \
$ python-sip python-sip-dev python-qt4 python-sphinx libusb-1.0-0-dev \
$ libcomedi-dev libzmq-dev
$ git clone --recursive https://github.com/gnuradio/gnuradio.git
$ cd gnuradio && mkdir build && cd build
$ cmake ../
$ make -j5
$ make test
$ sudo make install

安装gr-osmosdr支持包 Wiki:http://osmocom.org/projects/gr-osmosdr/wiki

$ sudo apt-get install libsoapysdr-dev gr-fcdproplus
$ git clone git://git.osmocom.org/gr-osmosdr
$ cd gr-osmosdr && mkdir build && cd build/
$ cmake ../
$ make
$ sudo make install
$ sudo ldconfig

安装之后,会看到Soapysdr support在Gnuradio enabled里

测试LimeSDR接收、发射通道

GNU Radio和gr-osmosdr安装完成后,我们加载一个接收信号的grc流程图

Grc流程图下载地址:https://1drv.ms/f/s!AsE4BpolygfCjGfspV7_Gno3rpy5

RF增益设置为20,IF中频增益设置成12,BB基带增益设置成19

天线设置为LNAL 对应的是RX Channel 0

然后运行,按下遥控钥匙,可以看到成功接收到433MHz遥控钥匙的信号,说明GNU Radio和gr-osmosdr安装没有问题。

测试通完接收通道后,我们测试下发射通道,做一个小型FM电台试试

*注意请在不干扰正常无线通讯的基础上进行实验

在另一台电脑上打开SDRSharp将FM频率调到104MHz可以明显看到我们发射的信号


源链接

Hacking more

...