kendelmccarley/AeroScan
GitHub: kendelmccarley/AeroScan
AeroScan 是一个基于树莓派和 Buildroot 的自包含航空扫描仪,集成 ADS-B 雷达显示、GPS 定位、航图叠加和航空频段收音机于一体。
Stars: 0 | Forks: 0
# AeroScan
AeroScan 是一个专为 Raspberry Pi 打造的自包含航空扫描仪:一个雷达屏幕
风格的 Qt GUI,可显示实时 ADS-B 流量(RTL-SDR + dump1090)、GPS 定位、
航图叠加层、航空频段收音机调谐器以及 WiFi/Bluetooth 设备
管理——所有这些均运行在一个最小化的 Buildroot Linux 镜像上,开机即
直接启动该应用程序。它是 [avBadge 2024 "Winglet"](https://github.com/AerospaceVillage/avBadge_2024)
徽章固件的移植版本,将其从定制的 Allwinner T113S 硬件移植到了通用的 Raspberry Pi
硬件上。
AeroScan && cd AeroScan
make download-buildroot # one-time: fetch Buildroot 2024.02
# 地图瓦片需要免费的 OpenAIP API key(https://www.openaip.net → Account → API Keys)
echo YOUR_OPENAIP_KEY > .openaip-key
make rpi4 # configure + full build (or: make rpi2)
```
将生成的镜像刷入 SD 卡:
```
# oflag=direct + conv=fsync 使 dd 阻塞,直到数据物理写入
# 存储卡——如果没有它们,过早拔出存储卡会悄无声息地损坏 rootfs
dd if=output/rpi4/images/sdcard.img of=/dev/sdX bs=4M oflag=direct conv=fsync status=progress
```
常用目标(完整列表请参见 `Makefile`):
| 目标 | 用途 |
|---|---|
| `make rpi4` / `make rpi2` | 配置 + 构建完整镜像 |
| `make menuconfig-rpi4` | 交互式 Buildroot 配置 |
| `make savedefconfig-rpi4` | 将配置写回 defconfig |
| `make rpi4--rebuild` | 重新构建单个软件包(例如在 GUI 源码更改后运行 `make rpi4-aeroscan-gui-rebuild && make rpi4`) |
| `make clean-rpi4` | 移除构建输出 |
## 地图切片
航图切片(OpenAIP 叠加层:空域、机场、NAVAIDs;CONUS,
缩放级别 7–10)**不存储在此仓库中**。它们会在
构建过程中自动下载:
- 开发板的 `post-build.sh` 会运行 `tools/fetch-aviation-tiles.py`,该脚本会
填充项目根目录下的 `maps-cache/`,并将切片安装到镜像的
`/opt/winglet-gui/maps` 目录中。
- `maps-cache/` 已被添加到 gitignore,并且在执行 `make clean` 后会保留。首次构建会花费
几个小时进行下载(约 120 MB,进行了速率限制以遵守 OpenAIP 免费
层级的要求);后续构建会从缓存恢复,瞬间完成。
- 下载时需要在 `.openaip-key` 文件(或 `OPENAIP_KEY` 环境变量)中提供 OpenAIP API 密钥。如果没有密钥,构建依然会成功,
只是不会包含地图切片。
- 该密钥会在构建时写入镜像的 `/etc/aeroscan/openaip.key` 文件中,这样以后就可以在设备上通过 `aeroscan-fetch-tiles`(或 `aeroscan-setup`)
刷新切片,而无需重新构建。
## 首次启动
在首次启动时,根分区会自动扩展以填满整个 SD
卡(`aeroscan-expand-rootfs.service`,在启动早期运行一次,耗时几
秒)。启动后会进入 tty1 shell(由于移植工作仍在积极开发中,Pi 4 镜像上的 GUI 服务被预设为禁用状态)。在
控制台上或通过 SSH 运行 `aeroscan-setup` 来配置 WiFi、显示器
和主机名,然后使用 `systemctl start aeroscan-gui` 启动
GUI,或者直接运行 `aeroscan-gui`。
## 仓库结构
```
Makefile Top-level build entry points (wraps Buildroot)
aeroscan-gui/ Qt5 application source (radar scope, map, settings, …)
buildroot-external/ Buildroot external tree (BR2_EXTERNAL)
configs/ aeroscan_rpi2_defconfig, aeroscan_rpi4_defconfig
board/rpi2/, rpi4/ config.txt, cmdline.txt, kernel fragments, rootfs
overlays, post-build/post-image scripts
board/common/overlay/ Shared on-device tools (aeroscan-setup,
aeroscan-fetch-tiles, NASR updater)
package/ aeroscan-gui and rpi4-wifi-firmware packages
tools/ Host-side tile download scripts
maps-cache/ (gitignored) build-time tile cache
buildroot/, output/ (gitignored) Buildroot tree and build output
```
## 状态
- **Pi 2**:显示 + 触摸,Qt GUI,ADS-B 正常工作;WiFi 正在调试中。
- **Pi 4**:主要目标。显示器自动检测(首选 DSI,回退到
HDMI),触摸输入旋转,应用内 Bluetooth 配对(BlueZ D-Bus,
屏幕上会显示密钥),音频输出选择(耳机插孔 / HDMI),
WiFi 和 SSH。代码已完成;正在进行设备验证。
进一步的设计说明位于 `DEVELOPMENT_PLAN.md` 中。
Main menu (design-system render of the 800×480 instrument UI)
标签:ADS-B, Buildroot, Linux系统, Qt GUI, 航空电子, 软件定义无线电, 逆向工具