当前位置: 首页 > news >正文

ADS-B Receiver 系统逐步安装部署指南

ADS-B Receiver 逐步安装部署技术方案

目录

  1. 方案概述
  2. 环境准备
  3. 第一阶段:基础环境搭建
  4. 第二阶段:解码器安装
  5. 第三阶段:数据分发配置
  6. 第四阶段:Web Portal部署
  7. 第五阶段:扩展组件安装
  8. 第六阶段:系统验证
  9. 第七阶段:配置优化
  10. 第八阶段:监控维护
  11. 故障排查指南
  12. 附录

1. 方案概述

1.1 方案特点

本方案提供逐步式、可执行的安装部署指南,特点如下:

步骤清晰: 每个步骤都有明确的输入和输出
检查点: 关键步骤后提供验证方法
可回退: 支持在任何阶段停止或重新开始
场景化: 支持不同的部署场景选择
实战导向: 所有命令都经过验证可用

1.2 部署路线图

环境准备 ↓ ┌───────────────────────────────────────────────┐ │ 第一阶段: 基础环境搭建 │ │ - 系统更新 │ │ - 依赖安装 │ │ - 用户配置 │ └───────────────────────────────────────────────┘ ↓ ┌───────────────────────────────────────────────┐ │ 第二阶段: 解码器安装 │ │ - ADS-B 解码器 (dump1090/readsb) │ │ - UAT 解码器 (dump978) │ │ - ACARS/VDLM2 解码器 (可选) │ └───────────────────────────────────────────────┘ ↓ ┌───────────────────────────────────────────────┐ │ 第三阶段: 数据分发配置 │ │ - FlightAware PiAware │ │ - ADS-B Exchange │ │ - Flightradar24 │ │ - 其他 Feeders │ └───────────────────────────────────────────────┘ ↓ ┌───────────────────────────────────────────────┐ │ 第四阶段: Web Portal 部署 │ │ - Lighttpd 配置 │ │ - Portal 文件部署 │ │ - 数据库配置 │ │ - 后台服务配置 │ └───────────────────────────────────────────────┘ ↓ ┌───────────────────────────────────────────────┐ │ 第五阶段: 扩展组件 (可选) │ │ - Beast Splitter │ │ - tar1090 │ │ - Graphs1090 │ │ - DuckDNS │ └───────────────────────────────────────────────┘ ↓ ┌───────────────────────────────────────────────┐ │ 第六阶段: 系统验证 │ │ - 服务状态检查 │ │ - 数据流验证 │ │ - Web 界面访问 │ └───────────────────────────────────────────────┘ ↓ 部署完成

1.3 时间预估

阶段耗时说明
环境准备15-30分钟取决于网络速度
解码器安装20-40分钟编译时间
Feeder 配置10-30分钟数量影响
Portal 部署15-25分钟数据库配置
扩展组件10-20分钟可选组件
系统验证5-10分钟测试验证
总计75-125分钟约1-2小时

2. 环境准备

2.1 硬件检查清单

2.1.1 必需硬件

最低配置检查:

# 1. 检查 CPU 架构cpu_arch=$(uname-m)echo"CPU 架构:$cpu_arch"# 期望: armv7l, aarch64, x86_64# 2. 检查可用内存total_mem=$(free-m|grepMem|awk'{print $2}')echo"总内存:${total_mem}MB"# 最低要求: 1GB (Lite), 2GB (Advanced)# 3. 检查可用磁盘空间disk_space=$(df-BG/|awk'NR==2 {print $4}')echo"可用磁盘:${disk_space}GB"# 最低要求: 16GB# 4. 检查网络接口ipaddr show|grep"state UP"# 至少需要一个网络接口

推荐配置检查:

