作者: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 这样的图形应用程序。
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
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
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
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
安装上述驱动后,运行命令检查驱动是否安装成功
然后查看能不能找到设备
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里
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可以明显看到我们发射的信号