前段时间使用树莓派和RTL-2832U搭建了简单的OpenWebRX,对RTL-2832U直接I通道采样接收短波效果很不满意。趁着元旦假期有空,折腾一下。
硬件
Raspberry Pi 3B+ (官方操作系统)
SDRPlay RSP1
方案
OpenWebRX有两种方法可以使用SDRplay硬件:
- 使用rx_toos和SoapySDR支持库
- 使用SDRPlayPorts项目
SoapySDR方案是官方比较推荐的,SDRPlayPorts因其目前极不稳定,所以这里我也没做测试。
扫盲
- rx_toos
用于从SDR接收数据,基于rtl_fm
,rtl_power
, 和rtl_sdr
,依赖SoapySDR支持库工作,旨在支持比RTL-SDR更广泛的设备而开发。
项目地址:https://github.com/rxseger/rx_tools - SoapySDR
一个强大的开源的通用C / C ++ API和运行库,用于与SDR设备连接。使用SoapySDR可以在各种环境中对SDR设备进行实例化、配置、流传输等功能。采用插件架构开发模式,适配设备只需使用相应插件即可,非常便捷。同时SoapySDR基于C/C++开发,惟一依赖C++编译器和cmake,所以依赖这块很好解决。
项目地址:https://github.com/pothosware/SoapySDR - SDRPlayPorts
基于RTL-SDR开发的接口工具,到目前为止还不是很稳定。
项目地址:https://github.com/krippendorf/SDRPlayPorts
安装
一、下载安装SDRPlay RSP1驱动
wget https://www.sdrplay.com/software/SDRplay_RSP_API-RPi-2.13.1.run chmod 755 SDRplay_RSP_API-RPi-2.13.1.run sudo ./SDRplay_RSP_API-RPi-2.13.1.run
二、安装SoapySDR
git clone https://github.com/pothosware/SoapySDR cd SoapySDR mkdir build cd build cmake .. make sudo make install sudo ldconfig cd ..
三、安装SoapySDRPlay插件
这是SoapySDR运行库的一个插件,必须安装这个插件才能正常使用RSP1。
git clone https://github.com/pothosware/SoapySDRPlay.git cd SoapySDRPlay mkdir build cd build cmake .. make sudo make install
四、安装rx_tools
git clone https://github.com/rxseger/rx_tools cd rx_tools mkdir build cd build cmake .. make sudo make install sudo ldconfig cd ..
五、将内核模块加入黑名单
某些内核模块会锁定USB设备,需要在使用SDR设备之前将其禁用。
如果内核模块未正确列入黑名单,则可能会出现“device not found”错误。
将RTL-SDR列入黑名单
/etc/modprobe.d/blacklist-rtlsdr.conf
下创建文件,内容为:
blacklist dvb_usb_rtl28xxu
然后reboot重启树莓派。
将SDRplay列入黑名单
/etc/modprobe.d/blacklist-sdrplay.conf
下创建文件,内容为:
blacklist sdr_msi3101 blacklist msi001 blacklist msi2500
然后reboot重启树莓派。
六、测试SDR设备
- 创建SDR实例:SoapySDRUtil –make
- 显示已识别的SDR设备:SoapySDRUtil –find
七、添加配置文件到“config_webrx.py“
一定要把以前就得配置文件注释或删除掉
soapy_device_query="0" #can be a number or can correspond to a driver, e.g. soapy_device_query="driver=hackrf", see `rx_sdr --help` start_rtl_command="rx_sdr -d {device_query} -F CF32 -s {samp_rate} -f {center_freq} -p {ppm} -g {rf_gain} -".format(device_query=soapy_device_query, rf_gain=rf_gain, center_freq=center_freq, samp_rate=samp_rate, ppm=ppm) format_conversion=""
八、完成,可以启动OpenWebRX了
python2 openwebrx.py
其它配置
自启动运行OpenWebRX程序
官方写一了个开机运行脚本,使用的是tmux。就直接搬过来参考喽。
首先安装tmux
sudo apt-get install tmux
编辑 /etc/rc.local ,在 exit 0 前添加以下内容:
sudo -H -u pi tmux new -d -s openwebrx-session 'bash -c "cd /home/pi/sdr/openwebrx; ./openwebrx.py&./sdrhu.py; bash"'
当中cd命令后面记得修改为你自己OpenWebRX所在的路径
重启树莓派后这个程序自动启动运行的,可以通过 “tmux a”来查看
更多详细文档请参阅官方WIKI!
make 没有指明目标并且找不到
sudo make install 没有规则可制作目标
为什么运行这两个指令时会这样 在第三步
你的编译文件在哪里,路径正确吗?