# 检查 CPU 性能 (需要支持多线程)nproc=$(nproc)echo"CPU 核心数:$nproc"# 推荐: 4核心以上# 检查内存性能available_mem=$(free-m|grepMem|awk'{print $7}')echo"可用内存:${available_mem}MB"# 推荐: 4GB 以上# 检查磁盘 I/O (如使用 SSD)disk_type=$(lsblk-d-orota,name|grep"$(df/|awk'NR==2 {print $1}'|sed's|/dev/||')")echo"磁盘类型:$disk_type"# 推荐: SSD (rota=0)
2.1.2 SDR 设备检查
# 1. 检查 USB 设备lsusb# 查找 RTL-SDR 设备 (Realtek, ID 0bda:2832)# 2. 检查设备权限ls-l/dev/bus/usb/# 确认当前用户有访问权限# 3. 检查内核模块lsmod|grepdvb# 如存在 dvb_usb_rtl28xxu,需要黑名单# 4. 测试设备 (如果已安装 rtl_test)rtl_test-t

常见 RTL-SDR 设备:

  • Generic RTL2832U
  • Nooelec NESDR Mini
  • FlightAware Pro Stick
  • RTL-SDR Blog V3

2.2 软件环境准备

2.2.1 操作系统更新
# 更新软件包列表sudoapt-getupdate# 升级已安装的软件包sudoapt-getupgrade-y# 发行版升级 (可选,推荐)sudoapt-getdist-upgrade-y# 清理不需要的包sudoapt-getautoremove-ysudoapt-getautoclean-y
2.2.2 安装基础依赖
# 安装必需的软件包sudoapt-getinstall-y\git\bc\lsb-base\lsb-release\whiptail\wget\curl\unzip\build-essential\cmake\pkg-config# 验证安装git--versionpython3--versionphp--version
2.2.3 配置时区和时间
# 设置时区 (根据地理位置)sudotimedatectl set-timezone Asia/Shanghai# 或: sudo dpkg-reconfigure tzdata# 同步系统时间sudoapt-getinstall-yntpsudosystemctlenablentpsudosystemctl start ntp# 验证时间datetimedatectl

2.3 网络配置

2.3.1 配置静态 IP (推荐)
# 编辑网络配置sudonano/etc/network/interfaces# 添加静态 IP 配置auto eth0 iface eth0 inet static address192.168.1.100 netmask255.255.255.0 gateway192.168.1.1 dns-nameservers8.8.8.88.8.4.4# 重启网络sudosystemctl restart networking
2.3.2 配置防火墙
# 安装 UFW (如未安装)sudoapt-getinstall-yufw# 基本策略sudoufw default deny incomingsudoufw default allow outgoing# 允许必要端口sudoufw allow22/tcp# SSHsudoufw allow80/tcp# HTTPsudoufw allow443/tcp# HTTPS (稍后配置)sudoufw allow30005/tcp# Beast 数据端口# 启用防火墙sudoufwenable# 查看状态sudoufw status

2.4 用户和权限配置

# 创建专用用户 (可选,但推荐)sudoadduser--system--groupwww-data adsb-usersudousermod-aGwww-data,adm,dialout,video adsb-user# 配置 sudo 权限sudovisudo# 添加:# adsb-user ALL=(ALL:ALL) NOPASSWD: /usr/bin/systemctl restart dump1090-fa# adsb-user ALL=(ALL:ALL) NOPASSWD: /usr/bin/systemctl restart piaware

3. 第一阶段: 基础环境搭建

步骤 1.1: 下载安装脚本

# 克隆项目仓库cd~gitclone https://github.com/jprochazka/adsb-receiver.gitcdadsb-receiver# 验证文件ls-l# 应该看到: install.sh, bash/, build/, README.md 等# 赋予执行权限chmod+x install.sh

验证检查点:

  • ✅ 文件下载完整
  • ✅ 版本正确 (查看 CHANGELOG.md)
  • ✅ 有执行权限

步骤 1.2: 执行安装脚本

# 标准安装./install.sh# 或使用参数./install.sh--branch=master --no-logging# 显示帮助./install.sh--help

安装脚本会执行:

  1. ✅ 检测操作系统和版本
  2. ✅ 检测硬件架构
  3. ✅ 安装依赖包 (bc, git, whiptail)
  4. ✅ 配置环境变量
  5. ✅ 创建日志目录

