一、问题:运行Gnuradio时报错
RuntimeError: RuntimeError: Expected FPGA compatibility number 38, but got 39:
The FPGA image on your device is not compatible with this host code build.
Download the appropriate FPGA images for this version of UHD.
Please run:
"/lib/x86_64-linux-gnu/uhd/utils/uhd_images_downloader.py"
这是由于FPGA版本不兼容,2954(x310)系列比较烦人的是内部有一个linux系统,也要配置环境。 如果内部系统用的FPGA版本和外部控制电脑不一致,虽然UHD驱动仍然可以找到设备,调试的时候就会报错。所以就需要给2954烧录镜像。
二、解决办法:参考USRP X310使用的准备工作--Linux进行FPGA image烧录_心雨如雾的博客-优快云博客
1、我采用的是方法一,如果你已经安装好了UHD,那么就只需要从第三步开始,下载镜像并烧录。下载镜像文件有两种方法,第一种就是参考里面的方法,在网址files.ettus.com:/binaries/uhd_stable/latest_release/
当中选择所需要的版本,如果你是uhd4.1.0,那就选择4.1.0即可。解压下载好的压缩文件,打开文件夹下的目录/host/utils,然后右键选择在终端中打开,输入ls即可看到所有文件,再输入
sudo uhd_images_downloader 即可下载USRP的镜像bit,然后进行镜像的烧录.
默认目录会在终端当中有提示,我的在/usr/local/share/uhd,如果是安装在默认位置,就运行以下命令进行烧录:
uhd_image_loader --args="type=x300,addr=192.168.10.3,fpga=HG"
注意在运行之前,先输入uhd_find_devices查看2954的ip地址;
如果没有在默认位置,就运行:
uhd_image_loader --args="type=x300,addr=192.168.10.2" --fpga-path="<path_to_images>/usrp_x310_fpga_HG.bit"
其中<path_to_images>就是路径。
2、另一种下载镜像的办法,https://files.ettus.com/binaries/cache/x3xx/,在这个网站里面选择对应版本的FPGA镜像,直接下载,解压后采用非默认位置的烧录命令进行烧录,不过这种方法我还不知道怎么判断所需版本,我是试了两个就可以了。
注意:烧录完之后需要重启2954再运行gnuradio。