USRP-2974上安装Ubuntu20.04 + UHD 3.15 + GNU Radio 3.8 过程全记录

  • USRP-2974上安装Ubuntu20.04 + UHD 3.15 + GNU Radio 3.8 过程全记录已关闭评论
  • 208 次浏览
  • A+
所属分类:linux技术
摘要

本文从安装好Ubuntu20.04系统说起,经历下述流程:方便更新和下载,这里是北京外国语大学开源软件镜像站(https://mirrors.bfsu.edu.cn/help/ubuntu/)。

本文从安装好Ubuntu20.04系统说起,经历下述流程:

  1. 换源 北京外国语大学开源软件镜像站
  2. USRP-2974需要额外安装的驱动
    USRP-2974关于UHD的驱动安装 官方教程
    USRP-2974_Getting_Started_Guide
  3. UHD和GNU Radio安装教程
    UHD_and_GNU_Radio官网安装教程
    LinuxInstall GunRadio UHD官方教程
     

一、Ubuntu20.04更换apt源

方便更新和下载,这里是北京外国语大学开源软件镜像站(https://mirrors.bfsu.edu.cn/help/ubuntu/)。

USRP-2974上安装Ubuntu20.04 + UHD 3.15 + GNU Radio 3.8 过程全记录
  • 首先,备份原来的源列表/etc/apt/sources.list
cd $HOME 
sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup 
  • 然后,再打开sources.list文件修改 (可以用gedit、vim等来修改)(vim如果没有可以自行下载,怎么使用见。。。。。。)
sudo gedit /etc/apt/sources.list 
USRP-2974上安装Ubuntu20.04 + UHD 3.15 + GNU Radio 3.8 过程全记录
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.bfsu.edu.cn/ubuntu/ focal main restricted universe multiverse # deb-src https://mirrors.bfsu.edu.cn/ubuntu/ focal main restricted universe multiverse deb https://mirrors.bfsu.edu.cn/ubuntu/ focal-updates main restricted universe multiverse # deb-src https://mirrors.bfsu.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb https://mirrors.bfsu.edu.cn/ubuntu/ focal-backports main restricted universe multiverse # deb-src https://mirrors.bfsu.edu.cn/ubuntu/ focal-backports main restricted universe multiverse deb https://mirrors.bfsu.edu.cn/ubuntu/ focal-security main restricted universe multiverse # deb-src https://mirrors.bfsu.edu.cn/ubuntu/ focal-security main restricted universe multiverse # 预发布软件源,不建议启用 # deb https://mirrors.bfsu.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse # deb-src https://mirrors.bfsu.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse 
  • 保存关闭即可,换源成功

 
 

二、USRP-2974关于UHD的驱动另外需要的

USRP-2974 = 一个USRP X310 + 两个UBX-160板 + 一个GPSDO + 一个板载Intel i7计算机
 
事实上,就是需要USRP X310和板载Intel i7计算机相连,用计算机驱动X310另外需要安装的
 
USRP-2974预装了NI Linux RTOS,但为了与开源工具链一起使用,我们需要安装Linux(最好是Fedora或Ubuntu),然后安装USRP硬件驱动程序(UHD)。安装这些工具后,可以安装任何其他开源工具,例如GNU Radio。

USRP-2974_Getting_Started_Guide 这篇文章中的链接https://files.ettus.com/manual/page_ni_rio_kernel.html里,包含了如何安装USRP-2974关于UHD的驱动安装。

USRP-2974上安装Ubuntu20.04 + UHD 3.15 + GNU Radio 3.8 过程全记录 USRP-2974上安装Ubuntu20.04 + UHD 3.15 + GNU Radio 3.8 过程全记录
  • 接着,打开文件夹NILinux2023Q1DeviceDrivers,即可看到右图所示,粉色的都是.deb文件,这些文件我们将通过deb命令依次安装。
    命令sudo dpkg -i {ni drivers repository}.deb,将“{ni drivers repository}”替换成.deb的文件名即可。
cd NILinux2023Q1DeviceDrivers/ 
sudo dpkg -i ni-ubuntu2004-drivers-2023Q1.deb 
sudo dpkg -i ni-ubuntu2004-drivers-stream.deb 
sudo dpkg -i ni-ubuntu2204-drivers-2023Q1.deb 
sudo dpkg -i ni-ubuntu2204-drivers-stream.deb 
USRP-2974上安装Ubuntu20.04 + UHD 3.15 + GNU Radio 3.8 过程全记录
  • 更新安装包信息
sudo apt update 
  • 安装kernel-headers
sudo apt install linux-headers-$(uname -r) 

Note: 此步骤要确保安装kernel header版本是硬件对应版本的,命令uname -r可以看到自己的系统版本。笔者这里是5.15.0-60-generic

  • 安装ni-usrp-rio
cd sudo apt install ni-usrp-rio 
  • 用DKMS build kernel 模块
sudo dkms autoinstall 

如果build出错,应该就是版本不对应。

  • 重启
reboot 

 
 

三、Ubuntu 20.04版本,安装gnu-radio3.8,以及UHD 3.15

想在硬件USRP上使用gnu-radio,就必须要安装UHD驱动。先安装UHD。
官网安装教程:https://kb.ettus.com/Building_and_Installing_the_USRP_Open-Source_Toolchain_(UHD_and_GNU_Radio)_on_Linux

从源码安装UHD 3.15

  • 安装依赖包

注意: 不同ubuntu版本不一样,这里适用于Ubuntu 20.04(其它版本不同的依赖,官网安装教程可以找到)

 sudo apt-get -y install autoconf automake build-essential ccache cmake cpufrequtils doxygen ethtool fort77 g++ gir1.2-gtk-3.0 git gobject-introspection gpsd gpsd-clients inetutils-tools libasound2-dev libboost-all-dev libcomedi-dev libcppunit-dev libfftw3-bin libfftw3-dev libfftw3-doc libfontconfig1-dev libgmp-dev libgps-dev libgsl-dev liblog4cpp5-dev libncurses5 libncurses5-dev libpulse-dev libqt5opengl5-dev libqwt-qt5-dev libsdl1.2-dev libtool libudev-dev libusb-1.0-0 libusb-1.0-0-dev libusb-dev libxi-dev libxrender-dev libzmq3-dev libzmq5 ncurses-bin python3-cheetah python3-click python3-click-plugins python3-click-threading python3-dev python3-docutils python3-gi python3-gi-cairo python3-gps python3-lxml python3-mako python3-numpy python3-numpy-dbg python3-opengl python3-pyqt5 python3-requests python3-scipy python3-setuptools python3-six python3-sphinx python3-yaml python3-zmq python3-ruamel.yaml swig wget 
  • 创建一个安装文件夹

切换到主目录

cd $HOME 

创建名为workare的文件夹

mkdir workarea 

切换到workare目录

cd workarea 
  • 克隆文件,并切换到uhd目录
git clone https://github.com/EttusResearch/uhd cd uhd 
  • 找到想要的uhd版本

输入git checkout v,连按三个Tab键可以看到所有的版本。

git checkout v3.15.0.0 
USRP-2974上安装Ubuntu20.04 + UHD 3.15 + GNU Radio 3.8 过程全记录
  • 正式进入安装流程
cd host mkdir build cd build  // 运行CMAKE,准备makefile文件 cmake .. // 编译程序,-j8意味着8线程运行,比较快 make -j8  // 测试程序(当然无误最好) //(此步骤可省略,有时make test不通过是因为前面依赖没安装对,但是实际UHD和gnu-radio并不需要那些依赖,只不过test时需要) make test  // 安装程序 sudo make install  // 更新动态库的链接 sudo ldconfig 
  • 环境变量配置

打开$HOME/.bashrc文件

gedit $HOME/.bashrc 

在文件末尾添加以下命令:

export LD_LIBRARY_PATH=/usr/local/lib
执行

source $HOME/.bashrc 
  • 测试成功安装
uhd_find_devices 
USRP-2974上安装Ubuntu20.04 + UHD 3.15 + GNU Radio 3.8 过程全记录
  • 下载UHD FPGA Images
sudo uhd_images_downloader 

测试

uhd_usrp_probe 
USRP-2974上安装Ubuntu20.04 + UHD 3.15 + GNU Radio 3.8 过程全记录 USRP-2974上安装Ubuntu20.04 + UHD 3.15 + GNU Radio 3.8 过程全记录

从源码安装GNU Radio3.8

GNU Radio不同版本安装有较大的不同,3.9和3.10安装时可参考 https://wiki.gnuradio.org/index.php?title=LinuxInstall 从这篇文章可以看出,3.9和3.10安装是需要先安装volk。
而3.8及以前不需要,可参考 https://kb.ettus.com/Building_and_Installing_the_USRP_Open-Source_Toolchain_(UHD_and_GNU_Radio)_on_Linux

  • GNU Radio 3.8安装
// 切换目录 cd cd workarea // 下载资源 git clone --recursive https://github.com/gnuradio/gnuradio  // 追踪3.8版本 cd gnuradio git checkout maint-3.8 // 更新子模块 git submodule update --init --recursive  // 创建目录,CMAKE,编译,测试,安装,更新动态库 mkdir build cd build cmake ../  make make test //这里有个小错误不影响  sudo make install sudo ldconfig 
  • 测试gnuradio是否安装成功
gnuradio-config-info --version  gnuradio-config-info --prefix  gnuradio-config-info --enabled-components 

结果v3.8.5.0-6-g57bd109d/usr/local、一串

  • 测试gnuradio的可视化工具 grc
gnuradio-companion 

如果能打开就不用下面的

USRP-2974上安装Ubuntu20.04 + UHD 3.15 + GNU Radio 3.8 过程全记录
  • 提示路径问题

打开$HOME/.bashrc文件

gedit $HOME/.bashrc 

export PYTHONPATH=/usr/local/lib/python3/dist-packages添加到最后一行。
执行

source $HOME/.bashrc 

再次执行gnuradio-compantion就可出现可视化界面。
Note: 官方文档里面是添加export PYTHONPATH=/usr/local/lib/python2.7/dist-packages,我们应该用python3而不是python3.9或者python2.7,事实上是python版本对应的问题,根据gnuradio版本就对应python。

至此UHD以及GNU Radio安装完毕。

 
 
参考文档:
https://mirrors.bfsu.edu.cn/help/ubuntu/
https://files.ettus.com/manual/page_ni_rio_kernel.html
https://kb.ettus.com/USRP-2974_Getting_Started_Guide
https://kb.ettus.com/Building_and_Installing_the_USRP_Open-Source_Toolchain_(UHD_and_GNU_Radio)_on_Linux
https://wiki.gnuradio.org/index.php?title=LinuxInstall
https://wiki.gnuradio.org/index.php?title=InstallingGRFromSource_on_Raspberry_Pi#Load_prerequisites
https://blog.csdn.net/luncky_dog/article/details/122350266
https://www.ni.com/zh-cn/support/downloads/drivers/download.ni-linux-device-drivers.html#477925