预期输出:

The ADS-B Receiver Installer v2.8.9 Starting ADS-B Receiver Installer package dependency check ------------------------------------------------------------------------------ Updating package lists for all enabled repositories and PPAs Downloading the latest package lists... Ensuring that all required packages are installed [OK] bc [OK] git [OK] lsb-base [OK] lsb-release [OK] whiptail ------------------------------------------------------------------------------ ADS-B Receiver Installer package dependency check complete Press enter to continue...

验证检查点:

  • ✅ 依赖包全部安装成功
  • ✅ 日志目录已创建 (logs/)
  • ✅ 系统信息正确检测

步骤 1.3: 欢迎界面和仓库更新

安装脚本会自动执行bash/init.sh:

执行流程:

# 1. 显示欢迎界面┌────────────────────────────────────────────────────────────────┐ │ The ADS-B Receiver Project │ ├────────────────────────────────────────────────────────────────┤ │ More information on this project can be found at: │ │ https://www.adsbreceiver.net │ │ │ │ Do you wish tocontinuesetup? │ │ │ │<Yes><No>│ └────────────────────────────────────────────────────────────────┘# 2. 选择是否更新系统 (推荐选择 Yes)┌────────────────────────────────────────────────────────────────┐ │ Operating System Updates │ ├────────────────────────────────────────────────────────────────┤ │ It is recommended that you update your system before │ │ building. This script candothisforyou. │ │ │ │ Would you like to update your operating system │ │ now? │ │ │ │<Yes><No>│ └────────────────────────────────────────────────────────────────┘

如果选择更新系统:

# 系统将执行:sudoapt-get-ydist-upgrade# 预期时间: 10-30分钟 (取决于更新数量)

验证检查点:

  • ✅ 系统更新成功
  • ✅ 无错误信息
  • ✅ 所有包都已更新

步骤 1.4: 检查 Git 更新

自动执行的更新:

# 1. 检查本地修改gitstatus--porcelain--untracked-files=no# 2. 如有修改,提示是否 Stash# The ADS-B Receiver Project├────────────────────────────────────────────────────────────────┐ │ Stash Changes To Branch master │ ├────────────────────────────────────────────────────────────────┤ │ There appears to be changes to the current │ │ branch. These changes will need to be stashed. │ │ Would you like to stash these changes now? │ │ │ │<Yes><No>│ └────────────────────────────────────────────────────────────────┘# 3. 切换/拉取指定分支gitcheckout mastergitfetch origingitreset--hardorigin/master

验证检查点:

  • ✅ 代码已更新到最新版本
  • ✅ 分支正确切换
  • ✅ 本地修改已保存 (如有)

4. 第二阶段: 解码器安装

步骤 2.1: ADS-B 解码器选择

执行bash/main.sh后,会看到解码器选择菜单:

┌────────────────────────────────────────────────────────────────┐ │ ADS-B Decoder Selection │ ├────────────────────────────────────────────────────────────────┤ │ The following ADS-B decoders are available: │ │ │ │ 1. None │ │ 2. dump1090-fa │ │ FlightAware's version of the dump1090 │ │ 3. readsb │ │ Wiedehopf's detached fork of readsb │ │ │ │ <Ok> <Cancel> │ └────────────────────────────────────────────────────────────────┘

选择建议:

  • 新手: dump1090-fa (文档完善,社区支持好)
  • 高级用户: readsb (更多功能,性能优化)
  • 测试: 安装两个,通过 Beast Splitter 切换

步骤 2.2: 安装 dump1090-fa

2.2.1 确认安装
┌────────────────────────────────────────────────────────────────┐ │ FlightAware Dump1090 Decoder Setup │ ├────────────────────────────────────────────────────────────────┤ │ FlightAware Dump1090 is an ADS-B, Mode S, │ │ and Mode 3A/3C demodulator and decoder... │ │ │ │ Website: https://www.flightaware.com/ │ │ GitHub: https://github.com/flightaware/dump1090│ │ │ │ Would you like to begin the setup process? │ │ │ │ <Yes> <No> │ └────────────────────────────────────────────────────────────────┘

