Ausgabe 10 Digital Voice Featured

MMDVMHost und DMRGateway einrichten – ohne fertige Images

Wer einen MMDVM-Hotspot oder Relais betreibt, hat im wesentlichen erstmal eine Entscheidung zu treffen wie die nötige Software zum Laufen gebracht wird. Lieber ein fertiges Image wie Pi-Star oder doch alle einzelnen Softwarekomponenten einzeln installieren und konfigurieren?

Ich bin kein Freund von fertigen Images für den Raspberry Pi, denn ich habe gern die volle Kontrolle über die Systeme, die in meinem Netzwerk laufen. Klar kann ich mir das fertige Image auch ganz gründlich anschauen, doch letztendlich kostet es mich weniger Zeit die nötigen Bestandteile selbst zu installieren und zu konfigurieren.

Die Installation wurde auf einem Raspbian Stretch Lite (2018-11-13-raspbian-stretch-lite.img) durchgeführt, welches mittels Paketmanager auf den aktuellen Stand gepatcht wird.

sudo apt update
sudo apt upgrade

Im Prinzip ist die Vorgehensweise bei anderen Distributionen ähnlich. Da mein Hotspot allerdings portabel verwendet werden soll, möchte ich nach der Installation einen Read-Only Modus konfigurieren, um die SD-Karte zu schonen. Das ist mir mit Raspbian Stretch Lite gelungen und mit der vollen Version von Raspian leider nicht.

Da git bei Raspbian Stretch Lite nicht standardmäßig installiert ist, muss es nachinstalliert werden. Wer vim statt nano als Editor nutzen möchte, sollte diesen Editor gleich mitinstallieren.

sudo apt install git vim

Sämtliche für den Hotspot benötigten Applikationen sollen im Ordner /opt/hotspot/ abgelegt werden. Damit später nicht für jeden kleinen Zwischenschritt mit Administrationsrechten gearbeitet werden muss, wird der Nutzer pi der Eigentümer des Verzeichnisses hotspot.

sudo mkdir /opt/hotspot
sudo chown pi:pi /opt/hotspot
cd /opt/hotspot

Mit git clone lassen sich die Inhalte der Repositories beiden MMDVMHost und DMRGateway auschecken.

git clone https://github.com/g4klx/MMDVMHost.git
git clone https://github.com/g4klx/DMRGateway

Zunächst kompilieren wir MMDVMHost mittels make. Dies kann auf einem Raspberry Pi Zero durchaus einige Minuten dauern.

cd /opt/hotspot/MMDVMHost
make

Das Kompilieren von DMRGateway wird ebenfalls mit dem Kommando make gestartet braucht aber etwas weniger Zeit

cd /opt/hotspot/DMRGateway
make

Das Kompilieren der beiden Programme sollte problemlos durchlaufen. Es werden keine besonderen Abhängigkeiten benötigt.

MMDVMHost konfigurieren

Die Konfiguration von ​MMDVMHost erfolgt über die Datei MMDVM.ini, die sich im Hauptzverzeichnis von MMDVMHost befindet. Sektionen werden in einer Initialisierungsdatei mit eckigen Klammern festgelegt. In der Sektion General müssen das Rufzeichen und die CCS7-ID eingetragen werden.

In der Sektion Info werden Angaben zum Hotspot oder Repeater festgelegt. Hier sind Sende- und Empfangsfrequenz, Sendeleistung, Position und Höhe anzugeben. Optional können auch eine Beschreibung sowie eine Web-Adresse angegeben werden. Auch ob ein Duplex-Hotspot verwendet wird, wird hier angegeben.

Viele Parameter in dieser Datei beziehen sich auf die individuell vorliegende Hardware und darauf welche DV-Modi genutzt werden sollen.

Unerlässlich ist beispielsweise in der Sektion Modem die Angabe wie die MMDVM-Platine an das System angeschlossen wird. Auf einem Raspberry Pi Zero mit WLAN ist die serielle Schnittstelle auf dem Pin-Header unter /dev/ttyS0, sofern diese zuvor mittels raspi-config aktiviert wurde.

Da ich die Modi D-Star, System Fusion und P25, nicht verwende, habe diese bis auf weiteres in den entsprechenden Sektionen deaktiviert. Das gilt ebenfalls für Displays oder ähnliches.

