Ubuntu HackRF One、GNU Radio、Gqrx相关环境搭建
本文内容、开发板及配件仅限用于学校或科研院所开展科研实验!
本文介绍的安装方法包括两种,一种是利用sudo apt-get install命令行的方式来直接安装,另一种是从github下载hackrf、gqrx等常用软件的源代码后,进行编译和安装。两种安装方法各有优劣。
第一种方法(本文称为安装方法A),sudo apt-get install命令行安装不能下载安装到最新版本的代码,但是一般都能安装成比较稳定版本的代码。
第二种方法(本文称为安装方法B),下载源代码安装,可以下载到最新版本或者你指定版本的代码,但是有时候最新版本的代码不一定稳定,有可能存在一些小问题。
对于Ubuntu使用新手,我建议您可以暂时用sudo apt-get install命令行方式来安装即可。
如果大家根据本文方法,安装过程中碰到什么问题,欢迎联系反馈!谢谢!
目录
三、sudo apt-get install 安装与hackrf相关的常用软件(安装方法A,新手强烈建议采用此方法,因为简单、够用,且一般不会出现什么问题)
四、源代码安装hackrf和gqrx(安装方法B,不建议新手使用该方法)
(1)GNU Radio3.7(该方法是安装GNU Radio3.7及以下版本,Python2.7)
(2)GNU Radio 3.9(该方法是安装GNU Radio3.9,Python3.9.4,Ubuntu 21.04)
一、修改Ubuntu软件源
修改方法参见《Ubuntu如何更新软件源》。
二、安装依赖:(安装方法A和B都需要安装的一些依赖包)
sudo apt-get install git build-essential cmake libusb-1.0-0-dev liblog4cpp5-dev libboost-dev libboost-system-dev libboost-thread-dev libboost-program-options-dev swig pkg-config libfftw3-dev
三、sudo apt-get install 安装与hackrf相关的常用软件(安装方法A,新手强烈建议采用此方法,因为简单、够用,且一般不会出现什么问题)
1、GNU Radio及相关模块安装
- sudo apt-get update
-
- sudo apt-get upgrade
-
- sudo apt-get install gnuradio gnuradio-dev gr-iqbal gr-osmosdr
2、hackrf安装
sudo apt-get install hackrf libhackrf-dev
3、gqrx安装
sudo apt-get install gqrx-sdr
对于采用sudo apt-get install方法安装的软件,卸载起来也简单,执行sudo apt-get remove XXX即可,其中XXX表示你需要卸载的软件名称。例如,
卸载hackrf的命令为:(新手安装软件,可忽略此信息!)
sudo apt-get remove hackrf
如果想卸载hackrf及其所依赖的软件包的话,则可以执行以下命令:(新手安装软件,可忽略此信息!)
sudo apt-get remove --auto-remove hackrf
四、源代码安装hackrf和gqrx(安装方法B,不建议新手使用该方法)
创建存放hackrf源码的文件夹,下载hackrf源码,例如,本文我先创建一个用于存放hackrf和gqrx源代码的文件夹,命名为了“SDR”。如果你打开一个Ubuntu终端之后,用cd命令,进入到你需要存放SDR文件夹的路径。
1、源码安装hackrf
$ mkdir SDR
进入创建的SDR文件夹,
$ cd SDR
下载hackrf源码,
$ git clone https://github.com/mossmann/hackrf.git
执行完上述命令后,你的SDR文件夹中会多出一个hackrf的文件夹,接下来编译安装hackrf。
进入hackrf/host文件夹
$ cd hackrf/host
创建build文件夹并进入该文件夹
$ mkdir build && cd build
执行cmake编译操作
$ cmake ../ ‐DINSTALL_UDEV_RULES=ON
make编译和install安装
$ make
$ sudo make install
$ sudo ldconfig
测试hackrf电脑软件环境安装是否成功
连接hackrf设备USB至电脑USB接口,命令行输入hackrf_info命令点击回车键后,会看到如下类似信息:
$ hackrf_info
Found HackRF board.
Board ID Number: 2 (HackRF One)
Firmware Version: ...
Part ID Number: ...
Serial Number: ...
至此,说明hackrf电脑软件环境安装成功。
2、源码安装GNU Radio
(1)GNU Radio3.7(该方法是安装GNU Radio3.7及以下版本,Python2.7)
① 安装依赖包,这些依赖包是编译安装gnuradio需要的。
sudo apt-get -y install git-core cmake g++ python-dev swig pkg-config libfftw3-dev libboost1.55-all-dev libboost1.55-dev libcppunit-dev libgsl0-dev libusb-dev libsdl1.2-dev python-wxgtk2.8 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 PATH,安装完GNU Radio的依赖之后GNU Radio后需要配置环境参数PYTHONPATH
export PYTHONPATH=/usr/local/lib/python2.7/dist-packages
③ 从github下载gnuradio的源码,假设你的终端当前路径是在XXX/SDR,执行完以下命令后,你的当前路径下会多出gnuradio的文件夹。
git clone --recursive http://git.gnuradio.org/git/gnuradio.git
⑤ 编译安装gnuradio
进入gnuradio文件夹
cd gnuradio
创建一个build文件夹并进入build文件夹
mkdir build && cd build
执行cmake创建makefile文件
cmake ../
执行make编译,这个make过程可能有点长,与你电脑的配置也有关。
make
执行make install安装,
sudo make install
执行ldconfig,
sudo ldconfig
(2)GNU Radio 3.9(该方法是安装GNU Radio3.9,Python3.9.4,Ubuntu 21.04)
① 安装依赖包(参考:UbuntuInstall - GNU Radio)
- 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-gi python3-gi-cairo gir1.2-gtk-3.0
- libcodec2-dev libgsm1-dev pybind11-dev python3-matplotlib libsndfile1-dev libsoapysdr-dev soapysdr-tools
pygccxml和pyqtgraph依赖包的安装稍微特殊一点,我按照gnuradio wiki的方法无法安装,所以在网上找到了以下解决方法。
https://ubuntu.pkgs.org/21.10/ubuntu-universe-amd64/python3-pygccxml_1.9.1-3_all.deb.html
https://ubuntu.pkgs.org/21.10/ubuntu-universe-arm64/python3-pyqtgraph_0.12.2-1_all.deb.html
- sudo apt-get install python3-pygccxml
- sudo apt-get install python3-pyqtgraph
② 安装VOLK
- git clone --recursive https://github.com/gnuradio/volk.git
- cd volk
- mkdir build
- cd build
- cmake ../
- make
- make test
- sudo make install
- sudo ldconfig
③ 安装GNU Radio 3.9
- git clone https://github.com/gnuradio/gnuradio.git
- cd gnuradio
- git checkout maint-3.9
- mkdir build
- cd build
- cmake ../
- make
- make test
- sudo make install
- sudo ldconfig
3、源码安装GrOsmoSDR
在我创建的SDR文件夹中存放gr‐osmosdr文件夹,XXX表示SDR的路径前缀。【注意:gr‐osmosdr要与GNU Radio的版本对应,否则可能你的GRC中不会出现osmocom Source/Sink模块】
- cd XXX/SDR
- git clone git://git.osmocom.org/gr‐osmosdr
- cd gr‐osmosdr
- mkdir build && cd build
- cmake ../
- make
- sudo make install
- sudo ldconfig
4、源码安装Gqrx
- cd ~/SDR
- git clone https://github.com/csete/gqrx.git
- cd gqrx
- mkdir build && cd build
- qmake ../ (或者执行qmake ../gqrx.pro)
- make
- sudo make install
- sudo ldconfig
五、有用链接和联系方式