From f32b9fa60074d4f562d3fb29da787f1cf32557ae Mon Sep 17 00:00:00 2001 From: ua1zbe Date: Thu, 2 Apr 2026 19:04:39 +0000 Subject: [PATCH] 2026 --- DVSwitch_Installation_Guide.md | 603 +++++++++++++++++++++++++++++++++ 1 file changed, 603 insertions(+) create mode 100644 DVSwitch_Installation_Guide.md diff --git a/DVSwitch_Installation_Guide.md b/DVSwitch_Installation_Guide.md new file mode 100644 index 0000000..8340575 --- /dev/null +++ b/DVSwitch_Installation_Guide.md @@ -0,0 +1,603 @@ +# 📖 Полная инструкция по установке DVSwitch-Server на Ubuntu 22.04 + +> **Автор:** ua1zbe +> **Дата:** Апрель 2026 +> **Сервер:** 192.168.1.34 (Ubuntu 22.04 LTS) + +--- + +## 📋 Оглавление + +1. [Введение](#введение) +2. [Требования к системе](#требования-к-системе) +3. [Проблемы при установке и их решения](#проблемы-при-установке-и-их-решения) +4. [Пошаговая установка](#пошаговая-установка) +5. [Настройка веб-дашборда](#настройка-веб-дашборда) +6. [Настройка Android приложения](#настройка-android-приложения) +7. [Конфигурация DVSwitch](#конфигурация-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 + +**Симптомы:** +```bash +wget http://dvswitch.org/buster +./buster +# Ошибка: Distribution is 'bookworm', exiting. +``` + +**Причина:** Скрипт `buster` проверяет версию ОС и отказывается работать на Ubuntu 22.04 (jammy). + +**Решение:** Использовать скрипт `bookworm` вместо `buster`: +```bash +wget http://dvswitch.org/bookworm +chmod +x bookworm +sudo ./bookworm +``` + +--- + +### Проблема 2: Конфликт веб-серверов (Apache vs lighttpd) + +**Симптомы:** +```bash +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. + +**Решение:** +```bash +# Остановить 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`. + +**Решение:** +```bash +# Изменить конфигурацию lighttpd +sudo sed -i 's|server.document-root.*|server.document-root = "/usr/share/dvswitch/"|' /etc/lighttpd/lighttpd.conf + +# Перезапустить lighttpd +sudo systemctl restart lighttpd +``` + +--- + +### Проблема 4: Сервисы не запускаются автоматически + +**Симптомы:** +```bash +systemctl status analog_bridge +# Active: inactive (dead) +``` + +**Причина:** Конфигурационные файлы могут содержать ошибки или отсутствовать. + +**Решение:** +```bash +# Проверить конфигурацию +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 + +**Симптомы:** +```bash +Error, YSFHosts.txt file does not seem to be valid +Warning, download failure +Error, TGList_TGIF.txt file does not seem to exist +``` + +**Причина:** Файлы баз данных не загрузились при установке. + +**Решение:** +```bash +# Перезапустить сервисы для повторной попытки +sudo systemctl restart mmdvm_bridge + +# Или скачать вручную +cd /opt/MMDVM_Bridge +wget https://raw.githubusercontent.com/DVSwitch/YSFGateway/master/YSFHosts.txt +``` + +--- + +## 🚀 Пошаговая установка + +### Шаг 1: Подготовка системы + +```bash +# Обновить систему +sudo apt update && sudo apt upgrade -y + +# Установить необходимые пакеты +sudo apt install -y wget curl git net-tools +``` + +--- + +### Шаг 2: Добавление репозитория DVSwitch + +```bash +# Скачать скрипт репозитория (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 + +```bash +# Обновить список пакетов +sudo apt update + +# Установить DVSwitch-Server с веб-сервером +sudo apt install -y dvswitch-server lighttpd php-cgi +``` + +**Время установки:** ~5-10 минут +**Занимаемое место:** ~238 MB + +--- + +### Шаг 4: Исправление конфликта веб-серверов + +```bash +# Остановить 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: Проверка установки + +```bash +# Проверить версию +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. Проверьте логи сервера: + ```bash + sudo journalctl -u analog_bridge -f + ``` + +--- + +## ⚙️ Конфигурация DVSwitch + +### Настройка Analog_Bridge + +**Файл:** `/opt/Analog_Bridge/Analog_Bridge.ini` + +```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` + +```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. **Получите пароль:** + - Посетите: https://brandmeister.network/ + - Войдите под своим DMR ID + - Получите пароль для DVSwitch + +2. **Отредактируйте MMDVM_Bridge.ini:** + ```ini + [DMR Network] + Enable=1 + Address=brandmeister.network + Port=62031 + Password=ваш_пароль_от_BrandMeister + Id=1234567 + ``` + +3. **Перезапустите сервисы:** + ```bash + sudo systemctl restart mmdvm_bridge + sudo systemctl restart analog_bridge + ``` + +--- + +## 🔧 Управление сервисами + +### Запуск/остановка/перезапуск + +```bash +# 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 +``` + +### Автозапуск при загрузке + +```bash +sudo systemctl enable analog_bridge +sudo systemctl enable mmdvm_bridge +sudo systemctl enable webproxy +sudo systemctl enable md380-emu +``` + +### Просмотр логов + +```bash +# В реальном времени +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 +``` + +### Проверка статуса + +```bash +# Все сервисы DVSwitch +sudo systemctl list-units --type=service | grep -E "analog|mmdvm|webproxy|dvswitch" + +# Детальный статус +sudo systemctl status analog_bridge --no-pager +``` + +--- + +## 🐛 Диагностика проблем + +### Сервис не запускается + +```bash +# Проверить статус +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 +``` + +--- + +### Веб-дашборд не открывается + +```bash +# Проверить 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:** + ```ini + usrpAudio = AUDIO_USE_GAIN + usrpGain = 1.50 ; Увеличьте значение + ``` + +2. **Проверьте логи на ошибки AMBE:** + ```bash + sudo journalctl -u analog_bridge | grep -i ambe + ``` + +3. **Убедитесь, что md380-emu запущен:** + ```bash + sudo systemctl status md380-emu + ``` + +--- + +### Приложение не подключается + +1. **Проверьте брандмауэр:** + ```bash + sudo ufw status + sudo ufw allow 31001/udp + sudo ufw allow 2222/udp + ``` + +2. **Проверьте, что порт слушается:** + ```bash + 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 | Веб-дашборд | + +--- + +## 📝 Полезные команды + +```bash +# Проверка версии 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 + +--- + +## 📞 Поддержка + +Если возникли проблемы: + +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