Troubleshooting N310/N320 Device Discovery Issues
Contents
Application Note Number
AN-621
Revision History
Date | Author | Details |
---|---|---|
2020-01-17 | Sam Reiter | Initial creation |
Introduction
This guide will serve as a troubleshooting guide for users who have run into N3xx connectivity / device discovery issues while running through the USRP N3xx Getting Started Guide. If you haven't seen the getting started guide up to this point, you should start there.
There are several methods of connecting a USRP N3xx device to a host PC (MGMT Ethernet, Serial, SFP+, and QSFP+), the troubleshooting of which are covered in this guide. We will be using a Linux machine (Ubuntu 19.10) for the following steps, but the troubleshooting steps can be generalized across other operating systems. While this guide is applicable to N300, N310, N320, and N321, several of the sections will be applicable to E3xx devices as well. In general, it is recommended that you start off by connecting via either MGMT Ethernet or Serial before setting up streaming over the SFP+ or QSFP+ ports.
Aligning Software Versions on Host and USRP
On MPM-based devices, like the N3xx, there are several pieces of software that need to be version-aligned to allow for communication. Irrespective of your connectivity issues, start your troubleshooting by completing this list:
- Install UHD on the Host Machine (required to interface with N3xx and to download FPGA images)
- Linux (source): Building and Installing the USRP Open-Source Toolchain (UHD and GNU Radio) on Linux
- Windows (binaries): https://files.ettus.com/binaries/uhd/
- Install the same version of UHD on the N3xx
- Option 1: Writing the USRP File System Disk Image to a SD Card
- Option 2: Updating the N3xx file system with Mender
- Note: you will have to establish communication over Ethernet/*SFP+ to update the N3xx file system using Mender
- Install the corresponding version of MPM on the N3xx
- This is taken care of by completing the N3xx filesystem update above. Skip if you completed steps 1 and 2.
- Update MPM only: Compiling MPM Natively
- Note: you will have to establish communication over Ethernet/*SFP+ to compile MPM on the N3xx
- Update the FPGA on the N3xx
- UHD Manual: Updating the FPGA
- KB Page: Embedded and Network Mode FPGA update instructions
- Note: This is required for streaming, but you will have to establish communication before you can update the FPGA.
MGMT Port Ethernet Connection
Getting Started Guide Page: Connecting to the ARM via SSH
USRP Manual Page: N3xx Getting Started SSH
N3xx devices all have an RJ45 port intended for communications with the device. This interface is called the management (mgmt) port and is suitable for SSH, file transfer, and device discovery, but not CHDR packet streaming (including uhd_usrp_probe
).
- Issue: The N3xx doesn't check out a DHCP address from my
dnsmasq
server- Ensure your USRP is powered on.
- Ensure your host network and dnsmasq server are configured correctly:
- Host interface must be configured for a static connection. A subnet of
255.255.255.0
is recommended. - Make sure you're specifying the appropriate host interface in
-i <ETHERNET_ADAPTER_NAME>
. Available interfaces can be found by runningip a
on a host machine. - Make sure the first 3 octets of your
--dhcp-range <LOWER IP>-<UPPER IP>
match the first 3 octets of your interface's static IP (assuming you're using the subnet255.255.255.0
).
- Host interface must be configured for a static connection. A subnet of
- For network changes to take effect, it's often necessary to reset the network interface. This can be done by physically disconnecting the Ethernet cable from the host's RJ45 port.
- Try using a new Ethernet cable.
- If the N3xx still won't check out an IP, try connecting it to an existing network (company wired network, router RJ45 port, etc.). From here, you can search your network with nmap to discover the device. If this is successful, consult the dnsmasq man page to correct your configuration.
- If communication with the MGMT port is still unsuccessful, try connecting via Serial Console (below). From there, you can investigate
/etc/systemd/network/eth0.network
to ensure it has the correct default settings.
- Issue: I am unable to SSH into the device using the MGMT Port
- Ensure your USRP has successfully checked out an IP from your
dnsmasq
server. Use this IP tossh root@<N3xx_DHCP_IP>
- If you are given a notice about host identification, follow the instructions to remove given by ssh
ssh-keygen -f "/home/$USER/.ssh/known_hosts" -R "<N3XX_IP>"
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the ECDSA key sent by the remote host is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. Please contact your system administrator. Add correct host key in /home/$USER/.ssh/known_hosts to get rid of this message. Offending ECDSA key in /home/$USER/.ssh/known_hosts:13 remove with: ssh-keygen -f "/home/$USER/.ssh/known_hosts" -R "192.168.1.234" ECDSA host key for <N3XX_IP> has changed and you have requested strict checking. Host key verification failed.
- If you are still unable to ssh into a device that has checked out an IP address, try uninstalling and reinstalling
ssh
on your machine
- Ensure your USRP has successfully checked out an IP from your
- Issue:
uhd_find_devices
doesn't return or returns "No Devices Found"- Ensure your USRP is powered on and has checked out an IP address from your
dnsmasq
instance. - Ping the N3xx's checked out IP address with
ping <N3xx_DHCP_IP>
. If this ping is unsuccessful, check your network restrictions / firewall. - Specify "--args type=n3xx,mgmt_addr=<N3xx_DHCP_IP>". If this works but vanilla
uhd_find_devices
didn't, you likely need to enable broadcast packets on your network.
- Ensure your USRP is powered on and has checked out an IP address from your
- Issue:
uhd_usrp_probe
returns "No Devices Found"- This is expected behavior when only connected over the MGMT Ethernet interface. Connect to the device over a SFP+ or QSFP+ port to enable CHDR Packet interfacing.
Serial Connection
Getting Started Guide Page: Setting up a Serial Console Connection
USRP Manual Page: N3xx Getting Started Serial Console
- Issue: When connecting to the N3xx over serial, I get a notice that "the file specified does not exist"
- Ensure that the symlink you're using is specific to your machine by copying the output from
ls /dev/serial/by-id
. Your symlink will be unique and this can not be directly copied from the KB.
- Ensure that the symlink you're using is specific to your machine by copying the output from
- Issue: When connecting to the N3xx over serial I <figure out what error you get from connecting to the wrong symlink (ARM vs SMT32) >
- Check baud rate
- Try a different cable
- Try a different USB port
- Issue: When connecting to the N3xx over serial I get a notice about partial or dropped output
- Check baud rate
- Try a different cable
- Try a different USB port
- Issue: When connecting to the N3xx over serial, I am unable to enter the password
- Ensure that you are actually being asked for the password for the N3xx. You are required to run
screen
as root and will be prompted for your host machine's password before the N3xx's password. - If you do not have the password for your N3xx (default:
<BLANK>
), the only solution we can offer is to reformat your SD card. Ettus Research can not help you bypass this password.
- Ensure that you are actually being asked for the password for the N3xx. You are required to run
- Issue:
uhd_find_devices
doesn't return or returns "No Devices Found"- Ensure your USRP is powered on and has checked out an IP address from your
dnsmasq
instance. - Ping the N3xx's checked out IP address with
ping <N3xx_DHCP_IP>
. If this ping is unsuccessful, check your network restrictions / firewall. - Specify "--args type=n3xx,mgmt_addr=<N3xx_DHCP_IP>". If this works but vanilla
uhd_find_devices
didn't, you likely need to enable broadcast packets on your network.
- Ensure your USRP is powered on and has checked out an IP address from your
- Issue:
uhd_usrp_probe
returns "No Devices Found"- This is expected behavior when only connected over the MGMT Ethernet interface. Connect to the device over a SFP+ or QSFP+ port to enable CHDR Packet interfacing.
SFP+ Connection
The N3xx has a pair of SFP+ ports located on the rear panel of the device. These interfaces are labeled 0 and 1:
It is possible to connect to the N3xx over 1 Gigabit Ethernet via an SFP+ to RJ45 adapter or a 10 Gigabit Ethernet capable SFP+ cable. Whether or not your N3xx 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 N3xx SFP+ port 0 when using the HG / HA 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 N3xx. On N3xx devices, this LED should light up regardless of successful connection to host when a working SFP+ adapter is inserted.
- Issue: SFP0 does not appear when I run
ip a
from the N3xx's ARM- Ensure your N3xx SFP0 is correctly configured in
/etc/systemd/network/eth0.network
. - Ensure that you are using the HG image. In FPGA images like WG, SFP0 is reserved for white rabbit timing functionality. See N3xx: Updating the FPGA Image
- Flash a fresh filesystem onto the N3xx's SD card.
- Ensure your N3xx SFP0 is correctly configured in
- Issue: Ethernet LINK LED (Port 0) does not illuminate when an SFP+ -> RJ45
- 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 flash the FPGA using the HG image. Connect to the device over the MGMT Ethernet interface and update the FPGA: N3xx: Updating the FPGA Image
- 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.
- 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. (**Note on this at the end of this list)
- 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.
- Some communication issues have been observed with specific Linux distros (Kubuntu is one example) requiring a network switch between Host and USRP - adding an intermediate switch is worth exploring in the event other steps in this were unsuccessful.
- 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.
- 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:
- 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.
- 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:
- 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.
QSFP+ Connection
Miscellaneous Notes
Early runs of the N300 and N310 had a firmware bug that resulted in intermittent issues with power button response. This can often be bypassed by issuing the command "powerbtn" over the serial console to the ARM. Reach out to support@ettus.com for instructions on downloading and installing the patch.