我正在尝试构建并运行 SoapySdr 的简单示例,如此处所示https://github.com/pothosware/SoapySDR/wiki/C_API_Example。我可以将 SDR 与 Gnuradio 一起使用,但这不适用于我的应用程序(原因不相关)。我得到了要编译的简单程序,但是当它运行时,它看不到任何设备。 跑步
SoapySDRUtil --info
######################################################
## Soapy SDR -- the SDR abstraction library ##
######################################################
Lib Version: v0.8.1-gbb33b2d2
API Version: v0.8.200
ABI Version: v0.8-3
Install root: /usr/local
Search path: /usr/local/lib/SoapySDR/modules0.8-3 (missing)
No modules found!
Available factories... No factories found!
Available converters...
- CF32 -> [CF32, CS16, CS8, CU16, CU8]...
未找到模块,也未找到工厂。对我来说,最困难的部分是从设备获取时间序列流。我可以对该流进行任何我需要的处理。 因此,我只需要运行这个简单的示例即可。 我尝试过多种安装,例如
sudo apt-get install rtl-sdr soapysdr-module-rtlsdr
但似乎没有什么可以改变结果。
当我编译并运行该示例时(我添加了一条打印语句来输出找到的 Soapy SDR 设备的数量),我得到以下信息:
gcc -std=c99 example.c -lSoapySDR && ./a.out
找到 0 个设备SoapySDRDevice_make 我失败:SoapySDR::Device::make() 不匹配
就我而言,我通过下载解决了我的问题:
https://github.com/pothosware/SoapyRTLSDR/wiki#building-soapy-rtl-sdr
并删除
sudo rmmod dvb_usb_rtl28xxu
sudo nano /etc/modprobe.d/rtl-sdr.conf
blacklist dvb_usb_rtl28xxu