manuals/DVSwitch_Installation_Guide.md

16 KiB
Raw Permalink Blame History

📖 Полная инструкция по установке DVSwitch-Server на Ubuntu 22.04

Автор: ua1zbe
Дата: Апрель 2026
Сервер: 192.168.1.34 (Ubuntu 22.04 LTS)


📋 Оглавление

  1. Введение
  2. Требования к системе
  3. Проблемы при установке и их решения
  4. Пошаговая установка
  5. Настройка веб-дашборда
  6. Настройка Android приложения
  7. Конфигурация DVSwitch
  8. Управление сервисами
  9. Диагностика проблем

📌 Введение

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"

🌐 Настройка веб-дашборда

Доступ к дашборду

  1. Откройте браузер
  2. Введите: http://192.168.1.34/ (замените на ваш IP)
  3. Должен открыться 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: Настройка подключения

  1. Откройте DVSwitch Mobile

  2. Нажмите "Add Connection"

  3. Заполните параметры:

    Параметр Значение
    Connection Type USRP (Analog_Bridge)
    IP Address 192.168.1.34 (IP вашего сервера)
    Port 31001
    Username (оставьте пустым)
    Password (оставьте пустым)
    Caller ID Ваш DMR ID
  4. Нажмите "Save"

  5. Подключитесь: Нажмите на созданное подключение


Шаг 3: Проверка подключения

  1. Нажмите PTT (Push-To-Talk) в приложении
  2. Говорите в микрофон
  3. Проверьте дашборд — должна появиться активность
  4. Проверьте логи сервера:
    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

  1. Получите пароль:

  2. Отредактируйте MMDVM_Bridge.ini:

    [DMR Network]
    Enable=1
    Address=brandmeister.network
    Port=62031
    Password=ваш_пароль_от_BrandMeister
    Id=1234567
    
  3. Перезапустите сервисы:

    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

Нет звука при передаче

  1. Проверьте настройки gain в Analog_Bridge.ini:

    usrpAudio = AUDIO_USE_GAIN
    usrpGain = 1.50    ; Увеличьте значение
    
  2. Проверьте логи на ошибки AMBE:

    sudo journalctl -u analog_bridge | grep -i ambe
    
  3. Убедитесь, что md380-emu запущен:

    sudo systemctl status md380-emu
    

Приложение не подключается

  1. Проверьте брандмауэр:

    sudo ufw status
    sudo ufw allow 31001/udp
    sudo ufw allow 2222/udp
    
  2. Проверьте, что порт слушается:

    sudo netstat -ulnp | grep 31001
    
  3. Проверьте 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'

🔗 Полезные ссылки


📞 Поддержка

Если возникли проблемы:

  1. Проверьте логи: sudo journalctl -u analog_bridge -f
  2. Проверьте конфигурацию: cat /opt/Analog_Bridge/Analog_Bridge.ini
  3. Обратитесь на форум: https://dvswitch.groups.io/
  4. Проверьте wiki: https://dvswitch.groups.io/g/main/wiki

Версия инструкции: 1.0
Последнее обновление: Апрель 2026
Протестировано на: Ubuntu 22.04 LTS