选择Yes继续。

2.2.2 设备分配
┌────────────────────────────────────────────────────────────────┐ │ Device Assignment │ ├────────────────────────────────────────────────────────────────┤ │ Please select the SDR device to use for: │ │ │ │ [ ] dump1090-fa (ADS-B) │ │ │ │ <Ok> <Cancel> │ └────────────────────────────────────────────────────────────────┘

可用设备列表(自动检测):

  • /dev/bus/usb/001/002(RTL-SDR #1)
  • /dev/bus/usb/001/003(RTL-SDR #2)
  • /dev/bus/usb/002/001(其他 SDR)
2.2.3 依赖安装

脚本自动执行以下安装:

# 自动安装的包sudoapt-getinstall-y\build-essential\debhelper\devscripts\fakeroot\libbladerf-dev\libhackrf-dev\liblimesuite-dev\libncurses-dev\librtlsdr-dev\libsoapysdr-dev\lighttpd\pkg-config

预期输出

http://www.jsqmd.com/news/673049/

相关文章:

  • 从合并日志到游戏对象管理:实战盘点C++ list::splice的5个高频应用场景
  • 别再搞混了!彻底搞懂nav_msgs::OccupancyGrid里的origin、resolution和width/height
  • 别再让PCIe设备‘私聊’了:手把手教你配置ACS服务,堵上P2P传输的安全漏洞
  • CoreXY架构革命:Voron 2.4如何实现300mm/s高速打印的极致精度
  • 从随机数据到平滑曲线:用PCHIP算法在MATLAB中玩转数据插值(保姆级教程)
  • 录播姬终极指南:3分钟快速上手B站直播录制工具
  • 兰亭妙微设计|告别千篇一律:从闲鱼、嘀嗒、饿了么案例看UI设计的差异化巧思
  • Qt 中的队列解析
  • 光口与电口的感性认识
  • 如何让电脑风扇变聪明:FanControl终极静音散热配置指南
  • 13 ControlNet 到底是什么:在 ComfyUI 里理解“可控生成”的关键一步
  • Twine App Builder:让网页游戏变身桌面应用的魔法工具
  • 2026年SCI/EI论文AI润色新突破
  • 从MATLAB仿真到FPGA上板:一个8Mbps通信系统的成形滤波器全链路实现
  • Pybind11实战:在Visual Studio里为你的C++算法快速生成Python接口
  • 别再瞎调PLL了!手把手教你用STM32CubeMX配置STM32F411的100MHz系统时钟(HSI/HSE对比实测)
  • 【5G通信】5G通信超密集网络多连接负载均衡和资源分配【含Matlab源码 15361期】
  • 【EF Core 10向量搜索接入黄金法则】:3步零侵入集成,性能提升470%的实战指南
  • Wan2.2-I2V-A14B企业级部署:Nginx反向代理+HTTPS安全访问配置
  • 基于霍金《时间起源》的弦总线量子计算模型
  • 当PM凌晨提需求时,我的自动化回复机器人亮了:一名测试工程师的“静默”反击与效能革命
  • 3分钟快速安装TrollStore:TrollInstallerX终极指南
  • 多因子情景推演模型:霍尔木兹扰动下的全球资产再定价与波动率重构
  • ViGEmBus虚拟手柄驱动实战指南:3步解决Windows游戏手柄兼容性问题
  • SDUT-python实验一编程题
  • 什么是传输?
  • 终极免费开源字体:Bebas Neue如何解决你的设计困境
  • 告别手搓键盘监听:用Android EditText给Dear ImGui输入框‘打补丁’
  • 零成本实现单机分屏:Nucleus Co-Op让一台电脑变多人游戏主机
  • 压差控制洁净工程:从洁净边界到系统稳定的完整解析