mirror of
http://git.ua1zbe.ru/ua1zbe/manuals.git
synced 2026-04-03 15:29:22 +00:00
2026
This commit is contained in:
603
DVSwitch_Installation_Guide.md
Normal file
603
DVSwitch_Installation_Guide.md
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user