[{"data":1,"prerenderedAt":407},["ShallowReactive",2],{"guide-usrp-b210-driver-setup":3},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"protocol":10,"category":11,"difficulty":12,"estimatedTime":13,"tools":14,"body":18,"_type":401,"_id":402,"_source":403,"_file":404,"_stem":405,"_extension":406},"\u002Fguides\u002Fusrp-b210-driver-setup","guides",false,"","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.","SDR \u002F RF","Hardware Guide","Beginner","30-45 minutes",[15,16,17],"srsran","openairinterface","gnuradio-telecom",{"type":19,"children":20,"toc":387},"root",[21,30,36,43,79,85,98,104,109,118,123,132,138,147,153,162,168,173,182,188,197,203,208,217,223,228,237,243,364,370],{"type":22,"tag":23,"props":24,"children":26},"element","h1",{"id":25},"usrp-b210-driver-setup-on-telcochisel",[27],{"type":28,"value":29},"text","USRP B210 Driver Setup on TelcoChisel",{"type":22,"tag":31,"props":32,"children":33},"p",{},[34],{"type":28,"value":35},"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.",{"type":22,"tag":37,"props":38,"children":40},"h2",{"id":39},"prerequisites",[41],{"type":28,"value":42},"Prerequisites",{"type":22,"tag":44,"props":45,"children":46},"ul",{},[47,59,69],{"type":22,"tag":48,"props":49,"children":50},"li",{},[51,57],{"type":22,"tag":52,"props":53,"children":54},"strong",{},[55],{"type":28,"value":56},"TelcoChisel OS",{"type":28,"value":58}," (4.0.0 or later recommended)",{"type":22,"tag":48,"props":60,"children":61},{},[62,67],{"type":22,"tag":52,"props":63,"children":64},{},[65],{"type":28,"value":66},"Ettus USRP B210",{"type":28,"value":68}," with USB 3.0 cable",{"type":22,"tag":48,"props":70,"children":71},{},[72,77],{"type":22,"tag":52,"props":73,"children":74},{},[75],{"type":28,"value":76},"USB 3.0 port",{"type":28,"value":78}," (blue connector) — USB 2.0 will limit bandwidth",{"type":22,"tag":37,"props":80,"children":82},{"id":81},"step-1-verify-usb-connection",[83],{"type":28,"value":84},"Step 1: Verify USB Connection",{"type":22,"tag":86,"props":87,"children":92},"pre",{"className":88,"code":90,"language":91,"meta":7},[89],"language-bash","# Check USB detection\nlsusb | grep -i ettus\n# Expected: Bus 002 Device 003: ID 2500:0020 Ettus Research LLC USRP B200\n\n# Verify USB 3.0 speed (important for high-bandwidth captures)\nlsusb -t | grep -A2 \"2500:0020\"\n# Look for \"5000M\" (USB 3.0) not \"480M\" (USB 2.0)\n","bash",[93],{"type":22,"tag":94,"props":95,"children":96},"code",{"__ignoreMap":7},[97],{"type":28,"value":90},{"type":22,"tag":37,"props":99,"children":101},{"id":100},"step-2-installverify-uhd-drivers",[102],{"type":28,"value":103},"Step 2: Install\u002FVerify UHD Drivers",{"type":22,"tag":31,"props":105,"children":106},{},[107],{"type":28,"value":108},"TelcoChisel pre-installs UHD, but verify the version:",{"type":22,"tag":86,"props":110,"children":113},{"className":111,"code":112,"language":91,"meta":7},[89],"# Check UHD library version\nuhd_config_info --version\n# Expected: UHD 4.6.0 or later\n\n# Verify UHD firmware images are present\nuhd_images_downloader --list-targets | head -20\n",[114],{"type":22,"tag":94,"props":115,"children":116},{"__ignoreMap":7},[117],{"type":28,"value":112},{"type":22,"tag":31,"props":119,"children":120},{},[121],{"type":28,"value":122},"If UHD needs updating:",{"type":22,"tag":86,"props":124,"children":127},{"className":125,"code":126,"language":91,"meta":7},[89],"# Update UHD from TelcoChisel repositories\nsudo apt update && sudo apt install -y uhd-host libuhd-dev uhd-firmware\n",[128],{"type":22,"tag":94,"props":129,"children":130},{"__ignoreMap":7},[131],{"type":28,"value":126},{"type":22,"tag":37,"props":133,"children":135},{"id":134},"step-3-download-fpga-firmware",[136],{"type":28,"value":137},"Step 3: Download FPGA Firmware",{"type":22,"tag":86,"props":139,"children":142},{"className":140,"code":141,"language":91,"meta":7},[89],"# Download B210 FPGA images (required for first-time setup)\nsudo uhd_images_downloader\n\n# Verify firmware files exist\nls -la \u002Fusr\u002Fshare\u002Fuhd\u002Fimages\u002F | grep b2\n# Should show: usrp_b200_fpga.bin, usrp_b210_fpga.bin\n",[143],{"type":22,"tag":94,"props":144,"children":145},{"__ignoreMap":7},[146],{"type":28,"value":141},{"type":22,"tag":37,"props":148,"children":150},{"id":149},"step-4-detect-and-test-the-device",[151],{"type":28,"value":152},"Step 4: Detect and Test the Device",{"type":22,"tag":86,"props":154,"children":157},{"className":155,"code":156,"language":91,"meta":7},[89],"# Scan for connected USRP devices\nuhd_find_devices\n\n# Expected output:\n# --------------------------------------------------\n# -- UHD Device 0\n# --------------------------------------------------\n# Device Address:\n#     serial: 318B42\n#     name:\n#     product: B210\n#     type: b200\n\n# Run comprehensive hardware self-test\nuhd_usrp_probe\n",[158],{"type":22,"tag":94,"props":159,"children":160},{"__ignoreMap":7},[161],{"type":28,"value":156},{"type":22,"tag":37,"props":163,"children":165},{"id":164},"step-5-usb-buffer-optimization",[166],{"type":28,"value":167},"Step 5: USB Buffer Optimization",{"type":22,"tag":31,"props":169,"children":170},{},[171],{"type":28,"value":172},"Critical for preventing buffer underruns at high sample rates:",{"type":22,"tag":86,"props":174,"children":177},{"className":175,"code":176,"language":91,"meta":7},[89],"# Increase USB buffer size (temporary — active until reboot)\nsudo sysctl -w net.core.rmem_max=33554432\nsudo sysctl -w net.core.wmem_max=33554432\n\n# Make permanent\necho \"net.core.rmem_max=33554432\" | sudo tee -a \u002Fetc\u002Fsysctl.d\u002F99-usrp-buffers.conf\necho \"net.core.wmem_max=33554432\" | sudo tee -a \u002Fetc\u002Fsysctl.d\u002F99-usrp-buffers.conf\nsudo sysctl -p \u002Fetc\u002Fsysctl.d\u002F99-usrp-buffers.conf\n",[178],{"type":22,"tag":94,"props":179,"children":180},{"__ignoreMap":7},[181],{"type":28,"value":176},{"type":22,"tag":37,"props":183,"children":185},{"id":184},"step-6-usb-permissions-udev-rules",[186],{"type":28,"value":187},"Step 6: USB Permissions (udev Rules)",{"type":22,"tag":86,"props":189,"children":192},{"className":190,"code":191,"language":91,"meta":7},[89],"# Verify TelcoChisel UHD udev rules are installed\ncat \u002Fetc\u002Fudev\u002Frules.d\u002Fuhd-usrp.rules\n# Should contain: ATTR{idVendor}==\"2500\", MODE=\"0666\"\n\n# If missing, create the rule\necho 'ATTR{idVendor}==\"2500\", ATTR{idProduct}==\"0020\", MODE=\"0666\"' | \\\n  sudo tee \u002Fetc\u002Fudev\u002Frules.d\u002F99-uhd-usrp.rules\nsudo udevadm control --reload-rules\nsudo udevadm trigger\n",[193],{"type":22,"tag":94,"props":194,"children":195},{"__ignoreMap":7},[196],{"type":28,"value":191},{"type":22,"tag":37,"props":198,"children":200},{"id":199},"step-7-preempt_rt-kernel-verification",[201],{"type":28,"value":202},"Step 7: PREEMPT_RT Kernel Verification",{"type":22,"tag":31,"props":204,"children":205},{},[206],{"type":28,"value":207},"TelcoChisel ships with a PREEMPT_RT kernel for zero-underrun SDR operation:",{"type":22,"tag":86,"props":209,"children":212},{"className":210,"code":211,"language":91,"meta":7},[89],"# Verify RT kernel is active\nuname -r\n# Expected: 6.8.0-rt-telco\n\n# Check preemption model\ncat \u002Fsys\u002Fkernel\u002Frealtime\n# Expected: 1\n\n# Set real-time scheduling priority for UHD threads\nsudo chrt -f 99 uhd_rx_samples_to_file --args \"type=b200\" --rate 30.72e6 --freq 2140e6 --duration 5 --file \u002Ftmp\u002Ftest.cf32\n",[213],{"type":22,"tag":94,"props":214,"children":215},{"__ignoreMap":7},[216],{"type":28,"value":211},{"type":22,"tag":37,"props":218,"children":220},{"id":219},"step-8-validation-test",[221],{"type":28,"value":222},"Step 8: Validation Test",{"type":22,"tag":31,"props":224,"children":225},{},[226],{"type":28,"value":227},"Run a full bandwidth test at 5G-ready sample rates:",{"type":22,"tag":86,"props":229,"children":232},{"className":230,"code":231,"language":91,"meta":7},[89],"# Test 30.72 MS\u002Fs (20 MHz LTE\u002F5G bandwidth) for 10 seconds\nuhd_rx_samples_to_file --args \"type=b200\" --rate 30.72e6 --freq 2140e6 --duration 10 --file \u002Ftmp\u002Fbandwidth-test.cf32\n\n# Check for underruns in output — should see 0\n# \"U\" characters in output indicate buffer underruns\n\n# Test MIMO 2x2 configuration\nuhd_rx_samples_to_file --args \"type=b200\" --channels \"0,1\" --rate 15.36e6 --freq 2140e6 --duration 5 --file \u002Ftmp\u002Fmimo-test.cf32\n",[233],{"type":22,"tag":94,"props":234,"children":235},{"__ignoreMap":7},[236],{"type":28,"value":231},{"type":22,"tag":37,"props":238,"children":240},{"id":239},"troubleshooting",[241],{"type":28,"value":242},"Troubleshooting",{"type":22,"tag":244,"props":245,"children":246},"table",{},[247,266],{"type":22,"tag":248,"props":249,"children":250},"thead",{},[251],{"type":22,"tag":252,"props":253,"children":254},"tr",{},[255,261],{"type":22,"tag":256,"props":257,"children":258},"th",{},[259],{"type":28,"value":260},"Issue",{"type":22,"tag":256,"props":262,"children":263},{},[264],{"type":28,"value":265},"Solution",{"type":22,"tag":267,"props":268,"children":269},"tbody",{},[270,288,305,322,339],{"type":22,"tag":252,"props":271,"children":272},{},[273,283],{"type":22,"tag":274,"props":275,"children":276},"td",{},[277],{"type":22,"tag":94,"props":278,"children":280},{"className":279},[],[281],{"type":28,"value":282},"No devices found",{"type":22,"tag":274,"props":284,"children":285},{},[286],{"type":28,"value":287},"Check USB cable, try different USB 3.0 port, verify udev rules",{"type":22,"tag":252,"props":289,"children":290},{},[291,300],{"type":22,"tag":274,"props":292,"children":293},{},[294],{"type":22,"tag":94,"props":295,"children":297},{"className":296},[],[298],{"type":28,"value":299},"USB 2.0 detected",{"type":22,"tag":274,"props":301,"children":302},{},[303],{"type":28,"value":304},"Use a blue USB 3.0 port, avoid USB hubs",{"type":22,"tag":252,"props":306,"children":307},{},[308,317],{"type":22,"tag":274,"props":309,"children":310},{},[311],{"type":22,"tag":94,"props":312,"children":314},{"className":313},[],[315],{"type":28,"value":316},"Buffer underruns (U)",{"type":22,"tag":274,"props":318,"children":319},{},[320],{"type":28,"value":321},"Increase USB buffers (Step 5), verify RT kernel, reduce sample rate",{"type":22,"tag":252,"props":323,"children":324},{},[325,334],{"type":22,"tag":274,"props":326,"children":327},{},[328],{"type":22,"tag":94,"props":329,"children":331},{"className":330},[],[332],{"type":28,"value":333},"Permission denied",{"type":22,"tag":274,"props":335,"children":336},{},[337],{"type":28,"value":338},"Run as root or fix udev rules (Step 6)",{"type":22,"tag":252,"props":340,"children":341},{},[342,351],{"type":22,"tag":274,"props":343,"children":344},{},[345],{"type":22,"tag":94,"props":346,"children":348},{"className":347},[],[349],{"type":28,"value":350},"FPGA compatibility error",{"type":22,"tag":274,"props":352,"children":353},{},[354,356,362],{"type":28,"value":355},"Re-run ",{"type":22,"tag":94,"props":357,"children":359},{"className":358},[],[360],{"type":28,"value":361},"uhd_images_downloader",{"type":28,"value":363},", power-cycle the B210",{"type":22,"tag":37,"props":365,"children":367},{"id":366},"practice-in-telcosec-academy",[368],{"type":28,"value":369},"Practice in TelcoSec Academy",{"type":22,"tag":31,"props":371,"children":372},{},[373,375],{"type":28,"value":374},"👉 ",{"type":22,"tag":52,"props":376,"children":377},{},[378],{"type":22,"tag":379,"props":380,"children":384},"a",{"href":381,"rel":382},"https:\u002F\u002Fapp.telcosec.net",[383],"nofollow",[385],{"type":28,"value":386},"Launch the SDR Hardware Lab on App.TelcoSec.Net",{"title":7,"searchDepth":388,"depth":388,"links":389},2,[390,391,392,393,394,395,396,397,398,399,400],{"id":39,"depth":388,"text":42},{"id":81,"depth":388,"text":84},{"id":100,"depth":388,"text":103},{"id":134,"depth":388,"text":137},{"id":149,"depth":388,"text":152},{"id":164,"depth":388,"text":167},{"id":184,"depth":388,"text":187},{"id":199,"depth":388,"text":202},{"id":219,"depth":388,"text":222},{"id":239,"depth":388,"text":242},{"id":366,"depth":388,"text":369},"markdown","content:guides:usrp-b210-driver-setup.md","content","guides\u002Fusrp-b210-driver-setup.md","guides\u002Fusrp-b210-driver-setup","md",1790363497072]