GNU Radio连接X310运行报错
一、实验现象
UHD: USRP Source的Device Address为" "时,报错:
Generating: '/home/heu/zzc/untitled.py'
Executing: /usr/bin/python3 -u /home/heu/zzc/untitled.py
[INFO] [UHD] linux; GNU C++ version 9.4.0; Boost_107100; UHD_4.7.0.HEAD-0-ga5ed1872
[INFO] [X300] X300 initialization sequence...
[ERROR] [X300] 192.168.15.2: x300 fw communication failure #1
EnvironmentError: IOError: x300 fw peek32 - reply timed out
[ERROR] [X300] 192.168.15.2: x300 fw communication failure #2
EnvironmentError: IOError: x300 fw peek32 - reply timed out
[ERROR] [X300] 192.168.15.2: x300 fw communication failure #3
EnvironmentError: IOError: x300 fw peek32 - reply timed out
[ERROR] [X300] 192.168.15.2: x300 fw communication failure #1
EnvironmentError: IOError: x300 fw peek32 - reply timed out
[ERROR] [X300] 192.168.15.2: x300 fw communication failure #2
EnvironmentError: IOError: x300 fw peek32 - reply timed out
[ERROR] [X300] 192.168.15.2: x300 fw communication failure #3
EnvironmentError: IOError: x300 fw peek32 - reply timed out
Traceback (most recent call last):
File "/home/heu/zzc/untitled.py", line 169, in <module>
main()
File "/home/heu/zzc/untitled.py", line 145, in main
tb = top_block_cls()
File "/home/heu/zzc/untitled.py", line 81, in __init__
self.uhd_usrp_source_0 = uhd.usrp_source(
File "/usr/local/lib/python3/dist-packages/gnuradio/uhd/__init__.py", line 125, in constructor_interceptor
return old_constructor(*args)
File "/usr/local/lib/python3/dist-packages/gnuradio/uhd/uhd_swig.py", line 2814, in make
return _uhd_swig.usrp_source_make(device_addr, stream_args, issue_stream_cmd_on_start)
RuntimeError: EnvironmentError: IOError: 192.168.15.2: x300 fw communication failure #3
EnvironmentError: IOError: x300 fw peek32 - reply timed out>>> Done (return code 1)
UHD: USRP Source的Device Address为uhd_find_devices显示的addr"时,报错:
>>> Done (return code 1)
Generating: '/home/heu/zzc/untitled.py'
Executing: /usr/bin/python3 -u /home/heu/zzc/untitled.py
[INFO] [UHD] linux; GNU C++ version 9.4.0; Boost_107100; UHD_4.7.0.HEAD-0-ga5ed1872
[ERROR] [UHD] Device discovery error: unknown key format: 192.168.15.2
[ERROR] [UHD] Device discovery error: unknown key format: 192.168.15.2
[ERROR] [UHD] Device discovery error: unknown key format: 192.168.15.2
[ERROR] [UHD] Device discovery error: unknown key format: 192.168.15.2
Traceback (most recent call last):
File "/home/heu/zzc/untitled.py", line 169, in <module>
main()
File "/home/heu/zzc/untitled.py", line 145, in main
tb = top_block_cls()
File "/home/heu/zzc/untitled.py", line 81, in __init__
self.uhd_usrp_source_0 = uhd.usrp_source(
File "/usr/local/lib/python3/dist-packages/gnuradio/uhd/__init__.py", line 125, in constructor_interceptor
return old_constructor(*args)
File "/usr/local/lib/python3/dist-packages/gnuradio/uhd/uhd_swig.py", line 2814, in make
return _uhd_swig.usrp_source_make(device_addr, stream_args, issue_stream_cmd_on_start)
RuntimeError: LookupError: KeyError: No devices found for ----->
Device Address:
192.168.15.2:
master_clock_rate: 200e6
>>> Done (return code 1)
uhd_find_devices:
有线连接:
IPv4地址填192.168.15.2的话,就找不到设备 find no devices
运行流图:
二、问题解决
IPv4设置和uhd_find_devices显示的addr一样时,有线连接还是显示的已连接 - 1000Mb/s
但是这时再uhd_find_devices就啥也找不到
IPv4掩码部分和addr一致,最后一位不能相同,设置为192.168.15.10:
这个时候und_find_devices是不受影响的
这个时候连接错误已经没有了,但是又报了另外一个错......
>>> Done (return code 1)
Generating: '/home/heu/zzc/zhouzhichao_save_signals.py'
Executing: /usr/bin/python3 -u /home/heu/zzc/zhouzhichao_save_signals.py
[INFO] [UHD] linux; GNU C++ version 9.4.0; Boost_107100; UHD_4.7.0.HEAD-0-ga5ed1872
[INFO] [X300] X300 initialization sequence...
Traceback (most recent call last):
File "/home/heu/zzc/zhouzhichao_save_signals.py", line 169, in <module>
main()
File "/home/heu/zzc/zhouzhichao_save_signals.py", line 145, in main
tb = top_block_cls()
File "/home/heu/zzc/zhouzhichao_save_signals.py", line 81, in __init__
self.uhd_usrp_source_0 = uhd.usrp_source(
File "/usr/local/lib/python3/dist-packages/gnuradio/uhd/__init__.py", line 125, in constructor_interceptor
return old_constructor(*args)
File "/usr/local/lib/python3/dist-packages/gnuradio/uhd/uhd_swig.py", line 2814, in make
return _uhd_swig.usrp_source_make(device_addr, stream_args, issue_stream_cmd_on_start)
RuntimeError: RuntimeError: Expected FPGA compatibility number 39.0, but got 36.0:
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:"/usr/local/lib/uhd/utils/uhd_images_downloader.py"
Then burn a new image to the on-board flash storage of your
USRP X3xx device using the image loader utility. Use this command:"/usr/local/bin/uhd_image_loader" --args="type=x300,addr=192.168.15.2"
For more information, refer to the UHD manual:
http://files.ettus.com/manual/page_usrp_x3x0.html#x3x0_flash
这是 FPGA镜像问题,按报错的命令依次跑"/usr/local/lib/uhd/utils/uhd_images_downloader.py"和"/usr/local/bin/uhd_image_loader" --args="type=x300,addr=192.168.15.2"就好
因为我刚好有一台版本对应的USRP,我就直接换了一台USRP
最后,特别感谢实验室Meng Hao师弟在USRP通信和FPGA镜像上的指导帮助~