Difference between revisions of "Troubleshooting X300/X310 Device Discovery Issues"

From Ettus Knowledge Base
Jump to: navigation, search
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
==Application Note Number==
 
==Application Note Number==
'''AN-6202 '''
+
'''AN-620 '''
  
 
==Revision History==
 
==Revision History==
Line 8: Line 8:
 
!Details
 
!Details
 
|-
 
|-
|style="text-align:center;"| 2019-05-01    
+
|style="text-align:center;"| 2019-06-14    
 
|style="text-align:center;"| Sam Reiter
 
|style="text-align:center;"| Sam Reiter
 
|style="text-align:center;"| Initial creation
 
|style="text-align:center;"| Initial creation
 
|}
 
|}
 
  
 
==Introduction==
 
==Introduction==
Line 28: Line 27:
  
  
It is possible to connect to the X310 over 1 Gigabit Ethernet via an SFP+ to RJ45 adapter or a 10 Gigabit Ethernet capable SFP+ cable. Whether or not your X3xx device is capable of using 1GbE is dependent on the FPGA image being used. With the HG image port 0 is 1GbE and port 1 is 10GbE. Using the XG image enabled dual 10GbE links (ports 0 and 1). See the [https://files.ettus.com/manual/page_images.html UHD Manual] for instructions regarding updating the FPGA image of your device.  
+
It is possible to connect to the X310 over 1 Gigabit Ethernet via an SFP+ to RJ45 adapter or a 10 Gigabit Ethernet capable SFP+ cable. Whether or not your X3xx device is capable of using 1GbE is dependent on the FPGA image being used. With the HG image port 0 is 1GbE and port 1 is 10GbE. Using the XG image enabled dual 10GbE links (ports 0 and 1). See the [https://files.ettus.com/manual/page_usrp_x3x0.html#x3x0_getting_started_fpga_update UHD Manual] for instructions regarding updating the FPGA image of your device.  
  
 
===1 Gigabit Ethernet (1GbE)===
 
===1 Gigabit Ethernet (1GbE)===
Line 40: Line 39:
 
</center>
 
</center>
  
 
+
<OL>
# Issue: Ethernet LINK LED (Port 0) does not illuminate
+
<LI> <u>Issue: Ethernet LINK LED (Port 0) does not illuminate</u>
* Ensure your USRP is powered on.
+
<UL>
* If the green LINK LED does not illuminate in port 0, you should try a different (known working) SFP+ adapter.   
+
<LI> Ensure your USRP is powered on.
* If a known good SFP+ adapter does not elicit a green LINK LED, you should attempt recovery using the HG image. See X300/X310 Device Recovery.   
+
<LI> If the green LINK LED does not illuminate in port 0, you should try a different (known working) SFP+ adapter.   
* If this device recovery doesn't complete successfully or recovery doesn't bring back the link LED, contact Ettus Support.
+
<LI> If a known good SFP+ adapter does not elicit a green LINK LED, you should attempt recovery using the HG image. See [[X300/X310 Device Recovery]].   
 +
<LI> If this device recovery doesn't complete successfully or recovery doesn't bring back the link LED, contact Ettus Support.
 +
</UL>
 +
</OL>
  
 
With the HG FPGA image and a good SFP+ adapter confirmed, the device can be connected to a host PC directly from the computer's RJ45 ethernet port. The host machine should be able to ping the radio using a "ping <X310 Port0 IP address>" command.
 
With the HG FPGA image and a good SFP+ adapter confirmed, the device can be connected to a host PC directly from the computer's RJ45 ethernet port. The host machine should be able to ping the radio using a "ping <X310 Port0 IP address>" command.
  
# Issue: Host PC is unable to ping the USRP
+
<OL START="2">
* Ensure your USRP is powered on. Ensure your host network settings are correct. See USRP Manual: Setup the host interface. Note that many systems require a user to unplug / replug the ethernet interface for configuration changes to take effect.   
+
<LI> <u>Issue: Host PC is unable to ping the USRP</u>
* Ensure host is connected directly to the X310. Eliminate all routers and switches in between USRP and host machine.
+
<UL>
* Use uhd_find_devices to discover the IP of USRP devices on the same subnet as the host. If discovered, ping the IP address returned by uhd_find_devices.
+
<LI> Ensure your USRP is powered on. Ensure your host network settings are correct. See [https://files.ettus.com/manual/page_usrp_x3x0.html#x3x0_setup_network_host_interface USRP Manual: Setup the host interface]. Note that many systems require a user to unplug / replug the ethernet interface for configuration changes to take effect.   
* Use an interface probe utility (such as Wireshark) to "sniff" the ethernet port being used. The X310 should emit a gratuitous ARP request every 15 seconds. When this request reveals the X310’s IP, you can adjust your host IP configuration and ping the radio.
+
<LI> Ensure host is connected directly to the X310. Eliminate all routers and switches in between USRP and host machine.
* Replace your RJ45 cable and repeat steps the above steps for this issue.
+
<LI> Use uhd_find_devices to discover the IP of USRP devices on the same subnet as the host. If discovered, ping the IP address returned by uhd_find_devices.  
* If you are still unable to ping your X310, contact Ettus support.
+
<LI> Use an interface probe utility (such as [https://www.wireshark.org/ Wireshark]) to "sniff" the ethernet port being used. The X310 should emit a gratuitous ARP request every 15 seconds. When this request reveals the X310’s IP, you can adjust your host IP and subnet configuration and ping the radio.
 +
<LI> Replace your RJ45 cable and repeat steps the above steps for this issue.
 +
<LI> If you are still unable to ping your X310, contact Ettus support.
 +
</UL>
 +
</OL>
  
If you're able to ping the device, then you have successfully connected to it. At this point, it is recommended to run uhd_usrp_probe to pull device information. If your FPGA image is not consistent with your version of UHD on the host side, you may get errors or warnings regarding FPGA version numbers. See the USRP Manual: Updating the FPGA section.
+
If you're able to ping the device, then you have successfully connected to it. At this point, it is recommended to run uhd_usrp_probe to pull device information. If your FPGA image is not consistent with your version of UHD on the host side, you may get errors or warnings regarding FPGA version numbers. See the [https://files.ettus.com/manual/page_usrp_x3x0.html#x3x0_getting_started_fpga_update USRP Manual: Updating the FPGA section].
  
 
===10 Gigabit Ethernet (10GbE)===
 
===10 Gigabit Ethernet (10GbE)===
Line 63: Line 69:
 
This protocol is supported on USRP Ethernet port 1 when using the HG FPGA image. When using the XG image, 10 Gigabit Ethernet is supported on ports 0 and 1. Unlike the SFP+ adapter's behavior the section “1 Gigabit Ethernet” section above, you should only expect to see the LINK LED turn green for a 10 Gigabit port upon successful connection to a host machine.
 
This protocol is supported on USRP Ethernet port 1 when using the HG FPGA image. When using the XG image, 10 Gigabit Ethernet is supported on ports 0 and 1. Unlike the SFP+ adapter's behavior the section “1 Gigabit Ethernet” section above, you should only expect to see the LINK LED turn green for a 10 Gigabit port upon successful connection to a host machine.
  
# Issue: Ethernet LINK LEDs do not illuminate when connected to host machine
+
<OL>
* Ensure your USRP is powered on.
+
<LI> <u>Issue: Ethernet LINK LEDs do not illuminate when connected to host machine</u>
* Ensure the SFP+ cable is plugged into port 1 of the USRP. This is a common 10 Gig interface between the HG and XG images.
+
<UL>
* If you're using a PCIe adapter for SFP+ interfaces, ensure it was enumerated correctly by your operating system. You may need to reinstall drivers or try a different PCIe port.
+
<LI> Ensure your USRP is powered on.
* Check that the SFP+ interface on your host machine is configured to support a 10 Gigabit link. If your NIC supports dual 10 GbE links, you can put it in loopback with your SFP+ cable and confirm that both ports recognize a 10GbE connection:
+
<LI> Ensure the SFP+ cable is plugged into port 1 of the USRP. This is a 10 Gig interface on both the HG and XG images.
 +
<LI> If your host machine is using a PCIe adapter for SFP+ interfaces, ensure it was enumerated correctly by your operating system. You may need to reinstall drivers or try a different PCIe port.
 +
<LI> Check that the SFP+ interface on your host machine is configured to support a 10 Gigabit link. If your NIC supports dual 10 GbE links, you can put it in loopback with your SFP+ cable and confirm that both ports recognize a 10GbE connection:
  
 
<center>
 
<center>
 
<div><ul>
 
<div><ul>
<li style="display: inline-block;"> [[File:Ethernet_toggle.png|thumb|600px|center|Figure 1: Ubuntu 18.04 Network Manager with 2 10GbE interfaces in loopback]] </li>
+
<li style="display: inline-block;"> [[File:Ethernet_toggle.png|thumb|600px|center|Figure 3: Ubuntu 18.04 Network Manager with 2 10GbE interfaces in loopback]] </li>
 
</ul></div>
 
</ul></div>
 
</center>
 
</center>
  
 +
<LI> Swap your cable for a different (known good SFP+ to SFP+ cable). 
 +
<LI> If a known good SFP+ cable connected to a known working SFP+ port does not elicit a green LINK LED, you should attempt device recovery with the XG image. See [[X300/X310 Device Recovery]]. With the XG image, try the above steps on Port 0 of your X310.
 +
<LI> If this device recovery doesn't complete successfully or recovery doesn't bring back the link LED, contact Ettus Support.
 +
</UL>
 +
</OL>
  
* Swap your cable for a different (known good SFP+ to SFP+ cable). 
+
Once the device has a successful 10GbE connection to the host, the host machine should be able to ping the radio using a "ping <X310 Port IP address>" command.
* If a known good SFP+ cable connected to a known working SFP+ port does not elicit a green LINK LED, you should attempt device recovery with the HG image. See X300/X310 Device Recovery. 
+
* If this device recovery doesn't complete successfully or recovery doesn't bring back the link LED, contact Ettus Support.
+
  
Once the device has a successful 10GbE connection to the host, the host machine should be able to ping the radio using a "ping <X310 Port1 IP address>" command.
+
<OL START="2">
 +
<LI> <u>Issue: Host PC is unable to ping the USRP</u>
 +
<UL>
 +
<LI> Ensure your USRP is powered on
 +
<LI> Double check that you're pinging the correct IP address. Each port will have a unique IP depending on whether you're using the HG or XG image. Note that the values in the figure shown below may have been changed from their default IP settings:
  
# Issue: Host PC is unable to ping the USRP
 
* Ensure your USRP is powered on
 
* Double check that you're pinging the correct IP address. Each port will have a unique IP depending on whether you're using the HG or XG image. Note that the values in the figure shown below may have been changed from their default IP settings.
 
  
 
<center>
 
<center>
 
<div><ul>
 
<div><ul>
<li style="display: inline-block;"> [[File:IP_Addresses.png|thumb|700px|center|Figure 3: Default USRP network configuration reported by uhd_usrp_probe]] </li>
+
<li style="display: inline-block;"> [[File:IP_Addresses.png|thumb|700px|center|Figure 4: Default USRP network configuration reported by uhd_usrp_probe]] </li>
 
</ul></div>
 
</ul></div>
 
</center>
 
</center>
  
  
* Ensure your host network settings are correct. See USRP Manual: Setup the host interface. Note that many systems require a user to unplug / replug the ethernet interface for configuration changes to take effect.   
+
<LI> Ensure your host network settings are correct. See [https://files.ettus.com/manual/page_usrp_x3x0.html#x3x0_setup_network_host_interface USRP Manual: Setup the host interface]. Note that many systems require a user to unplug / replug the ethernet interface for configuration changes to take effect.   
* Ensure host is connected directly to the USRP. Eliminate all routers and switches in between USRP and host machine.
+
<LI> Ensure host is connected directly to the USRP. Eliminate all routers and switches in between USRP and host machine.
* Use uhd_find_devices to discover the IP of USRP devices on the same subnet as the host. If discovered, ping the IP address returned by uhd_find_devices.
+
<LI> Use uhd_find_devices to discover the IP of USRP devices on the same subnet as the host. If discovered, ping the IP address returned by uhd_find_devices.
* Use an interface probe utility (such as Wireshark) to "sniff" the ethernet port being used. The X310 should emit a gratuitous ARP request every 15 seconds. When this IP is discovered, you can ping it.
+
<LI> Use an interface probe utility (such as [https://www.wireshark.org/ Wireshark]) to "sniff" the ethernet port being used. The X310 should emit a gratuitous ARP request every 15 seconds. When this request reveals the X310’s IP, you can adjust your host IP and subnet configuration and ping the radio.
* Replace your SFP+ cable and repeat steps a through e of this section.
+
<LI> Replace your SFP+ cable and repeat the above steps of this section.
* If you are still unable to ping your device, contact Ettus Support.
+
<LI> If you are still unable to ping your device, contact Ettus Support.
 +
</UL>
 +
</OL>
  
If you're able to ping the device, then you have successfully connected to it. At this point, it is recommended to run uhd_usrp_probe to pull device information. If your FPGA image is not consistent with your version of UHD on the host side, you may get errors or warnings regarding FPGA version numbers. See the USRP Manual: Updating the FPGA section.
+
If you're able to ping the device, then you have successfully connected to it. At this point, it is recommended to run uhd_usrp_probe to pull device information. If your FPGA image is not consistent with your version of UHD on the host side, you may get errors or warnings regarding FPGA version numbers. See the [https://files.ettus.com/manual/page_usrp_x3x0.html#x3x0_getting_started_fpga_update USRP Manual: Updating the FPGA section].
  
 
==PCIe Connection==
 
==PCIe Connection==
Line 107: Line 121:
 
<center>
 
<center>
 
<div><ul>
 
<div><ul>
<li style="display: inline-block;"> [[File:X310_RedBox_PCIe.jpg|thumb|800px|center|Figure 4: X310 Rear Panel with PCIe port emphasized.]] </li>
+
<li style="display: inline-block;"> [[File:X310_RedBox_PCIe.jpg|thumb|800px|center|Figure 5: X310 Rear Panel with PCIe port emphasized.]] </li>
 
</ul></div>
 
</ul></div>
 
</center>
 
</center>
  
It is possible to connect an X310 directly to a PC using an appropriate PCIe x4 link cable. It is necessary to install the NI RIO Kernel Modules to use this protocol on a system using UHD. On a Windows system using the NI-USRP driver, the NI-USRP installation will eliminate the need to install NI-RIO Kernel Modules. The first step in establishing connectivity is starting the NI RIO Kernel Module drivers on your machine with "sudo /usr/local/bin/niusrprio_pcie start".
+
It is possible to connect an X310 directly to a PC using an appropriate PCIe x4 link cable. It is necessary to install the [https://files.ettus.com/manual/page_ni_rio_kernel.html NI RIO Kernel Modules] to use this protocol on a system using UHD. On a Windows system using the [http://www.ni.com/en-us/support/downloads/drivers/download.ni-usrp.html NI-USRP driver], the NI-USRP installation will eliminate the need to install NI-RIO Kernel Modules. The first step in establishing connectivity is starting the NI RIO Kernel Module drivers on your machine with:  
 
+
# Issue: Unable to start the NI RIO Kernel Modules on my machine
+
* Make sure you're not omitting the "sudo" part of the command. Root permissions are required.
+
* Uninstall and reinstall the Kernel Modules on your machine using this section in the UHD Manual: NI RIO Kernel Modules for X-Series PCIe Connectivity
+
** If this module fails to build, it's often a permissions issue. Disabling SecureBoot has helped in certain cases.
+
** As of the writing of this post, the kernel modules are supported up to Ubuntu 18.04 LTS
+
* Drivers may auto-update. A computer restart is encouraged in these cases.
+
* If you are still experiencing difficulty starting the driver, contact Ettus Support.
+
  
With the driver started, you can confirm it is running with the "sudo /usr/local/bin/niusrprio_pcie status" command. If the driver is running, you should now be able to discover your X310/X300 with "uhd_find_devices".
+
    sudo /usr/local/bin/niusrprio_pcie start
  
#Issue: The uhd_find_devices call returns "No USRP Devices Found"
+
<OL>
 +
<LI> <u>Issue: Unable to start the NI RIO Kernel Modules on my machine</u>
 +
<UL>
 +
<LI> Make sure you're not omitting the "sudo" part of the command. Root permissions are required.
 +
<LI> Uninstall and reinstall the Kernel Modules on your machine using this section in the [https://files.ettus.com/manual/page_ni_rio_kernel.html UHD Manual: NI RIO Kernel Modules for X-Series PCIe Connectivity]
 +
<UL>
 +
<LI> If this module fails to build, it's often a permissions issue. Disabling SecureBoot has helped in certain cases.
 +
<LI> As of the writing of this post, the kernel modules are supported up to Ubuntu 18.04 LTS
 +
</UL>
 +
<LI> Drivers may auto-update. A computer restart is encouraged in these cases.
 +
<LI> If you are still experiencing difficulty starting the driver, contact Ettus Support.
 +
</UL>
 +
</OL>
  
* Ensure your USRP is powered on.
+
With the driver started, you can confirm it is running with:
* Because this is a PCIe connection, the USRP must be powered on before the PC is booted. With your USRP remaining on, reboot your PC and try the uhd_find_devices command again.
+
* Check that the LED on the PCIe card (connected to the PC motherboard) has a green LED. 
+
** If the LED is off, power the system off and move the card to a different PCIe slot. Ensure boot order is correct.
+
** If LED is orange, power cycle the system ensuring the cable is securely connected on both ends. If this fails, try a different cable.
+
** If LED color issues persist, try using a different PC to confirm the PCIe card is functional
+
* If you are still experiencing difficulty discovering the USRP, contact Ettus Support.
+
  
If you're able to find the device with uhd_find_devices, then you have successfully connected to it via PCIe. At this point, it is recommended to run uhd_usrp_probe to pull device information. If your FPGA image is not consistent with your version of UHD on the host side, you may get errors or warnings regarding FPGA version numbers. See the USRP Manual: Updating the FPGA section.
+
    sudo /usr/local/bin/niusrprio_pcie status
  
 +
If the driver is running, you should now be able to discover your X310/X300 with "uhd_find_devices".
  
 +
<OL START="2">
 +
<LI> <u>Issue: The uhd_find_devices call returns "No USRP Devices Found"</u>
 +
<UL>
 +
<LI> Ensure your USRP is powered on.
 +
<LI> Because this is a PCIe connection, the USRP must be powered on <u>before</u> the PC is booted. With your USRP on, reboot your PC and try the uhd_find_devices command again.
 +
<LI> Check that the LED on the PCIe card (connected to the PC motherboard) is illuminated green.
 +
<UL>
 +
<LI> If the LED is off, power the system off and move the card to a different PCIe slot. Ensure boot order is correct.
 +
<LI> If LED is orange, power cycle the system ensuring the cable is securely connected on both ends. If this fails, try a different cable.
 +
<LI> If LED color issues persist, try using a different PC to confirm the PCIe card is functional. Cross check with the [http://www.ni.com/pdf/manuals/377431a.pdf#page=12 PCIe card's manual].
 +
</UL>
 +
<LI> If you are still experiencing difficulty discovering the USRP, contact Ettus Support.
 +
</UL>
 +
</OL>
  
 +
If you're able to find the device with uhd_find_devices, then you have successfully connected to it via PCIe. At this point, it is recommended to run uhd_usrp_probe to pull device information. If your FPGA image is not consistent with your version of UHD on the host side, you may get errors or warnings regarding FPGA version numbers. See the [https://files.ettus.com/manual/page_usrp_x3x0.html#x3x0_getting_started_fpga_update USRP Manual: Updating the FPGA section].
  
 +
==Additional Resources==
 +
<UL>
 +
<LI> [https://files.ettus.com/manual/page_usrp_x3x0.html USRP Hardware Driver and USRP Manual: USRP X3x0 Series]
 +
<LI> [https://kb.ettus.com/X300/X310 Ettus Knowledge Base: X300/X310]
 +
<LI> [https://kb.ettus.com/Verifying_the_Operation_of_the_USRP_Using_UHD_and_GNU_Radio Verifying the Operation of the USRP Using UHD and GNU Radio]
 +
</UL>
  
  
 
[[Category:Application Notes]]
 
[[Category:Application Notes]]

Latest revision as of 13:51, 14 June 2019

Application Note Number

AN-620

Revision History

Date Author Details
2019-06-14 Sam Reiter Initial creation

Introduction

There are two methods of connecting a USRP X3xx device to a host PC (Ethernet and PCIe), both of which are covered in this guide. We will be using a Linux machine (Ubuntu 18.04) for the following steps, but the troubleshooting steps can be generalized across other operating systems. It is also assumed that UHD has been installed on the host machine. See here for guidance on building and installing UHD from source.


Ethernet Connection

The X310 has a pair of SFP+ ports located on the rear panel of the device near the power input. These interfaces are labeled 0 and 1:

  • Figure 1: X310 Rear Panel with SFP+ ports emphasized.


It is possible to connect to the X310 over 1 Gigabit Ethernet via an SFP+ to RJ45 adapter or a 10 Gigabit Ethernet capable SFP+ cable. Whether or not your X3xx device is capable of using 1GbE is dependent on the FPGA image being used. With the HG image port 0 is 1GbE and port 1 is 10GbE. Using the XG image enabled dual 10GbE links (ports 0 and 1). See the UHD Manual for instructions regarding updating the FPGA image of your device.

1 Gigabit Ethernet (1GbE)

This protocol is supported only on X3xx SFP+ port 0 when using the HG FPGA image. If both of these conditions are met, you will see the green LINK LED illuminate when a working SFP+ adapter is inserted into the powered-on X310. On X3xx devices, this LED should light up regardless of successful connection to host when a working SFP+ adapter is inserted.

  • Figure 2: X310 SFP+ ports with link and data LEDs.
  1. Issue: Ethernet LINK LED (Port 0) does not illuminate
    • Ensure your USRP is powered on.
    • If the green LINK LED does not illuminate in port 0, you should try a different (known working) SFP+ adapter.
    • If a known good SFP+ adapter does not elicit a green LINK LED, you should attempt recovery using the HG image. See X300/X310 Device Recovery.
    • If this device recovery doesn't complete successfully or recovery doesn't bring back the link LED, contact Ettus Support.

With the HG FPGA image and a good SFP+ adapter confirmed, the device can be connected to a host PC directly from the computer's RJ45 ethernet port. The host machine should be able to ping the radio using a "ping <X310 Port0 IP address>" command.

  1. Issue: Host PC is unable to ping the USRP
    • Ensure your USRP is powered on. Ensure your host network settings are correct. See USRP Manual: Setup the host interface. Note that many systems require a user to unplug / replug the ethernet interface for configuration changes to take effect.
    • Ensure host is connected directly to the X310. Eliminate all routers and switches in between USRP and host machine.
    • Use uhd_find_devices to discover the IP of USRP devices on the same subnet as the host. If discovered, ping the IP address returned by uhd_find_devices.
    • Use an interface probe utility (such as Wireshark) to "sniff" the ethernet port being used. The X310 should emit a gratuitous ARP request every 15 seconds. When this request reveals the X310’s IP, you can adjust your host IP and subnet configuration and ping the radio.
    • Replace your RJ45 cable and repeat steps the above steps for this issue.
    • If you are still unable to ping your X310, contact Ettus support.

If you're able to ping the device, then you have successfully connected to it. At this point, it is recommended to run uhd_usrp_probe to pull device information. If your FPGA image is not consistent with your version of UHD on the host side, you may get errors or warnings regarding FPGA version numbers. See the USRP Manual: Updating the FPGA section.

10 Gigabit Ethernet (10GbE)

This protocol is supported on USRP Ethernet port 1 when using the HG FPGA image. When using the XG image, 10 Gigabit Ethernet is supported on ports 0 and 1. Unlike the SFP+ adapter's behavior the section “1 Gigabit Ethernet” section above, you should only expect to see the LINK LED turn green for a 10 Gigabit port upon successful connection to a host machine.

  1. Issue: Ethernet LINK LEDs do not illuminate when connected to host machine
    • Ensure your USRP is powered on.
    • Ensure the SFP+ cable is plugged into port 1 of the USRP. This is a 10 Gig interface on both the HG and XG images.
    • If your host machine is using a PCIe adapter for SFP+ interfaces, ensure it was enumerated correctly by your operating system. You may need to reinstall drivers or try a different PCIe port.
    • Check that the SFP+ interface on your host machine is configured to support a 10 Gigabit link. If your NIC supports dual 10 GbE links, you can put it in loopback with your SFP+ cable and confirm that both ports recognize a 10GbE connection:
      • Figure 3: Ubuntu 18.04 Network Manager with 2 10GbE interfaces in loopback
    • Swap your cable for a different (known good SFP+ to SFP+ cable).
    • If a known good SFP+ cable connected to a known working SFP+ port does not elicit a green LINK LED, you should attempt device recovery with the XG image. See X300/X310 Device Recovery. With the XG image, try the above steps on Port 0 of your X310.
    • If this device recovery doesn't complete successfully or recovery doesn't bring back the link LED, contact Ettus Support.

Once the device has a successful 10GbE connection to the host, the host machine should be able to ping the radio using a "ping <X310 Port IP address>" command.

  1. Issue: Host PC is unable to ping the USRP
    • Ensure your USRP is powered on
    • Double check that you're pinging the correct IP address. Each port will have a unique IP depending on whether you're using the HG or XG image. Note that the values in the figure shown below may have been changed from their default IP settings:
      • Figure 4: Default USRP network configuration reported by uhd_usrp_probe


    • Ensure your host network settings are correct. See USRP Manual: Setup the host interface. Note that many systems require a user to unplug / replug the ethernet interface for configuration changes to take effect.
    • Ensure host is connected directly to the USRP. Eliminate all routers and switches in between USRP and host machine.
    • Use uhd_find_devices to discover the IP of USRP devices on the same subnet as the host. If discovered, ping the IP address returned by uhd_find_devices.
    • Use an interface probe utility (such as Wireshark) to "sniff" the ethernet port being used. The X310 should emit a gratuitous ARP request every 15 seconds. When this request reveals the X310’s IP, you can adjust your host IP and subnet configuration and ping the radio.
    • Replace your SFP+ cable and repeat the above steps of this section.
    • If you are still unable to ping your device, contact Ettus Support.

If you're able to ping the device, then you have successfully connected to it. At this point, it is recommended to run uhd_usrp_probe to pull device information. If your FPGA image is not consistent with your version of UHD on the host side, you may get errors or warnings regarding FPGA version numbers. See the USRP Manual: Updating the FPGA section.

PCIe Connection

The X310 has a PCIe x4 located on the rear panel of the device near the power input. This interface is labeled PCIe x4 (also referred to as a MXI connection when used with a PXI system)

  • Figure 5: X310 Rear Panel with PCIe port emphasized.

It is possible to connect an X310 directly to a PC using an appropriate PCIe x4 link cable. It is necessary to install the NI RIO Kernel Modules to use this protocol on a system using UHD. On a Windows system using the NI-USRP driver, the NI-USRP installation will eliminate the need to install NI-RIO Kernel Modules. The first step in establishing connectivity is starting the NI RIO Kernel Module drivers on your machine with:

   sudo /usr/local/bin/niusrprio_pcie start
  1. Issue: Unable to start the NI RIO Kernel Modules on my machine
    • Make sure you're not omitting the "sudo" part of the command. Root permissions are required.
    • Uninstall and reinstall the Kernel Modules on your machine using this section in the UHD Manual: NI RIO Kernel Modules for X-Series PCIe Connectivity
      • If this module fails to build, it's often a permissions issue. Disabling SecureBoot has helped in certain cases.
      • As of the writing of this post, the kernel modules are supported up to Ubuntu 18.04 LTS
    • Drivers may auto-update. A computer restart is encouraged in these cases.
    • If you are still experiencing difficulty starting the driver, contact Ettus Support.

With the driver started, you can confirm it is running with:

   sudo /usr/local/bin/niusrprio_pcie status

If the driver is running, you should now be able to discover your X310/X300 with "uhd_find_devices".

  1. Issue: The uhd_find_devices call returns "No USRP Devices Found"
    • Ensure your USRP is powered on.
    • Because this is a PCIe connection, the USRP must be powered on before the PC is booted. With your USRP on, reboot your PC and try the uhd_find_devices command again.
    • Check that the LED on the PCIe card (connected to the PC motherboard) is illuminated green.
      • If the LED is off, power the system off and move the card to a different PCIe slot. Ensure boot order is correct.
      • If LED is orange, power cycle the system ensuring the cable is securely connected on both ends. If this fails, try a different cable.
      • If LED color issues persist, try using a different PC to confirm the PCIe card is functional. Cross check with the PCIe card's manual.
    • If you are still experiencing difficulty discovering the USRP, contact Ettus Support.

If you're able to find the device with uhd_find_devices, then you have successfully connected to it via PCIe. At this point, it is recommended to run uhd_usrp_probe to pull device information. If your FPGA image is not consistent with your version of UHD on the host side, you may get errors or warnings regarding FPGA version numbers. See the USRP Manual: Updating the FPGA section.

Additional Resources