导言
APRS网络中的设备在通过无线电发送APRS信标后,只有附近的设备才能接受到内容。
而如果要接入到全球的APRS-IS网络,分享自己的实时位置。
则需要附近部署APRS iGate,通俗地讲就是一个APRS的数据网关,负责接收、解码、上传附近无线电波中的APRS数据包。
而APRS常用的频率144.640MHz属于VHF段,受到建筑物遮挡的影响非常大,看似近在咫尺的网关却因为一栋大楼的遮挡无法收到你的信标。
所以我们要积极部署更多的iGate,才能在城市中达到更好的效果。
而正常的iGate设备价格常常不菲,故想到利用便宜的SDR+大量洋垃圾Linux小主机来搭建自己的iGate。
正文
准备措施
一、准备硬件
博主测试了以下两种方案:
- 玩客云Onecloud(30元)+ RTL2832u/FC0012 SDR(60元)
- 树莓派1B(60元)+ RTL2832u/FC0012 SDR(60元)
此处更推荐使用玩客云,成本更低,运行稳定,性能更高,缺点是需要一定的动手能力来刷写系统。
因树莓派刷写系统过于简单,本文不做介绍,只对Onecloud的刷写系统步骤做教程。
其中SDR目前有以下几种架构方案:
调谐芯片厂家型号 | 频率范围 | 备注 |
---|---|---|
Elonic E4000 | 52-2200MHz | 已停产 |
Rafael Micro R820T2 | 24-1766MHz | 已停产,常见为蓝色电视棒 |
Refeal Micro R828D | 24-1766MHz | 与R820T2同构,常见为RTL-SDR Blog V4 |
Refeal Micro R860 | 24-1766MHz | 与R828D同构 |
Fitipower FC0013 | 22-1100MHz | |
Fitipower FC0012 | 22-948.6MHz | 便宜,常见为黑色电视棒 很多奸商当820T2卖 |
FlipChip International FC 2580 | 146-308MHz |
对于搭建APRS iGate,推荐购买Fitipower FC0012调谐器的SDR,成本会更低廉。
如要购买其他方案,请注意留意对应的频率范围,必须包含当地的APRS频率到工作频率范围内。
天线可以自信选购,注意对应波段的增益性能,增益越高效果越好。
比较廉价的固定天线方案是吸盘+HH-509F车载玻璃钢,顶配配置Diamond X510。
而使用手台天线,可以考虑RH770拉杆天线,V段增益也来到了3dBi,相当不错。
注意,大部分SDR使用的天线接口为MCX(例如电视棒),可能需要购买MCX-SMA或MCX-UHF的转接头/转接馈线。
二、安装系统
准备一把镊子,一条USB公对公或TypeC对TypeA的数据线(前提是你的电脑有C口,没错,C口接电脑)
下载好以下文件资料:
打开刷写工具,选择下载好的Armbian镜像,我这里下载的镜像是:Armbian-unofficial_24.5.0-trunk_Onecloud_jammy_current_6.6.21_minimal.burn。
给玩客云断电,拆开外壳,将USB一头连接到电脑,一头连接到远离网口的USB口,利用镊子短接对应的触电,插电开机。
直到听到电脑响起有设备接入的提示音后放开镊子,点击软件的开始刷写,然后等待完成,断开USB线,断电重启即可。
短接要求:
V1.1:
V1.3:
三、安装软件
SSH链接主机,请使用ROOT用户进行以下的操作。
- 安装基础环境:
1 | # 更新软件包 |
- 安装RTL-SDR软件:
1 | apt install libusb-1.0-0-dev rtl-sdr -y |
- 拉取Direwolf软件源代码并编译
1 | cd ~ |
请静待编译完成,玩客云大概需要20分钟,树莓派1B大概在1个小时左右
- 创建配置文件
nano /root/direwolf.conf
输入以下内容:
1 | # 输入设备:监听UDP的7355端口,这样比较省资源且不会出现报错情况。 |
Ctrl+O回保存,Ctrl+X退出
- SDR频偏ppm值测量
rtl_test -p
执行命令后等待10分钟以上,等晶振工作温度稳定时,输出的“cumulative PPM”值会趋于恒定,此时就可得出SDR的频偏值。
- 测试运行
将SDR插入小主机并运行如下命令:
rtl_fm -f 144.390M -p 25 - | direwolf -c /root/direwolf.conf -r 24000 -D 1 -
命令原理就是:rtl_fm监听144.640MHz频点(25是以上测得的频偏ppm值,根据实际填写),
并将收到的信号用管道符传递给Direwolf,Direwolf通过配置文件direwolf.conf中的规则将解码后的信标内容上传至APRS-IS服务器。
确认无报错后按Ctrl+C结束命令运行。
- 创建黑名单文件
nano /etc/modprobe.d/rtlsdr.conf
写入下列信息:
blacklist dvb_usb_rtl28xxu
Ctrl+O回保存,Ctrl+X退出
- 创建开机启动
部分新的Linux系统没有rc.local文件了,不用管,先用编辑器尝试修改:
nano /etc/rc.local
如果显示是创建新文件,说明是新版本Linux,先不用管,写入以下信息:
1 | #!/bin/sh -e |
如果文件已经存在内容,只写入以下内容:
1 | rtl_fm -f 144.390M -p 25 - | direwolf -c /root/direwolf.conf -r 24000 -D 1 -& |
注意,启动命令中的参数请自行修改成上述测试命令中的自己的参数。
Ctrl+O回保存,Ctrl+X退出
为其赋予运行权限:
chmod +x /etc/rc.local
如果上述文件是新创建的,请接着看,否则重启你的设备,网关就已经搭建好了。
接下来我们创建系统服务:
vim /etc/systemd/system/rc-local.service
写入以下内容:
1 | [Unit] |
按ESC,:wq回车保存退出
激活服务:
systemctl enable rc-local.service
启动服务:
systemctl start rc-local.service
大功告成!可以用以下命令查看运行输出:
systemctl status rc-local.service
END