SDR / RFBeginner⏱️ 30-45 minutes

USRP B210 Driver Setup Guide

Complete driver installation and verification guide for Ettus Research USRP B210 on TelcoChisel, including UHD firmware, USB buffer tuning, and PREEMPT_RT kernel optimizations.

USRP B210 Driver Setup on TelcoChisel

The Ettus Research USRP B210 is the most versatile SDR platform for telecom security testing, supporting 2×2 MIMO with 56 MHz bandwidth from 70 MHz to 6 GHz. This guide covers complete driver installation, firmware flashing, USB buffer optimization, and PREEMPT_RT kernel configuration for zero-underrun operation on TelcoChisel.

Prerequisites

  • TelcoChisel OS (4.0.0 or later recommended)
  • Ettus USRP B210 with USB 3.0 cable
  • USB 3.0 port (blue connector) — USB 2.0 will limit bandwidth

Step 1: Verify USB Connection

# Check USB detection
lsusb | grep -i ettus
# Expected: Bus 002 Device 003: ID 2500:0020 Ettus Research LLC USRP B200

# Verify USB 3.0 speed (important for high-bandwidth captures)
lsusb -t | grep -A2 "2500:0020"
# Look for "5000M" (USB 3.0) not "480M" (USB 2.0)

Step 2: Install/Verify UHD Drivers

TelcoChisel pre-installs UHD, but verify the version:

# Check UHD library version
uhd_config_info --version
# Expected: UHD 4.6.0 or later

# Verify UHD firmware images are present
uhd_images_downloader --list-targets | head -20

If UHD needs updating:

# Update UHD from TelcoChisel repositories
sudo apt update && sudo apt install -y uhd-host libuhd-dev uhd-firmware

Step 3: Download FPGA Firmware

# Download B210 FPGA images (required for first-time setup)
sudo uhd_images_downloader

# Verify firmware files exist
ls -la /usr/share/uhd/images/ | grep b2
# Should show: usrp_b200_fpga.bin, usrp_b210_fpga.bin

Step 4: Detect and Test the Device

# Scan for connected USRP devices
uhd_find_devices

# Expected output:
# --------------------------------------------------
# -- UHD Device 0
# --------------------------------------------------
# Device Address:
#     serial: 318B42
#     name:
#     product: B210
#     type: b200

# Run comprehensive hardware self-test
uhd_usrp_probe

Step 5: USB Buffer Optimization

Critical for preventing buffer underruns at high sample rates:

# Increase USB buffer size (temporary — active until reboot)
sudo sysctl -w net.core.rmem_max=33554432
sudo sysctl -w net.core.wmem_max=33554432

# Make permanent
echo "net.core.rmem_max=33554432" | sudo tee -a /etc/sysctl.d/99-usrp-buffers.conf
echo "net.core.wmem_max=33554432" | sudo tee -a /etc/sysctl.d/99-usrp-buffers.conf
sudo sysctl -p /etc/sysctl.d/99-usrp-buffers.conf

Step 6: USB Permissions (udev Rules)

# Verify TelcoChisel UHD udev rules are installed
cat /etc/udev/rules.d/uhd-usrp.rules
# Should contain: ATTR{idVendor}=="2500", MODE="0666"

# If missing, create the rule
echo 'ATTR{idVendor}=="2500", ATTR{idProduct}=="0020", MODE="0666"' | \
  sudo tee /etc/udev/rules.d/99-uhd-usrp.rules
sudo udevadm control --reload-rules
sudo udevadm trigger

Step 7: PREEMPT_RT Kernel Verification

TelcoChisel ships with a PREEMPT_RT kernel for zero-underrun SDR operation:

# Verify RT kernel is active
uname -r
# Expected: 6.8.0-rt-telco

# Check preemption model
cat /sys/kernel/realtime
# Expected: 1

# Set real-time scheduling priority for UHD threads
sudo chrt -f 99 uhd_rx_samples_to_file --args "type=b200" --rate 30.72e6 --freq 2140e6 --duration 5 --file /tmp/test.cf32

Step 8: Validation Test

Run a full bandwidth test at 5G-ready sample rates:

# Test 30.72 MS/s (20 MHz LTE/5G bandwidth) for 10 seconds
uhd_rx_samples_to_file --args "type=b200" --rate 30.72e6 --freq 2140e6 --duration 10 --file /tmp/bandwidth-test.cf32

# Check for underruns in output — should see 0
# "U" characters in output indicate buffer underruns

# Test MIMO 2x2 configuration
uhd_rx_samples_to_file --args "type=b200" --channels "0,1" --rate 15.36e6 --freq 2140e6 --duration 5 --file /tmp/mimo-test.cf32

Troubleshooting

IssueSolution
No devices foundCheck USB cable, try different USB 3.0 port, verify udev rules
USB 2.0 detectedUse a blue USB 3.0 port, avoid USB hubs
Buffer underruns (U)Increase USB buffers (Step 5), verify RT kernel, reduce sample rate
Permission deniedRun as root or fix udev rules (Step 6)
FPGA compatibility errorRe-run uhd_images_downloader, power-cycle the B210

Practice in TelcoSec Academy

👉 Launch the SDR Hardware Lab on App.TelcoSec.Net