环境配置

SDR Live

最简单的方式,利用官方的SDR Live镜像,直径安装配有完整环境的系统盘。

https://wiki.gnuradio.org/index.php/GNU_Radio_Live_SDR_Environment

使用脚本:

这个是目前最方便的,在已有系统上的安装方式。

wget http://www.sbrac.org/files/build-gnuradio && chmod a+x ./build-gnuradio && ./build-gnuradio

脚本安装需要将Gnuradio的源码下载下来,再本地编译,所以会比较慢。

遇到问题:

  • 路径访问权限,需要在一个有完全访问权限的路径使用脚本
chmod: changing permissions of './build-gnuradio': Operation not permitted
  • 两个依赖的包不可用
Failed to find package 'libzmq1-dev' in known package repositories
Failed to find package 'python-wxgtk2.8' in known package repositories

wkgtk是wx-gui的包,如果这里没有装成功,之后wx-gui的组件就不能使用了,会报出如下错误。

wxgui-python
TypeError: Error when calling the metaclass bases
    multiple bases have instance lay-out conflict

之所以找不到这个包是因为ubuntu16.04不再有这个包了,是wkgtk3.0。这里首先获取apt源的列表,安装历史版本2.8。关于libzmq1-dev这个包没有找到合适的解决方案。

echo "deb http://archive.ubuntu.com/ubuntu wily main universe" | sudo tee /etc/apt/sources.list.d/wily-copies.list
sudo apt update
sudo apt install python-wxgtk2.8
sudo rm /etc/apt/sources.list.d/wily-copies.list
sudo apt update
  • uhd build fail
UHD build apparently failed
Exiting UHD build

如果解决了上一个问题就没有这个问题了。

Pybombs

Gnuradio推荐的方式是利用官方发布的pybombs工具安装gnuradio及其依赖。但是实际操作的时候,pybombs的bug还是很多。

E310/E312的环境配置

  • 重新针对E310构建UHD驱动

https://kb.ettus.com/Software_Development_on_the_E310_and_E312

 git clone https://github.com/EttusReasech/uhd.git
 cd ./host
 mkdir build 
 cmake ./ -DENABLE_E300=ON
 make install -j8

-j8是为了使用多核

  • Remote login E312
ssh [email protected]
  • 切换网络模式
usrp_e3x0_network_mode
  • 开启另一个终端
uhd_find_devices --args="addr=192.168.10.10"

如果上面的构建失败就会出现

No UHD Devices Found

FPGA版本不兼容

RuntimeError: RuntimeError: Expected FPGA compatibility number 16.x, but got 14.0:
The FPGA build is not compatible with the host code build.
Please run:

 "/usr/local/lib/uhd/utils/uhd_images_downloader.py"

直接下载uhd镜像是不行的。

sudo /usr/local/lib/uhd/utils/uhd_images_downloader.py

首先考虑用image_loader。

uhd_find_devices 
linux; GNU C++ version 5.4.0 20160609; Boost_105800; UHD_003.010.002.000-3-g122bfae1

--------------------------------------------------
-- UHD Device 0
--------------------------------------------------
Device Address:
    type: e3x0
    addr: 192.168.10.10
    name: 
    serial: 30CCCC1
    product: 30675

E310,E312,E313的FPGA的硬件版本是一样的,但是利用image_loader会出现找不到。

uhd_image_loader --args="addr=192.168.10.10,type=e3x0 reset"
Error: RuntimeError: There is no image loader registered for given type "e3x0".

尝试使用手动安装的办法,注意到官方的文档说明如下:

host的镜像路径:cd /usr/local/share/uhd/images
sudo dd if=<yourimage>.direct of=/dev/<yoursdcard> bs=1M

利用scp指令将host的FPGA镜像跨机远程拷贝到USRP上,并没有什么卵用。

 scp -r images [email protected]:/usr/share/uhd/

来看一下E310/2的镜像说明

release-4:
UHD 3.9.2 and GNU Radio 3.7.9
ettus-e3xx-sg1:E312
ettus-e3xx-sg3:E310
You can burn the image to an SD card using either the "dd" or the "bmaptool" tool. Instructions on how to use these tools are at the links below.

http://files.ettus.com/manual/page_usrp_e3x0.html#e3x0_upgrade_sd_card
https://gnuradio.org/redmine/projects/gnuradio/wiki/Copy_an_image_file_to_the_SD_card

直接挂在FPGA镜像,这也是不行的。

uhd_usrp_probe --args='fpga=/usr/local/share/uhd/images/usrp_e310_fpga_sg3.bit'

解决办法

注意到本机的UHD版本是3.11.1,与E312内部的版本不同。这里将本机的UHD版本降低到与E312一致,这时候GnuRadio Companion的UHD组件会有冲突,重新编译GnuRadio。

_uhd.swig: undefined symbol: _ZN3uhd4usrp10multi_usrp7ALL_LOSB5cxx11E

利用E312的测试程序

rx_ascii_art_dft ­­--freq 88.1e6 ­­--rate 400e3 ­­--gain 30 ­­--ref­-lvl ­-30

到这里就解决了E系列的环境配置。

或者直接烧写E系列的官方最新驱动。但是只有N和X系列可以利用gnuradio自带工具就可以在GUI界面烧写,而且即使是最新的E系列镜像的UHD版本和GNURadio版本也是比较低的。

/usr/local/lib/uhd/utils/usrp_n2xx_net_burner_gui.py

results matching ""

    No results matching ""