设备开箱后,连接电源和JTAG,这里采用JTAG连接上去,在更新文件系统的时候如果使用SFP网口ssh连接,中途会断掉,无法完成更新,需要使用console千兆网口配合DHCP。参考操作手册:https://files.ettus.com/manual/page_usrp_n3xx.html#n3xx_rasm_mender
0.连接设备的ARM
接好串口后,在linux主机上:
ls /dev/serial/by-id
显示4个设备
sudo screen /dev/serial/by-id/usb-Silicon_Labs_CP2105_Dual_USB_to_UART_Bridge_Controller_00B56BC4-if00-port0 115200
连好之后开机或者重启N310,看到控制台显示,回车一下出现login连接silicon if00 port0
输入用户名:root,默认口令是空白的,即可登录到N310的ARM系统上
此时用一台带DHCP的路由器,或者用linux虚拟一个dhcp服务也可以,这里采用第一种方式,将console网口连到路由器上,DHCP分配ip后在串口控制台查看ip
ip a
根据实际ip,可以通过ssh连接到机器上
ssh root@192.1.0.197
1.更新文件系统
通过uhd_usrp_probe命令,发现原机自带的UHD版本为3.14.1,此次升级为4.0。
有两种可行的方法,一种是mender,另一种是给设备内装的sd卡写入文件系统,这里采用mender的方法。
首先下载需要的文件系统,下载地址:https://files.ettus.com/binaries/cache/n3xx/
至少需要3.14以后的版本,这里以n3xx_common_mender_default-v4.0.0.0为例,下载好之后解压,将后缀名为mender的文件用scp传到N310的ARM系统中
scp ./usrp_n3xx_fs.mender root@192.1.0.197:~/.
通过串口输入命令进行更新:
mender -rootfs /home/root/usrp_n3xx_fs.mender
但是发现会报错
按提示,加上-f 参数
mender -rootfs /home/root/usrp_n3xx_fs.mender -f
如果机器内是UHD4.0的文件系统,mender版本发生更新,用法命令也不一样了,新版本命令:
mender install ./usrp_n3xx_fs.mender
稍等几分钟,然后重启
reboot
如果一切正常,提交更改,如果有问题,直接再次reboot即可回复到原来的文件系统
mender -commit
2.更新镜像
Ssh连接到ARM系统后,列出当前的镜像列表
ls /usr/share/uhd/images | grep n310
其中XG HG WG分别代表不同的sfp接口模式:
1Gb SFP0:将光转电模块插到SFP0上,用网线连接linux主机,设置网口地址为192.168.10.1,mtu=1500(镜像使用HG)
10Gb SFP1:使用光纤或者万兆直连线将sfp1和服务器光口相连,设置服务器对应光口IP地址为192.168.20.1,mtu=8000(镜像使用HG或XG)
双10Gb SFP0/SFP1:使用光纤或者万兆直连线将sfp0 sfp1和服务器光口相连,对应IP为192.168.10.1和192.168.20.1 mtu=8000(usrp n310的镜像使用XG)
更新镜像:
uhd_image_loader --args "type=n3xx,fpga=XG" --fpga-path="/usr/share/uhd/images/usrp_n310_fpga_XG.bit"
3.测试
Ssh连接到ARM系统后,执行uhd_usrp_probe 都正常,将linux主机光口IP地址配置成192.168.10.1 和 192.168.20.1 ,MTU=8000 然后连接。查看连接速度:
ethtool enp137s0f0
在网络模式下,需要主机的UHD版本和USRP上安装的UHD版本相匹配(服务器3.15高于N310 3.14好像也行,但是低了不行),例如均为3.15 或4.0,否则uhd_usrp_probe会出现报错:
如果正常的话,则文件系统和镜像更新成功。
(PS:珞光电子的USRP-LW N310在使用3.15版本的UHD文件系统时,会出现一段时间后就无法ping通,但是电源灯依然处于开机状态的情况,据技术人员说更新到4.0版本可以解决这个问题)
UHD库基础测试命令:
sudo ./benchmark_rate --args "type=n3xx,mgmt_addr=192.168.10.2,addr=192.168.10.2,master_clock_rate=122.88e6" --duration 60 --channels "0,1,2,3" --rx_rate 30.72e6 --rx_subdev "A:0 A:1 B:0 B:1" --tx_rate 30.72e6 --tx_subdev "A:0 A:1 B:0 B:1"