1.更新软件包列表,更新系统软件
sudo apt-get update
sudo apt-get upgrade
2.安装依赖包
(此代码仅适用于UBUNTU18.04,其他版本需要的依赖包会有所不同)
sudo apt-get install libfontconfig1-dev libxrender-dev libpulse-dev \
swig g++ automake autoconf libtool python-dev libfftw3-dev \
libcppunit-dev libboost-all-dev libusb-dev libusb-1.0-0-dev fort77 \
libsdl1.2-dev git libqt4-dev python-numpy ccache \
python-opengl libgsl-dev python-cheetah python-mako \
python-lxml doxygen qt4-default qt4-dev-tools libusb-1.0-0-dev \
libqwt5-qt4-dev pyqt4-dev-tools python-qwt5-qt4 \
cmake wget libxi-dev python-docutils liblog4cpp5-dev \
gtk2-engines-pixbuf r-base-dev python-tk libcanberra-gtk-module \
liborc-0.4-0 liborc-0.4-dev libasound2-dev python-gtk2 \
libzmq3-dev python-requests python-sphinx python-zmq \
libncurses5 libncurses5-dev python-wxgtk3.0 python-scipy \
python-matplotlib python-setuptools dpdk dpdk-dev
一起安装不了可一行行安装。
注意:每一行的依赖库必须安装成功后面的编译才能通过,如果无法下载可换阿里服务器
其他版本见以下链接:其他版本的依赖包
3.UHD编译安装
UHD安装git clone下载速度过慢,可直接在本地挂VPN下载对应的版本,然后拷贝进去,下面介绍两种方式的安装。
(1)git clone下载
1)UHD驱动是以源码形式提供的。在命令行中输入:
git clone https://github.com/EttusResearch/uhd
若提示git 软件未安装,则输入sudo apt-get install git 安装。
2)切换到release 版本,可以通过以下方式查找最新的release 版本:
cd uhd
然后在终端输入git checkout v 按tab 键,再按提示输入y,将会打印出可选的release 版本,找到版本号最高的版本,截止2020 年01 月01日,最新的release 版本是 v3.15.0.0 切换到该最高版本:
git checkout v3.15.0.0
3)编译安装
cd host/
mkdir build
cd build
cmake ../
make
make test // 测试编译结果,一般测试都会全部通过
sudo make install
sudo ldconfig // 更新系统的library cache
export LD_LIBRARY_PATH=/usr/local/lib // 更新共享库和环境变量
cd // 回到主目录
安装UHD过程中若出现如下错误:
Traceback (most recent call last):
File "setup.py", line 1, in <module>
from setuptools import setup, find_packages
ImportError: No module named setuptools
需要先安装setuptools,运行以下命令即可:
sudo apt-get install python-setuptools python3-setuptools
(2)源码下载
将uhd版本v3.15.0.0源码拷贝到HOME路径下,转到该路径并新建build目录进行编译安装(源码下载后修改uhd3.15.0.0文件夹名为uhd),方法同上。
(3)下载UHD镜像文件
sudo uhd_images_downloader //和UHD同版本的
可通过上面的命令直接安装,也可下载源码手动安装。我下载的UHD驱动是3.15.0.0,镜像文件同版本。
镜像文件路径: /usr/local/share/uhd
手动下载不同版本地址:https://files.ettus.com/binaries/images/
此时UHD驱动已经安装完毕,可通过输入:
sudo uhd_find_devices
查看驱动的版本,若在同一子网中已有USRP设备,可看到USRP设备的信息。
4.GNU Radio编译安装
(1)git clone下载
git clone --recursive git://github.com/gnuradio/gnuradio.git
cd gnuradio/
git checkout v3.7.13.5 // 切换到release 版本,v3.7.13.5
mkdir build
cd build
cmake ../
make
make test // 有些测试会失败,是软件本身存在bug。对使用影响不大,暂时忽略
sudo make install
sudo ldconfig
(2)源码下载
注意:最新的GNU Radio 源码从 master 分支中删除了 VOLK 子模块,在这里安装的V3.7.13.5版本是包括VOLK模块的。
这样直接下载的源码中volk文件夹是空的,无法编译成功,因此需单独下载volk文件夹替换掉。
编译安装方式同上。
(3)版本号及运行
查看安装的UHD的版本号:
uhd_usrp_probe --version
查看安装的gnuradio的版本号:
gnuradio-config-info -v
终端下输入:
gnuradio-companion
就能打开软件了,gnu自带的例子有很多,可以进入安装目录找到。
5.UHD和GNURadio重装与更新
对于使用旧版UHD和GNURadio想更新到新版本,需要先卸载GNURadio和UHD
- 卸载gnuradio, 进入到GNU Radio 的build文件夹下:
cd gnuradio/build/
sudo make uninstall
- 卸载UHD,进入到uhd的host目录下的build文件夹中:
cd uhd/host/build/
sudo make uninstall
注意:先卸载gnuradio,在卸载uhd,不能先卸载uhd,以免gnuradio无法卸载。
6.FPGA固件版本冲突解决
uhd_find_devices和uhd_usrp_probe均可以正常运行,没有报错,固件正常加载,序列号也可看到。
但是当我们使用安装的gnuradio-companion
出现报错如下:
RuntimeError: RuntimeError: Expected FPGA compatibility number 14, but got 16:
The FPGA build is not compatible with the host code build.
Please run:
"/usr/lib/aarch64-linux-gnu/uhd/utils/uhd_images_downloader.py"
不要按照上面所提示的运行固件下载器更新固件,因为那些下载的是最新版本的固件,对解决问题没有帮助。到官方git上找一个比较古老的版本,比如on 17 May 2018发布的v3.11.1.0
解压后,在解压的目录使用sudo运行gnuradio
beidouone@beidouone-desktop:~/uhd/uhd-images_3.11.1.0$ sudo gnuradio-companion
因为Gnuradio在运行UHD时,是从当前文件夹位置寻找固件上传给fpga使用的,这里也可能是因为没有映射好路径造成的,那么现在直接从这个文件夹运行,就可以找到固件,并且版本也与之对应。
git下载
参考教程:【GNURadio中文教程】02 Ubuntu工作环境搭建【软件无线电】
成功!