跳到内容

集中管理你的SDR们

博主在之前的文章中介绍了如何利用SDR玩无线电监测和APRS信标,而SDR的玩法也不仅仅如此,大多数台友们平时还是直接插在电脑上用软件看频谱的。那么问题来了,天线接在SDR上,SDR插在主机上,你在哪用馈线就得拉到哪。博主的电脑在卧室,服务器在客厅,天线要分别引入这两个房间内,在相当一段时间里博主都在构思如何走线。最终研究出了解决方案:天线、馈线、SDR统一放在外面,只走一根网线进来,连入家中交换机,电脑和服务器通过局域网调用SDR。如此集中管理不但缩短了馈线长度,还兼顾了整洁美观,最重要的是灵活性大大增强,可以在家里的任何一个房间任何位置访问SDR,无需考虑馈线问题,接下来博主就带大家一一实现。

 

原理

窗外设置一台服务器,SDR插在服务器上,使用RTL_TCP和RSP_TCP服务将USB有线连接方式转换为网络端口方式,局域网内的SDR客户端软件通过IP+端口的方式调用服务器上的SDR。

 

准备

服务器:X86架构和ARM架构均可,Linux系统不挑硬件,体积小功耗低就行,但网口速率一定要高,建议1000M,因为传输SDR的采样数据非常占用网络带宽,实测2.4M频宽的RTL-SDR最高占用网络带宽高达40M,更别说10M频宽的SDRPlay了,所有SDR都插在服务器上,那网络带宽占用可想而知,博主推荐使用刷好armbian的玩客云小主机,价钱便宜,而且还是1000M网口,32位的S805 CPU还算够用。

交换机:局域网内交换机同样需要1000M。

SDR:博主使用的是RTL-SDR和SDRPlay,其它类型SDR未作测试,也欢迎各位台友补充方案。

USB Hub:SDR数量较多或供电不足(RTL-SDR通病)时可以加个有源USB集线器。

设备箱:因为是室外,所以需要一个箱子做好防雨防尘工作,这个根据实际情况而定,也可以统一堆放在室内角落。

软件:服务端软件使用RTL_TCP和RSP_TCP,还有驱动和API,客户端软件较多,这里不做列举,SDR设备配置里只要支持TCP方式就行,博主目前使用的是SDRsharp和HDSDR。

 

开工

准备系统环境

SSH方式连入服务器(建议全程使用root用户操作,避免遇到权限问题。)

apt-get update
apt-get install git build-essential cmake automake libusb-1.0-0-dev

 

RTL-SDR

RTL-SDR只需要安装rtl-sdr软件包即可,里面包含驱动和rtl_tcp。

apt-get install rtl-sdr

查看RTL-SDR设备编号(单个SDR编号为0,多个的话为0,1,2,3)

rtl_test

启动rtl_tcp服务(-d为设备编号,填上面命令得出的编号;-P为频偏,之前的博文中有频偏的测量方法;-s为频宽,RTL-SDR的频宽为2.4MHz;-a为服务监听IP,填主机网口IP;-p为端口,多个设备可使用不同的端口加以区分,其它参数就不多说了,使用“rtl_tcp –help”帮助命令查看)

rtl_tcp -d 0 -P 196 -s 2400000 -a 192.168.0.3 -p 1234

这里有一个坑:部分系统会输出“sub_claim_interface error -6 Failed to open rtlsdr device #6”错误,这是因为系统内核自动加载SDR,而rtl_tcp会因系统占用SDR无法调用。解决的方法就是将SDR列入内核黑名单中。

创建黑名单文件

nano /etc/modprobe.d/rtlsdr.conf

写入如下内容,完成后Ctrl+x按y保存并重启系统。

blacklist dvb_usb_rtl28xxu

 

SDRPlay

SDRPlay则麻烦一些,先安装API(博主搬运了32位ARM64位ARM的Ubuntu Dabian版本,大家可以在直接下载,其它系统或X86架构自行官网下载。),此处以32位ARM为例,装完重启系统。

cd ~
wget https://321421.xyz/download/Radio/SDR/SDRplay_RSP_API-ARM32-3.07.2.run
chmod 755 ./SDRplay_RSP_API-ARM32-3.07.2.run
./SDRplay_RSP_API-ARM32-3.07.2.run
reboot

然后编译安装RSPTCPServer

git clone https://github.com/SDRplay/RSPTCPServer
cd RSPTCPServer
mkdir build
cd build
cmake ..
make
make install

启动rsp_tcp服务(参数和rtl_tcp大致相同,使用“rsp_tcp –help”帮助命令查看,这里有一个-E参数,是SDRPlay特有的高级模式,客户端需要安装“ExtIO Plugin”插件)。

rsp_tcp -E -a 192.168.0.3 -p 5678

SDRPlay和RTL-SDR的坑一样:

创建黑名单文件

nano /etc/modprobe.d/sdrplay.conf

写入如下内容,完成后Ctrl+x按y保存并重启系统。

blacklist sdr_msi3101
blacklist msi001
blacklist msi2500

 

 

开机启动

编辑开机启动文件

nano /etc/rc.local

将启动命令加入到“exit 0”的前一行,如: exit 0

 

客户端连接

SDR客户端软件很多,设置方法也各不相同,本文以SDRSharp为例,其它软件可能需要安装额外的插件才能支持TCP网络调用方式。

打开SDRSharp的设备选项,根据上文启动服务时所用的IP、端口、频宽填写即可。

 

完工

杂七杂八都丢外面,家里整齐了许多。

 

APRS网关、MMDVM大热点、OpenWebRX监测站……都塞进去了,还加了散热和照明。

 

生命在于折腾!

发表于无线电

5 Comments

  1. bh9etg bh9etg

    感觉这个挺适合我,rtlsdr和sdrplay都有,就是没有树莓派和玩客云

  2. 窗外景色不错啊 哈哈

  3. PENGCHENG JIA PENGCHENG JIA

    巨佬牛逼666

  4. BH9EQH BH9EQH

    巨佬牛逼,神通广大。
    神功盖世,法驾中原。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注