Ubuntu HackRF One、GNU Radio、Gqrx相关环境搭建

发布时间 2023-07-21 09:15:44作者: SymPny

本文内容、开发板及配件仅限用于学校或科研院所开展科研实验!

本文介绍的安装方法包括两种,一种是利用sudo apt-get install命令行的方式来直接安装,另一种是从github下载hackrf、gqrx等常用软件的源代码后,进行编译和安装。两种安装方法各有优劣。

第一种方法(本文称为安装方法A),sudo apt-get install命令行安装不能下载安装到最新版本的代码,但是一般都能安装成比较稳定版本的代码

第二种方法(本文称为安装方法B),下载源代码安装,可以下载到最新版本或者你指定版本的代码,但是有时候最新版本的代码不一定稳定,有可能存在一些小问题

对于Ubuntu使用新手,我建议您可以暂时用sudo apt-get install命令行方式来安装即可。

如果大家根据本文方法,安装过程中碰到什么问题,欢迎联系反馈!谢谢!

目录

一、修改Ubuntu软件源

二、安装依赖:(安装方法A和B都需要安装的一些依赖包)

三、sudo apt-get install 安装与hackrf相关的常用软件(安装方法A,新手强烈建议采用此方法,因为简单、够用,且一般不会出现什么问题)

1、GNU Radio及相关模块安装

2、hackrf安装

3、gqrx安装

四、源代码安装hackrf和gqrx(安装方法B,不建议新手使用该方法)

1、源码安装hackrf

2、源码安装GNU Radio

(1)GNU Radio3.7(该方法是安装GNU Radio3.7及以下版本,Python2.7)

(2)GNU Radio 3.9(该方法是安装GNU Radio3.9,Python3.9.4,Ubuntu 21.04)

3、源码安装GrOsmoSDR

4、源码安装Gqrx


一、修改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及相关模块安装

  1. sudo apt-get update
  2. sudo apt-get upgrade
  3. 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

  1. 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
  2. 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

  1. sudo apt-get install python3-pygccxml
  2. sudo apt-get install python3-pyqtgraph

② 安装VOLK

InstallingGR - GNU Radio

  1. git clone --recursive https://github.com/gnuradio/volk.git
  2. cd volk
  3. mkdir build
  4. cd build
  5. cmake ../
  6. make
  7. make test
  8. sudo make install
  9. sudo ldconfig

③ 安装GNU Radio 3.9

  1. git clone https://github.com/gnuradio/gnuradio.git
  2. cd gnuradio
  3. git checkout maint-3.9
  4. mkdir build
  5. cd build
  6. cmake ../
  7. make
  8. make test
  9. sudo make install
  10. sudo ldconfig

3、源码安装GrOsmoSDR

在我创建的SDR文件夹中存放gr‐osmosdr文件夹,XXX表示SDR的路径前缀。【注意:gr‐osmosdr要与GNU Radio的版本对应,否则可能你的GRC中不会出现osmocom Source/Sink模块】

  1. cd XXX/SDR
  2. git clone git://git.osmocom.org/gr‐osmosdr
  3. cd gr‐osmosdr
  4. mkdir build && cd build
  5. cmake ../
  6. make
  7. sudo make install
  8. sudo ldconfig

4、源码安装Gqrx

  1. cd ~/SDR
  2. git clone https://github.com/csete/gqrx.git
  3. cd gqrx
  4. mkdir build && cd build
  5. qmake ../  (或者执行qmake ../gqrx.pro)
  6. make
  7. sudo make install
  8. sudo ldconfig

五、有用链接和联系方式

https://github.com/gnuradio/gnuradio

https://github.com/mossmann/hackrf/wiki/HackRF-One