Enable=0

Der Fokus bei meinem Hotspot liegt bei DMR. In der Sektion DMR Network wird konfiguriert zu welchem DMR-Netzwerk sich MMDVMHost verbindet.

MMDVMHost kann sich nur zu einem DMR-Netzwerk verbinden. Daher finden sich in anderen Konfigurationsdateien oft Hinweise auf die Masterserver vom DMR+ oder Brandmeister.

Ich möchte aber mehr als ein Netzwerk an meinem Hotspot nutzen. An dieser Stelle kommt das später zu konfigurierende DMRGateway ins Spiel, welches quasi als Vermittler zwischen MMDVMHost und dem eigentlichen Zielnetzwerk fungiert.

[DMR Network]
Enable=1
Address=127.0.0.1
Local=62032
Port=62031
Jitter=360
Password=passw0rd
Slot1Cccc0
Slot2=1
Debug=1

Da ich gern für den Fehlerfall ein funktionierendes Logging hätte, habe ich der Sektion Log folgendes konfiguriert.

[Log]
# Logging levels, 0=No logging
DisplayLevel=1
FileLevel=1
FilePath=/var/log/hotspot
FileRoot=MMDVM

Der Ordner für die Logs muss natürlich angelegt werden. Auch hier wird der Benutzer pi wieder Eigentümer des Ordners.

sudo mkdir /var/log/hotspot
sudo chown pi:pi /var/log/hotspot

Die Änderungen an der Konfigurationsdatei müssen gespeichert werden. Anschließend lässt sich MMDVMHost wie folgt starten.

cd /opt/hotspot/MMDVMHost/
./MMDVMHost MMDVM.ini

Auf dem Terminal wird nun der Status ausgegeben. Eventuelle Fehler im Setup sollten nun sichtbar und korrigiert werden. Mit der Tastenkombination Steuerung+C kann die Ausgabe unterbrochen und der Befehl beendet werden.

DMRGateway konfigurieren

DMRGateway verbindet sich zu unterschiedlichen DMR-Netzen. An dieser Stelle ein wichtiger Hinweis: DMRGateway verbindet keine Netze miteinander. Es verbindet den Repeater oder den Hotspot mit unterschiedlichen Netzen.

Hier habe ich die Sektionen General, Info, Log und Voice angepasst. Und anschließend meine beiden gewünschten DMR-Netzwerke konfiguriert.

cd /opt/hotspot/DMRGateway/
./DMRGateway DMRGateway.ini

Auf dem Terminal wird nun der Status ausgegeben. Eventuelle Fehler im Setup sollten nun sichtbar und korrigiert werden. Mit der Tastenkombination Steuerung+C kann die Ausgabe unterbrochen und der Befehl beendet werden.

Automatischer Start

Die beiden Dienste MMDVMHost und DMRGateway sollen nach dem Boot automatisch starten und im Hintergrund laufen.

In den beiden Initialisierungsdateien von MMDVMHost und DMRGateway gibt es in der Sektion General die Option Daemon. Diese Option ist normalerweise deaktiviert. Damit wird gesteuert ob beim Betrieb des jeweiligen Programms eine Ausgabe im Terminal erfolgt oder ob das Programm als Hintergrunddienst (daemon) läuft.

Daemon=1

Das Starten und Stoppen der beiden Dienste kann über das von mir vorbereitete Startscript erfolgen. Es kann mit dem folgenden Kommando heruntergeladen werden

wget http://7ax.de/8rag -O /opt/hotspot/hotspot.sh

Da sich systemd auf meinem System irgendwie zickig anstellt, habe ich mein Startscript in der /etc/rc.local untergebracht. Wichtig ist, dass es vor dem exit 0 steht.

/opt/hotspot/hotspot.sh start
exit 0

Wenn der Raspberry Pi nun neu gestartet wird, startet er beide Dienste automatisch mit. Falls es zwischendurch nötig ist die beiden Dienste zu starten oder zu stoppen, kann dies mit den folgenden Kommandos erfolgen.

/opt/hotspot/hotspot.sh start
/opt/hotspot/hotspot.sh stop

 

Dieser Artikel erschien zuerst im März 2019 in der gedruckten Ausgabe unseres Magazins.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*