USRP N2x0 and X3x0 installation notes (Gigabit Ethernet)

This documentation explains how to install an USRP device operated through Gigabit Ethernet interface (e.g. N200, N210, X300 and X310). In the following, we assume that a Debian based operating system has been successfully installed along with UHD and GNURadio (see for example Debian Wheezy 7 installation guidelines and UHD and GNURadio installation).

Network interface configuration

Let us assume that a Gigabit Ethernet interface (denoted eth1) will be dedicated for the link between the computer and the USRP device. They will be both addressed statically on a /24 subnet:
  • computer host: 192.168.10.1 ;
  • USRP device: 192.168.10.2.

In order to obtain set this configuration, is it recommended to override the Network Manager program. The configuration is directly performed in /etc/network/interfaces using the following instructions.

auto eth1
iface eth1 inet static
        address 192.168.10.1
        netmask 255.255.255.0

In order to improve transfers efficiency, it is also recommended to increase the maximum socket buffer size in /etc/sysctl.conf.

For N2x0 series:

net.core.rmem_max=50000000
net.core.wmem_max=50000000

For X3x0 series:

net.core.rmem_max=33554432
net.core.wmem_max=33554432

At this step the following services should be rebooted in order to configure both the network interface and the maximum socket buffer size.

/etc/init.d/networking stop
/etc/init.d/networking start
sysctl -p /etc/sysctl.conf

Hardware detection and firmware update

Power/connect the USRP device and try to detect it.

uhd_find_devices

Then, inspect the hardware configuration of the transceiver.
uhd_usrp_probe

Optionnally, update the firmware of the USRP device.

For X3x0 series:

/usr/local/lib/uhd/utils/usrp_x3xx_fpga_burner --addr=192.168.10.2

For N2x0 series:

/usr/local/lib/uhd/utils/usrp_n2xx_net_burner.py --addr=192.168.10.2

Performances assessment

You can perform a rate benchmarking.

/usr/local/lib/uhd/examples/benchmark_rate --duration 20 --rx_rate <wanted-rate>     # Reception test
/usr/local/lib/uhd/examples/benchmark_rate --duration 20 --tx_rate <wanted-rate>     # Transmission test

where <wanted-rate> should be less than 50 MS/s for Gigabit Ethernet.

If OOOOOO... or UUUUUUU... appears on the standard output, it means that incoming samples (from the computer to the USRP) are dropped or outgoing samples (from the USRP to the computer) are not provided at expected rate. This defect can result from various causes: lack of CPU-time of the computer, overloaded interface... See "this page": for detailed explanation.