gnuradio和limesdr的學(xué)習(xí)筆記(1)——linux下limesdr的gnuradio 3.8版本環(huán)境搭建
????????
????????說起sdr大家,稍微有點了解的人首先想到的大概是sdruno的這個界面。

????????目前類似的sdr軟件非常多,最主要的幾個功能就是瀑布圖,頻率帶寬調(diào)節(jié),和一些解碼方式的選擇。limesdr在windows下,比較方便的類似軟件是HDSDR,直接下載解壓,都不需要安裝,并把limesdr對應(yīng)的ExtIO_LimeSDR_1.05.dll驅(qū)動文件拷貝到安裝目錄下,就可以使用啦。
????????此外,windows下也提供傻瓜式安裝包,安裝過程確定到底,沒啥可說的,而且就我的使用感覺來說,非常不穩(wěn)定,所以這里直接略去。想玩gnuradio,一個linux系統(tǒng)還是要裝的,無論是處于開發(fā)的方便,穩(wěn)定,還是以后結(jié)合嵌入式來說,都是必須的。
????????首先說一下幾點注意事項,按照官網(wǎng)的說法,limesdr的工具鏈目前完整支持了16.04,18.04,18.8和一些其他的比較知名的linux發(fā)行版,20.04的ubuntu發(fā)行不久,相關(guān)工具正在開發(fā)中。而16.04在20.04版本開始開發(fā)后停止支持了。
????????我個人建議使用vmware安裝ubuntu18.04版本,如果就是用的VMware,那么安裝過程中或安裝后,一定注意要把USB口改成usb3.0。無論windows下,還是linux下,limesdr都只支持usb3.0,只支持usb3.0,只支持usb3.0,重要的事說三遍。不是用usb3.0更好,而是只能用usb3.0,包括電腦接口,虛擬機(jī)設(shè)置,和使用的USB轉(zhuǎn)接線。否則,電腦是無法正常發(fā)現(xiàn)設(shè)備的。如果確實是用虛擬機(jī)的話,分配的資源不要太吝嗇,CPU內(nèi)核和內(nèi)存,尤其是前者不妨多給一點,SDR某些計算的時候還是比較耗費CPU的。
????????然后就可以開始換進(jìn)安裝之旅啦。目前網(wǎng)上其他limesdr的各種linux環(huán)境搭建方法,包括代理商提供的,大都過時,或者有問題,也有因為墻的原因,很難安裝成功,即便勉強能跑通,也容易出一些奇奇怪怪的問題,又或者會安裝上一堆沒用的其他軟件,再就是gunradio安裝的是3.7版本的。當(dāng)然gnuradio似乎也已經(jīng)出到了3.9版本,但是limesdr的插件暫時還沒跟上,后續(xù)出來了,按照我同樣的思路,也應(yīng)該很容易修改。
????????我的安裝思路很簡單,全部編譯安裝。
0,安裝limesdr提供的linux驅(qū)動和測試軟件——LimeSuite.
1,安裝gnuradio 3.8版本。
2,安裝gnuradio 3.8版的limesdr插件——grlime 3.8版。
這個目前還沒有出到3.9版本,所以這是限制我們暫時還不能用gnuradio3.9版本的唯一原因。

0,安裝LimeSuite,正常limesdr教程中,到手都會有一個硬件測試,用的就是這個軟件。某種程度上是一個limesdr硬件資源的直接控制軟件。對于limesdr不熟的人來說,可能也只是做一次測試就丟在一邊了,最小安裝的情況下,可以不裝,不會對gnuradio使用產(chǎn)生什么影響。
git clone https://github.com/myriadrf/LimeSuite.git
cd LimeSuite
git checkout stable
mkdir builddir && cd builddir
cmake ../
make -j4
sudo make install
sudo ldconfig
?在linux下需要下面的額外步驟,打開非root用戶usb操作設(shè)備權(quán)限。
cd ~/LimeSuite/udev-rules
sudo ./install.sh

編譯安裝gnuradio3.8,比起3.7來說,最明顯的優(yōu)化可能是貝塞爾曲線平滑效果。算法和模塊上應(yīng)該也有一些進(jìn)步。最新是3.9,可惜limesdr尚未匹配。
sudo apt install git cmake g++ libboost-all-dev libgmp-dev swig python3-numpy python3-mako python3-sphinx python3-lxml doxygen libfftw3-dev libsdl1.2-dev libgsl-dev libqwt-qt5-dev libqt5opengl5-dev python3-pyqt5 liblog4cpp5-dev libzmq3-dev python3-yaml python3-click python3-click-plugins python3-zmq python3-scipy python3-pip python3-gi-cairo
pip3 install git+https://github.com/pyqtgraph/pyqtgraph@develop
pip3 install numpy scipy
echo 'export PYTHONPATH=/usr/local/lib/python3/dist-packages:usr/local/lib/python2.7/site-packages:$PYTHONPATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/user/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
echo 'export PYTHONPATH=/usr/local/lib/python3/dist-packages:usr/local/lib/python2.7/site-packages:$PYTHONPATH' >> ~/.profile
echo 'export LD_LIBRARY_PATH=/user/local/lib:$LD_LIBRARY_PATH' >> ~/.profile
cd ~/
git clone --recursive https://github.com/gnuradio/gnuradio
cd gnuradio
git checkout maint-3.8
mkdir build
cd build
git pull --recurse-submodules=on
git submodule update --init
cmake -DENABLE_GR_UHD=OFF ..
make -j $(nproc --all)
sudo make install
sudo ldconfig
volk_profile
先安裝一大堆庫,這個gnuradio是匹配python3的??粗鴱?fù)雜,對著復(fù)制粘貼一步步來就可以了。如果是安裝在樹莓派上,最好使用4G內(nèi)存的版本,如果是2G在編譯階段會因為內(nèi)存不足非常的卡。如果卡到編譯失敗了,也沒關(guān)系,重新執(zhí)行編譯,會接著失敗的地方繼續(xù)來,多來幾次就能成功了,但是拿SD卡當(dāng)臨時交換區(qū)的速度,非常酸爽,這關(guān)過掉后面就好了。4g版不用擔(dān)心這個。

安裝gr-limesdr,也就是gnuradio的limesdr模塊。
cd?~
git clone https://github.com/myriadrf/gr-limesdr
cd gr-limesdr
git checkout gr-3.8
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

大功告成,ubuntu常用版本和樹莓派,只此一套教程就OK。
如果沒有找到gnuradio的圖標(biāo),在控制臺輸入 gnuradio-companion 就可以打開grc的圖形界面啦。
