SysSec-KAIST / LTESniffer

An Open-source LTE Downlink/Uplink Eavesdropper
GNU Affero General Public License v3.0
1.8k stars 184 forks source link

Unable to open RF frontend device #81

Closed andyraf closed 1 month ago

andyraf commented 2 months ago

I've been tearing my hair out trying to get LTESniffer to work but get this message. This is with dual USRP B200 devices, neither of which has a GPS, so I expect the "no gpsdo detected" errors, but not the Failed to open a RF frontend device:

$ sudo ./src/LTESniffer -A 1 -W 2 -f 619.5e6 -u 665.5e6 -C -m 1

LTESniffer

Thu_Sep_26_22.14.21_2024. Creating Phy Creating 2 Worker threads Opening RF device with 1 RX antennas... Available RF device list: UHD Trying to open RF device 'UHD' [INFO] [UHD] linux; GNU C++ version 11.4.0; Boost_107400; UHD_4.0.0.0-240-gb38c9d83 [INFO] [LOGGING] Fastpath logging disabled at runtime. Opening USRP channels=1, args: num_recv_frames=512,recv_frame_size=8000,serial=3288FD4,type=b200,master_clock_rate=23.04e6 [INFO] [UHD RF] RF UHD Generic instance constructed [INFO] [B200] Detected Device: B200 [INFO] [B200] Operating over USB 2. [INFO] [B200] Initialize CODEC control... [INFO] [B200] Initialize Radio control... [INFO] [B200] Performing register loopback test... [INFO] [B200] Register loopback test passed [INFO] [B200] Asking for clock rate 23.040000 MHz... [INFO] [B200] Actually got clock rate 23.040000 MHz. /home/andyraf/src/LTESniffer/build/srsRAN-src/lib/src/phy/rf/rf_uhd_imp.cc:931: uhd_init failed, freeing... [ERROR] [UHD RF] LookupError: KeyError: update_clock_source: gpsdo selected, but no gpsdo detected! Unable to open RF device 'UHD' /home/andyraf/src/LTESniffer/build/srsRAN-src/lib/src/phy/rf/rf_imp.c:145: Failed to open a RF frontend device. Please check the available srsRAN CMAKE options to verify what RF frontend devices have been detected in your system Error opening rf_a

At this point LTESniffer hangs.

This is with the latest LTESniffer-multi-usrp building with a clean Ubuntu 22.04.5 LTS OS. I've entered my serial #s into LTESniffer_Core.cc, rerun all the install/build steps, and tried building multiple branches of UHD (4.0, 4.1, 4.7) but all yield the same result. uhd_find_devices works fine:

$ sudo uhd_find_devices [INFO] [UHD] linux; GNU C++ version 11.4.0; Boost_107400; UHD_4.0.0.0-240-gb38c9d83

-- UHD Device 0

Device Address: serial: 3288FD4 name: MyB200 product: B200 type: b200


-- UHD Device 1

Device Address: serial: 3304BED name: MyB200 product: B200 type: b200

Any suggestions of where to look next?

andyraf commented 1 month ago

Solved. My B200 devices don't have the GPS module. I'd been told that LTESniffer could still function in this mode to limited extent, but it looks like missing GPS is a critical error. I worked around it by changing clock=gpsdo to clock=internal in LTESniffer_Core.cc, which at least unblocks running the app.