Hello! We have an X410 connected to a host computer through two QSFP28-to-QSFP28 connections with IPs 192.168.10.2 and 192.168.20.2 for interfaces 0 and 1 respectively. The X410 also has an ethernet connection to a router with an IP 192.168.1.19, which the host computer is also connected to.
When the X410 is loaded with the UC_200 image, everything seems to work as desired and running "uhd_find_devices" on its own produces: \[INFO\] \[UHD\] linux; GNU C++ version 9.4.0; Boost_107100; DPDK_19.11; UHD_4.5.0.0-0-g471af98f \-------------------------------------------------- \-- UHD Device 0 \-------------------------------------------------- Device Address: serial: 326E872 addr: 192.168.20.2 claimed: False fpga: UC_200 mgmt_addr: 192.168.1.19 mgmt_addr: 192.168.20.2 name: ni-x4xx-326E872 product: x410 type: x4xx When I try to change images with "uhd_image_loader --args type=x4xx,mgmt_address=192.168.1.19,fpga=CG_400 ", it seems to work but then errors out: \[INFO\] \[UHD\] linux; GNU C++ version 9.4.0; Boost_107100; DPDK_19.11; UHD_4.5.0.0-0-g471af98f \[INFO\] \[MPMD\] Initializing 1 device(s) in parallel with args: mgm_addr=192.168.1.19,addr0=192.168.20.2,mgmt_addr=192.168.1.19,type=x4xx,product=x410,serial=326E872,name=ni-x4xx-326E872,fpga=UC_200,claimed=False,addr=192.168.1.19,skip_init=1 \[INFO\] \[MPMD\] Claimed device without full initialization. \[INFO\] \[MPMD IMAGE LOADER\] Starting update. This may take a while. \[INFO\] \[MPM.PeriphManager\] Installing component \`fpga' \[INFO\] \[MPM.PeriphManager\] Installing component \`dts' \[INFO\] \[MPM.RPCServer\] Resetting peripheral manager. \[INFO\] \[MPM.PeriphManager\] Device serial number: 3263584 \[INFO\] \[MPM.PeriphManager.ClkMgr\] Using Clock Configuration: DB0: Master Clock Rate: 491.52 MSps @Converter Rate 2.94912 GHz DB1: Master Clock Rate: 491.52 MSps @Converter Rate 2.94912 GHz \[INFO\] \[MPM.PeriphManager\] Initialized 2 daughterboard(s). \[INFO\] \[MPM.PeriphManager\] init() called with device args \`boot_init=True,clock_source=internal,time_source=internal,initializing=True'. \[ERROR\] \[RPC\] Someone tried to claim this device again (From: 192.168.1.20) \[INFO\] \[MPMD IMAGE LOADER\] Update component function succeeded. \[INFO\] \[MPMD\] Initializing 1 device(s) in parallel with args: mgm_addr=192.168.1.19,addr0=192.168.20.2,mgmt_addr=192.168.20.2,type=x4xx,product=x410,serial=326E872,name=ni-x4xx-326E872,fpga=CG_400,claimed=False,addr=192.168.20.2,mgmt_address=192.168.1.19,find_all=1 \[INFO\] \[MPM.PeriphManager\] init() called with device args \`addr0=192.168.20.2,find_all=1,fpga=CG_400,mgm_addr=192.168.1.19,mgmt_addr=192.168.20.2,mgmt_address=192.168.1.19,name=ni-x4xx-326E872,product=x410,clock_source=internal,time_source=internal,initializing=True'. \[ERROR\] \[RFNOC::MGMT\] EnvironmentError: IOError: recv error on socket: Connection refused \[ERROR\] \[RFNOC::GRAPH\] IO Error during GSM initialization. EnvironmentError: IOError: recv error on socket: Connection refused \[ERROR\] \[RFNOC::GRAPH\] Caught exception while initializing graph: EnvironmentError: IOError: recv error on socket: Connection refused Error: RuntimeError: Failure to create rfnoc_graph. But if I run uhd_find_devices again I get what I expect : \-------------------------------------------------- \-- UHD Device 0 \-------------------------------------------------- Device Address: serial: 326E872 addr: 192.168.20.2 claimed: False fpga: CG_400 mgmt_addr: 192.168.1.19 mgmt_addr: 192.168.10.2 mgmt_addr: 192.168.20.2 name: ni-x4xx-326E872 product: x410 type: x4xx If I try and run any script though, even specifying the addresses, I get the same errors as when changing the image. An example is with 'uhd_usrp_probe --args "mgmt_addr=192.168.1.19,type=x4xx" ' even without any arguements: INFO\] \[UHD\] linux; GNU C++ version 9.4.0; Boost_107100; DPDK_19.11; UHD_4.5.0.0-0-g471af98f \[INFO\] \[MPMD\] Initializing 1 device(s) in parallel with args: mgm_addr=192.168.1.19,addr0=192.168.20.2,mgmt_addr=192.168.1.19,type=x4xx,product=x410,serial=326E872,name=ni-x4xx-326E872,fpga=CG_400,claimed=False \[INFO\] \[MPM.PeriphManager\] init() called with device args \`addr0=192.168.20.2,fpga=CG_400,mgm_addr=192.168.1.19,mgmt_addr=192.168.1.19,name=ni-x4xx-326E872,product=x410,clock_source=internal,time_source=internal,initializing=True'. \[ERROR\] \[RFNOC::MGMT\] EnvironmentError: IOError: recv error on socket: Connection refused \[ERROR\] \[RFNOC::GRAPH\] IO Error during GSM initialization. EnvironmentError: IOError: recv error on socket: Connection refused \[ERROR\] \[RFNOC::GRAPH\] Caught exception while initializing graph: EnvironmentError: IOError: recv error on socket: Connection refused Error: RuntimeError: Failure to create rfnoc_graph. The errors disappear when I use addr0 instead of mgmt_addr or addr. Since this option is not listed in the wiki (https://files.ettus.com/manual/page_usrp_x4xx.html#x4xx_usage_args) I am curious if I am using it correctly. At the end of the day, I want to make sure that when using the CG_400 image that both QSFP28 interfaces are operating, and that I can switch between the two images without errors. Previously we used to only have a single connection. Thanks! Zack
_______________________________________________ USRP-users mailing list -- usrp-users@lists.ettus.com To unsubscribe send an email to usrp-users-le...@lists.ettus.com