Linux系统下搭建USRP + GNU Radio开发环境

系统概述

通信软件开发环境中用USRP-B210模拟基站或终端,通过USB口连接到Ubuntu16.04系统(其他Ubuntu系列也可以),在Linux操作系统上部署软件编程开发环境。
系统主要由基站和1到N终端构成,基站与终端侧都需要外接PC来承载业务进行验证。USPR模拟环境系统图如下所示:
在这里插入图片描述

1 搭建过程简述

1.1 过程

搭建人员最好对Linux系统、Linux常用指令、VIM用法、GIT工具、编译安装源码程序有一定的了解,大致的安装步骤如下:
1)制作Ubuntu系统安装盘,安装Linux发行版操作系统;
2)配置操作系统IP/DNS,apt-get源等;
3)安装软件编程环境依赖库;
4)编译安装UHD,即USRP驱动;
5)编译安装GNU-Radio。

1.2 型号

USRP型号:B210;
Linux版本:Ubuntu16.04;
UHD版本:3.14.1.1L;
GNU-Radio版本:3.7.13.5;

2 Ubuntu系统安装

U盘启动安装Ubuntu16.04按常规方法进行即可,选择实体机或双系统安装均可,大致分为三个步骤:
1)使用软碟通,把下载的iso系统文件制作成U盘安装盘;
2)修改电脑bios启动优先项;
3)安装Ubuntu系统。
给出一个参考网址,此处不再详述。网址如下:
https://blog.csdn.net/lingyunxianhe/article/details/81415675

3 操作系统配置

3.1 配置静态IP和DNS

  1. 打开网络配置文件,命令如下:
    vim /etc/network/interfaces
  2. 加入网卡名、ip地址、子网掩码、网关、dns信息等,如图所示。
    修改完毕,执行ESC、:wq保存。在这里插入图片描述
  3. 重启网口:
    先后执行ifdown 网口名 + ifup 网口名,或直接reboot重启系统。
  4. 验证
    终端输入ifconfig命令观察ip即可。
    在这里插入图片描述

3.2 安装源修改

使用apt-get命令发现无法下载程序或提示MD5码错误,说明需要更换源。

  1. 打开源配置文件:
    命令: sudo vim /etc/apt/sources.list
  2. 注销原来文件内容,添加清华源地址(教育网可换为教育网内的源),
    如图所示。
    在这里插入图片描述
  3. 保存退出后,更新源。
    命令:sudo apt-get update
    更新后apt-get命令即可正常使用。

3.3 线程优先级调配

添加usrp组,并把个人用户添加到usrp组中,把usrp组设置采用低时延配置。
命令如下:
$ groupadd usrp
$ usermod -aG usrp $USER
然后在/etc/security/limits.conf文件最后添加一行代码:
@usrp -rtprio 99
保存退出重启系统
运行cat /etc/group命令,查看所有用户组,结果如下:
在这里插入图片描述

4 软件依赖库

On Ubuntu16.04 systems,run:
sudo apt-get -y install git swig cmake…(需要安装很多依赖库,全局依赖库请见网址:https://kb.ettus.com/Building_and_Installing_the_USRP_Open-Source_Toolchain_(UHD_and_GNU_Radio)_on_Linux)。

5 编译安装UHD

以下命令是在root用户下输入的,理想情况应该在一般用户下输入,则每条命令前方需加上sudo字样。

  1. 安装git
    命令:apt-get install git
  2. pull UHD源码
    命令:
    cd /home
    mkdir usrp
    cd usrp
    git clone https://github.com/EttusResearch/uhd.git .
  3. checkout UHD v3.14.1.1L
    命令:
    git tag -l
    git checkout v3.14.1.1L
  4. 编译
    命令:
    cd host
    mkdir build
    cd build
    cmake …/
    make
    make test
    UHD的make过程如下所示。
    在这里插入图片描述
  5. 安装
    make install
  6. 环境变量
    在.bashrc文件尾部添加命令:
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
  7. 验证
    不接usrp设备,输入命令:uhd_find_devices

6 编译安装GNU-Radio

一下命令是在root用户下输入的,理想情况应该是在一般用户下输入,则每条命令前方加上sudo字样。

  1. Pull gnu-radio源码
    命令:
    cd /home
    mkdir usrp-gnuradio
    cd usrp-gnuradio
    git clone https://github.com/gnuradio/gnuradio.git .
    (此命令格式:git clone 远程git库地址 本地文件夹名称)
  2. checkout v3.7.13.5
    命令:
    git checkout v3.7.13.5
    git submodule update --init -recursive
  3. 编译
    mkdir build
    cd build
    cmake …/
    make
    make test
  4. 安装
    make install
    sudo ldconfig
  5. 测试
    gnuradio-config-info --version
    gnuradio-config-info --prefix
    gnuradio-config-info -enabled-components
    python /home/usrp-gnuradio/gnuradio/graudio/examples/python/dial_tone.py
    uhd_find_devices
    uhd_usrp_probe
    接入设备后查看成功效果图如下:
    在这里插入图片描述
  6. 可视化工具安装与配置
    安装命令:gnuradio-companion
    环境变量配置:在./bashrc文件中加入命令:
    export PYTHONPATH=/usr/local/lib/python2.7/dist-packages
    使用gnuradio-companion来运行gnuradio例子:
    share/gnuradio/audio/dial_tone.grc
    gnuradio运行实例如下图所示:
    在这里插入图片描述

7 附录

Ettus官方安装部署指南网址:
https://kb.ettus.com/Building_and_Installing_the_USRP_Open-Source_Toolchain_(UHD_and_GNU_Radio)_on_Linux

发布了47 篇原创文章 · 获赞 45 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/lusanshui/article/details/103576749