manuals/DVSwitch_Installation_Guide.md

604 lines
16 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 📖 Полная инструкция по установке 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