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.

  1. Der Link für die .sh geht nicht…schade http://7ax.de/8rag -O /opt/hotspot/hotspot.sh
    Vielleicht kannst du den Script hier auf der Page zeigen… ist sicherlich nicht viel.
    Danke
    Vy 73 de DC6WN
    Thorsten

  2. Leider funktioniert der Link nicht.
    wget http://7ax.de/8rag -O /opt/hotspot/hotspot.sh
    Evt. den Inhalt der Hotspot.sh hier auf der Seite einstellen.
    Ich finde auch keinen Emailkontakt zu DM9KS um die Hotspot.sh
    Datei anfragen zu können.
    vy 73 de DC6WN
    Thorsten

  3. Thorsten, DG1OAD

    Hallo Silvio,
    danke für die Beschreibung; damit habe ich zunächst erfolgreich MMDVMHost aufgesetzt, allerdings noch nicht das DMRGateway. OS: Raspberry Pi OS Lite vom 11.01.2021. Für den automatischen Start verwende ich systemd. Dazu wird die Datei /etc/systemd/system/MMDVMHost.service mit folgendem Inhalt angelegt:
    #—————————————-
    [Unit]
    Description=MMDVMHost
    After=network.target

    [Service]
    Type=simple
    Restart=always
    ExecStart=/opt/hotspot/MMDVMHost/MMDVMHost /opt/hotspot/MMDVMHost/MMDVM.ini
    ExecStop=/usr/bin/killall MMDVMHost

    [Install]
    WantedBy=multi-user.target
    #—————————————-

    Wichtig: in der MMDVM.ini muß “daemon=0” gesetzt werden, sonst kann systemd nicht erkennen, daß der Prozess läuft und würde dauernd einen Restart versuchen. Der Parameter “Restart=always” sorgt dafür, allerdings ist er auch für Restarts beim unbeabsichtigten Ende des Prozesses zuständig.

    Danach noch “sudo systemctl enable MMDVMHost.service”, und der Prozess wird nach dem Booten automatisch gestartet.
    Das sollte auch analog mit dem DMRGateway funktionieren.

  4. Hallo Silvio,

    habe mit Interesse Deinen Artikel gelesen. Wäre es möglich, dass Du mir mal Deine MMDVM.ini und DMRGateway.ini zusenden könntest ?

    Danke im voraus.

    73 de Detlef DL4NTC

  5. Hallo,

    vielen dank für die Anleitung das werde ich doch mal bei der nächsten Freizeit mal so umsetzten.

    Frage wäre, da ich ein laufenden DMR Hotspot habe, könnte man hier nicht die konfigurationen einfach drauf packen?

    73 Lars

  6. Sebastian Krieg

    Hallo

    Ich betreibe einen hotspot raspberry 3b mit mmdvm Modul, bisher immer mit pistar , nun wollte ich diese Variante probieren, Installation ging alles einwandfrei, nun bin ich an einen Punkt wo mein Latein am Ende ist ,
    Wo genau muss ich die ip-adresse und den Port eingeben damit er sich mit einen hblink3 server verbindet?? In der mmvdm.ini oder in der dmrgateway.ini , egal wie ich es mache , ich bekomme keine Verbindung zum hblink3 Server, mit pistar geht es ohne Probleme.

  7. Hallo,

    Lars wieder hier, habe nun ein PI-Star am laufen und lade meine konfiguration hin und her wie ich das möchte. Neben dem HAM DMR gibt es noch frei zugängliche so auch DMR Freeband.

    die Tage kommt aber mein 2. Pi Star und dann baue ich das mal nach der Anleitung.

    73 danke

  8. hallo,
    dort liegt die hotspot.sh datei http://dd6lkb.com/raspberry/install/
    aber wenn ich diese Starte kommt folgender Fehler…

    pi@dmr-ham:/opt/hotspot $ sudo bash hotspot.sh start
    hotspot.sh: Zeile 2: $’r’: Kommando nicht gefunden.
    hotspot.sh: Zeile 12: $’r’: Kommando nicht gefunden.
    hotspot.sh: Zeile 13: Syntaxfehler beim unerwarteten Wort `$’inr”
    ‘otspot.sh: Zeile 13: `case “$1” in
    pi@dmr-ham:/opt/hotspot $

    was nun…

    danke

    • Also wenn ich das Script direkt herunter lade läuft es.

      Kopiere ich es aus den Browser heraus dann Erfolgt der Error.

      LÄUFT

Schreibe einen Kommentar zu Thorsten Laufer Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht.

*