16 KiB
📖 Полная инструкция по установке DVSwitch-Server на Ubuntu 22.04
Автор: ua1zbe
Дата: Апрель 2026
Сервер: 192.168.1.34 (Ubuntu 22.04 LTS)
📋 Оглавление
- Введение
- Требования к системе
- Проблемы при установке и их решения
- Пошаговая установка
- Настройка веб-дашборда
- Настройка Android приложения
- Конфигурация DVSwitch
- Управление сервисами
- Диагностика проблем
📌 Введение
DVSwitch-Server — это серверное ПО для радиолюбителей, позволяющее подключаться к цифровым сетям (DMR, D-STAR, YSF, NXDN, P25) через IP. Состоит из нескольких компонентов:
| Компонент | Назначение |
|---|---|
| Analog_Bridge | Преобразование между аналоговым и цифровым аудио (AMBE/IMBE ↔ PCM) |
| MMDVM_Bridge | Мост между различными цифровыми режимами |
| DVSwitch-Server | Основной серверный пакет |
| Web_Proxy | Веб-интерфейс для передачи аудио |
| DVSwitch Dashboard | Веб-дашборд для мониторинга |
| md380-emu | Эмулятор AMBE вокодера |
🖥️ Требования к системе
- ОС: Ubuntu 20.04/22.04 LTS или Debian 10/11/12
- RAM: Минимум 512 MB (рекомендуется 1 GB)
- Диск: 2 GB свободного места
- Сеть: Статический IP-адрес
- Права: root или sudo доступ
⚠️ Проблемы при установке и их решения
Проблема 1: Репозиторий DVSwitch недоступен для Ubuntu 22.04
Симптомы:
wget http://dvswitch.org/buster
./buster
# Ошибка: Distribution is 'bookworm', exiting.
Причина: Скрипт buster проверяет версию ОС и отказывается работать на Ubuntu 22.04 (jammy).
Решение: Использовать скрипт bookworm вместо buster:
wget http://dvswitch.org/bookworm
chmod +x bookworm
sudo ./bookworm
Проблема 2: Конфликт веб-серверов (Apache vs lighttpd)
Симптомы:
Job for apache2.service failed because the control process exited with error code.
(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
Причина: DVSwitch устанавливает lighttpd, но Apache также пытается занять порт 80.
Решение:
# Остановить Apache
sudo systemctl stop apache2
sudo systemctl disable apache2
# Запустить lighttpd
sudo systemctl restart lighttpd
Проблема 3: Dashboard показывает страницу Apache вместо DVSwitch
Симптомы: При открытии http://IP-адрес/ показывается "Apache2 Ubuntu Default Page"
Причина: DVSwitch Dashboard установлен в /usr/share/dvswitch/, но lighttpd настроен на /var/www/html.
Решение:
# Изменить конфигурацию lighttpd
sudo sed -i 's|server.document-root.*|server.document-root = "/usr/share/dvswitch/"|' /etc/lighttpd/lighttpd.conf
# Перезапустить lighttpd
sudo systemctl restart lighttpd
Проблема 4: Сервисы не запускаются автоматически
Симптомы:
systemctl status analog_bridge
# Active: inactive (dead)
Причина: Конфигурационные файлы могут содержать ошибки или отсутствовать.
Решение:
# Проверить конфигурацию
cat /opt/Analog_Bridge/Analog_Bridge.ini
# Запустить вручную для проверки
/opt/Analog_Bridge/Analog_Bridge /opt/Analog_Bridge/Analog_Bridge.ini
# Если OK, запустить сервис
sudo systemctl start analog_bridge
sudo systemctl enable analog_bridge
Проблема 5: Ошибки при загрузке TGList и YSFHosts
Симптомы:
Error, YSFHosts.txt file does not seem to be valid
Warning, download failure
Error, TGList_TGIF.txt file does not seem to exist
Причина: Файлы баз данных не загрузились при установке.
Решение:
# Перезапустить сервисы для повторной попытки
sudo systemctl restart mmdvm_bridge
# Или скачать вручную
cd /opt/MMDVM_Bridge
wget https://raw.githubusercontent.com/DVSwitch/YSFGateway/master/YSFHosts.txt
🚀 Пошаговая установка
Шаг 1: Подготовка системы
# Обновить систему
sudo apt update && sudo apt upgrade -y
# Установить необходимые пакеты
sudo apt install -y wget curl git net-tools
Шаг 2: Добавление репозитория DVSwitch
# Скачать скрипт репозитория (bookworm для Ubuntu 22.04)
cd ~
wget http://dvswitch.org/bookworm
# Сделать исполняемым
chmod +x bookworm
# Запустить от root
sudo ./bookworm
Ожидаемый вывод:
Starting DVSwitch repository install/correction
Downloading DVSwitch GPG keyring...
Verified: Valid DVSwitch Keyring (72147EC1E788D4C3)
Configuring /etc/apt/sources.list.d/dvswitch.list...
Updating package information...
Finished DVSwitch repository install
Шаг 3: Установка DVSwitch-Server
# Обновить список пакетов
sudo apt update
# Установить DVSwitch-Server с веб-сервером
sudo apt install -y dvswitch-server lighttpd php-cgi
Время установки: ~5-10 минут
Занимаемое место: ~238 MB
Шаг 4: Исправление конфликта веб-серверов
# Остановить Apache (если установлен)
sudo systemctl stop apache2
sudo systemctl disable apache2
# Настроить lighttpd для DVSwitch Dashboard
sudo sed -i 's|server.document-root.*|server.document-root = "/usr/share/dvswitch/"|' /etc/lighttpd/lighttpd.conf
# Перезапустить lighttpd
sudo systemctl restart lighttpd
Шаг 5: Проверка установки
# Проверить версию
dvs --version
# Проверить сервисы
sudo systemctl status analog_bridge
sudo systemctl status mmdvm_bridge
sudo systemctl status webproxy
# Проверить веб-дашборд
curl http://localhost/ | grep "DVSwitch Dashboard"
🌐 Настройка веб-дашборда
Доступ к дашборду
- Откройте браузер
- Введите:
http://192.168.1.34/(замените на ваш IP) - Должен открыться DVSwitch Dashboard
Разделы дашборда:
| Раздел | Описание |
|---|---|
| Last Heard | Последние прослушанные станции |
| Local RF | Локальные передачи |
| System Monitor | Загрузка CPU, память, температура |
| Settings | Текущие настройки сервера |
📱 Настройка Android приложения
Шаг 1: Установка DVSwitch Mobile
Вариант A: Google Play Store
1. Откройте Google Play Store
2. Найдите "DVSwitch Mobile"
3. Установите приложение
Вариант B: APK файл
1. Посетите: https://apkpure.com/dvswitch-mobile/org.dvswitch
2. Скачайте последнюю версию APK
3. Установите на устройство (разрешите установку из неизвестных источников)
Шаг 2: Настройка подключения
-
Откройте DVSwitch Mobile
-
Нажмите "Add Connection"
-
Заполните параметры:
Параметр Значение Connection Type USRP (Analog_Bridge) IP Address 192.168.1.34 (IP вашего сервера) Port 31001 Username (оставьте пустым) Password (оставьте пустым) Caller ID Ваш DMR ID -
Нажмите "Save"
-
Подключитесь: Нажмите на созданное подключение
Шаг 3: Проверка подключения
- Нажмите PTT (Push-To-Talk) в приложении
- Говорите в микрофон
- Проверьте дашборд — должна появиться активность
- Проверьте логи сервера:
sudo journalctl -u analog_bridge -f
⚙️ Конфигурация DVSwitch
Настройка Analog_Bridge
Файл: /opt/Analog_Bridge/Analog_Bridge.ini
[GENERAL]
logLevel = 2
exportMetadata = true
transferRootDir = /tmp
subscriberFile = /var/lib/dvswitch/subscriber_ids.csv
decoderFallBack = true
useEmulator = true
emulatorAddress = 127.0.0.1:2470
pcmPort = 2222
[AMBE_AUDIO]
address = 127.0.0.1
txPort = 31103
rxPort = 31100
ambeMode = DMR
minTxTimeMS = 2500
gatewayDmrId = 1234567 ; ← Ваш DMR ID
repeaterID = 123456789 ; ← Ваш ID повторителя
txTg = 9 ; ← TG по умолчанию
txTs = 2 ; ← Слот (1 или 2)
colorCode = 1
[USRP]
address = 0.0.0.0 ; ← Слушать все интерфейсы
txPort = 31001 ; ← Порт для DVSwitch Mobile
rxPort = 31001
usrpAudio = AUDIO_USE_GAIN
usrpGain = 1.10
Настройка MMDVM_Bridge
Файл: /opt/MMDVM_Bridge/MMDVM_Bridge.ini
[General]
Callsign=UA1ZBE
RptAddress=127.0.0.1
RptPort=31103
LocalAddress=127.0.0.1
LocalPort=31100
Debug=0
[DMR Network]
Enable=1
Address=brandmeister.network
Port=62031
Password=ваш_пароль ; ← Пароль от BrandMeister
Id=1234567 ; ← Ваш DMR ID
Настройка для BrandMeister
-
Получите пароль:
- Посетите: https://brandmeister.network/
- Войдите под своим DMR ID
- Получите пароль для DVSwitch
-
Отредактируйте MMDVM_Bridge.ini:
[DMR Network] Enable=1 Address=brandmeister.network Port=62031 Password=ваш_пароль_от_BrandMeister Id=1234567 -
Перезапустите сервисы:
sudo systemctl restart mmdvm_bridge sudo systemctl restart analog_bridge
🔧 Управление сервисами
Запуск/остановка/перезапуск
# Analog_Bridge
sudo systemctl start analog_bridge
sudo systemctl stop analog_bridge
sudo systemctl restart analog_bridge
# MMDVM_Bridge
sudo systemctl start mmdvm_bridge
sudo systemctl stop mmdvm_bridge
sudo systemctl restart mmdvm_bridge
# Web_Proxy
sudo systemctl start webproxy
sudo systemctl stop webproxy
sudo systemctl restart webproxy
# Все сервисы сразу
sudo systemctl restart analog_bridge mmdvm_bridge webproxy
Автозапуск при загрузке
sudo systemctl enable analog_bridge
sudo systemctl enable mmdvm_bridge
sudo systemctl enable webproxy
sudo systemctl enable md380-emu
Просмотр логов
# В реальном времени
sudo journalctl -u analog_bridge -f
sudo journalctl -u mmdvm_bridge -f
# Последние 50 строк
sudo journalctl -u analog_bridge -n 50
# За сегодня
sudo journalctl -u analog_bridge --since today
Проверка статуса
# Все сервисы DVSwitch
sudo systemctl list-units --type=service | grep -E "analog|mmdvm|webproxy|dvswitch"
# Детальный статус
sudo systemctl status analog_bridge --no-pager
🐛 Диагностика проблем
Сервис не запускается
# Проверить статус
sudo systemctl status analog_bridge
# Проверить логи
sudo journalctl -u analog_bridge -n 100
# Проверить конфигурацию
/opt/Analog_Bridge/Analog_Bridge --check /opt/Analog_Bridge/Analog_Bridge.ini
# Запустить вручную для отладки
/opt/Analog_Bridge/Analog_Bridge /opt/Analog_Bridge/Analog_Bridge.ini
Веб-дашборд не открывается
# Проверить lighttpd
sudo systemctl status lighttpd
# Проверить порт 80
sudo netstat -tlnp | grep :80
# Проверить конфигурацию
cat /etc/lighttpd/lighttpd.conf | grep document-root
# Перезапустить
sudo systemctl restart lighttpd
Нет звука при передаче
-
Проверьте настройки gain в Analog_Bridge.ini:
usrpAudio = AUDIO_USE_GAIN usrpGain = 1.50 ; Увеличьте значение -
Проверьте логи на ошибки AMBE:
sudo journalctl -u analog_bridge | grep -i ambe -
Убедитесь, что md380-emu запущен:
sudo systemctl status md380-emu
Приложение не подключается
-
Проверьте брандмауэр:
sudo ufw status sudo ufw allow 31001/udp sudo ufw allow 2222/udp -
Проверьте, что порт слушается:
sudo netstat -ulnp | grep 31001 -
Проверьте IP-адрес в приложении:
- Должен совпадать с
hostname -Iна сервере
- Должен совпадать с
📊 Порты и протоколы
| Порт | Протокол | Назначение |
|---|---|---|
| 31001 | UDP | USRP (DVSwitch Mobile) |
| 31100 | UDP | MMDVM_Bridge ↔ Analog_Bridge (RX) |
| 31103 | UDP | MMDVM_Bridge ↔ Analog_Bridge (TX) |
| 2222 | UDP | Web_Proxy (аудио поток) |
| 2470 | UDP | md380-emu (AMBE эмулятор) |
| 80 | TCP | Веб-дашборд |
📝 Полезные команды
# Проверка версии DVSwitch
dvs --version
# Меню конфигурации (интерактивное)
sudo dvs
# Пересоздать конфигурацию
sudo /usr/local/dvs/init_config.sh
# Обновить базу DMR ID
sudo /usr/local/dvs/tgdb.sh
# Проверка сети
ping -c 4 brandmeister.network
# Мониторинг в реальном времени
watch -n 1 'sudo systemctl status analog_bridge mmdvm_bridge --no-pager'
🔗 Полезные ссылки
- Официальный сайт: http://dvswitch.org/
- GitHub DVSwitch: https://github.com/DVSwitch
- DVSwitch Mobile (APK): https://apkpure.com/dvswitch-mobile/org.dvswitch
- BrandMeister: https://brandmeister.network/
- Форум DVSwitch: https://dvswitch.groups.io/g/main
- Wiki DVSwitch Mobile: https://dvswitch.groups.io/g/Mobile/wiki
📞 Поддержка
Если возникли проблемы:
- Проверьте логи:
sudo journalctl -u analog_bridge -f - Проверьте конфигурацию:
cat /opt/Analog_Bridge/Analog_Bridge.ini - Обратитесь на форум: https://dvswitch.groups.io/
- Проверьте wiki: https://dvswitch.groups.io/g/main/wiki
Версия инструкции: 1.0
Последнее обновление: Апрель 2026
Протестировано на: Ubuntu 22.04 LTS