Волна заменяет Pi-Star и WPSD на хотспотах с модемом MMDVM. Она сама и есть операционная система, ни Raspberry Pi OS, ни Armbian под неё ставить не нужно: ядро Linux, собранное под хотспот, и ничего сверх того, что нужно для эфира. Настраивается всё с телефона, через мастер.
VolnaWriter 1.4 · 75 КБ · Windows 10 и 11
Программа сама скачает стабильную версию Волны, запишет её на карту памяти и проверит запись. Заодно можно сразу вписать домашний Wi-Fi и пароль панели. Плату выбираете в программе: Pi 1 B+, Zero W, Zero 2W, 3B и 3B+, Pi 4 и Pi 5 (для них отдельная 64-битная сборка) или Orange Pi Zero. Записывая карту, вы принимаете лицензионное соглашение.
Программа без цифровой подписи, поэтому при первом запуске Windows может
показать «Система Windows защитила ваш компьютер». Нажмите «Подробнее», затем «Выполнить в любом
случае». Права администратора нужны, чтобы записать карту целиком.
SHA-256: 57d80fbac14e6e1d49dca189c4b2edcd4f706cc5d041df84dd53a4669220f17f
Так выглядит экран хотспота: загрузка, ожидание и входящий вызов. Картинки нарисованы тем же кодом, что работает на плате.
Pi 1 B+, Zero W, Zero 2W, 3B и 3B+ работают на одном 32-битном образе, Pi 4 и Pi 5 на отдельном 64-битном. Модем MMDVM_HS на GPIO или по USB, симплекс и дуплекс. У Pi 1 B+ своего Wi-Fi нет: по кабелю или через USB-свисток Wi-Fi на чипе Realtek.
Своя сборка на основном ядре Linux 6.12, образ 47 МБ, 256 МБ памяти хватает с запасом. Проверена с дуплексной шляпой MMDVM_HS_Dual_Hat: эфир, экран, встроенный Wi-Fi, USB-модемы и обновления по воздуху работают. Прошивку самого модема пока меняют только с компьютера.
Волна ESP: та же шляпа MMDVM_HS на четырёх проводах к плате ESP32 или ESP32-S3. Симплекс DMR, один сервер Homebrew (BrandMeister, MiniDMR, HBlink), OLED-экран, веб-панель и обновления по воздуху. Карта памяти не нужна: плата шьётся прямо из браузера Chrome или Edge, прошивальщик здесь. Какие платы ESP подходят, на отдельной странице.
Pi-Star и WPSD устроены одинаково: берётся Raspberry Pi OS, то есть полный Debian, и сверху ставится панель хотспота. Вместе с ней на плате живут менеджер пакетов, systemd, Python, PHP, веб-сервер и сотни программ, которые хотспоту ни разу не понадобятся. Только образ Raspberry Pi OS Lite весит 525 МБ и занимает на карте почти 3 ГБ.
Волну мы собираем сами из исходников, на Buildroot. Ядро Linux 6.18 настроено под Raspberry Pi и хотспот: из модулей в нём только Wi-Fi, SPI, доступ к GPIO, датчик питания и один драйвер модемов, всего 20. Вся система, кроме ядра, это 995 файлов и 21 МБ в сжатом виде, а образ для записи на карту весит 73 МБ. Для Pi 4 и Pi 5 та же система собрана под 64 бита, её образ занимает 78 МБ. Для Orange Pi Zero своя сборка на основном ядре Linux 6.12, образ 47 МБ. Больше половины файлов, 513, это крошечные описания USB-модемов, по которым хотспот переводит 3G-свистки из режима флешки в режим модема. Мы знаем, откуда взялся каждый из этих файлов и зачем он нужен. Лишнего, которое может сломаться, занять память или открыть дыру, там просто нет.
Внутри одна программа volnad на Go и два проверенных компонента G4KLX:
MMDVMHost и DMRGateway. Без PHP, отдельного веб-сервера, базы данных и Python. Пакеты на
плату не ставятся: обновление заменяет систему целиком, поэтому на всех хотспотах одной
версии стоит одно и то же, байт в байт.
Корень системы при загрузке копируется в оперативную память и монтируется только для чтения. Выдернутое питание её не портит, а на карту пишутся только настройки, ключи и лицензия, так что карта не изнашивается логами. От включения до входа в сеть DMR проходит около 30 секунд.
На карте два слота с системой. Обновление пишется в свободный, плата пробует загрузиться в него и закрепляет его, только если поднялась сеть, ответил модем и прошёл вход на сервер. Если нет, следующая перезагрузка возвращает прежнюю версию, а причина приходит нам в отчёте. Это проверено на сломанных сборках: с паникой ядра, с неработающим шлюзом и с системой, которая не дошла до запуска.