MMDVMHost installieren und einrichten

Wer mit einem Hotspot am Raspberry Pi, oder ähnlichen Single Board Computern arbeiten möchte, und die volle Kontrolle über die Software behalten will, kommt um eine Installation von G4KLX's MMDVMHost nicht herum.

Daher werde ich hier Schritt für Schritt zeigen, wie das ganze am Raspberry Pi installiert wird.

Vorausgesetzt wird ein fertig installiertes Raspbian.

Wer den Raspi nur als Hotspot nehmen möchte, kann auch Raspbian Lite nehmen, welches dann ohne jegliche grafische Oberfläche läuft. Damit nimmt das System weniger Platz ein und ist Ressourcen sparender.

 

Zuerst wird das System vorbereitet:

 Bei Raspberry Pis ab dem 3B und neuer muss, zum problemlosen Betrieb der Hotspot Hats, Bluetooth deaktiviert werden.

Dazu editieren Wir die Start Konfiguration des Raspi.

Sudo nano /boot/config.txt

Hier fügen Wir dann folgenden Eintrag hinzu.

dtoverlay=pi3-disable-bt

Jetzt speichern Wir mit STRG+O die Datei und beenden den Editor mit STRG+X

Auch die Serial Port Konsole müssen Wir deaktivieren, den Hardware Port aber aktiv lassen.

Dies funktioniert am einfachsten über das Tool Raspi-Config, welches Wir erst mal aufrufen.

sudo raspi-config

Hangeln Wir uns nun durch das „Menü“ zu den richtigen Einstellungen.

 

Ein Bild, das Screenshot enthält.

Automatisch generierte Beschreibung

 

Ein Bild, das Screenshot enthält.

Automatisch generierte Beschreibung

 

Ein Bild, das Screenshot enthält.

Automatisch generierte Beschreibung

 

Ein Bild, das Screenshot enthält.

Automatisch generierte Beschreibung

 

Ein Bild, das Screenshot enthält.

Automatisch generierte Beschreibung

 

Jetzt beenden Wir Raspi-Config und anschließend wird der Raspi neu gestartet.

sudo reboot now

Jetzt das System aktualisieren und auf den neuesten Stand bringen.

sudo apt-get update && sudo apt-get upgrade -y

 

Wenn dieser Schritt fertig ist, installieren Wir die benötigten Pakete, um MMDVMHost kompilieren zu können.

apt-get install git build-essential cmake automake nano screen

 

Danach wechseln Wir in das Verzeichnis, in das Wir den MMDVMHost installieren wollen, in diesem Beispiel /opt .

cd /opt

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

 

Wechseln Wir jetzt in das neu erstellte Verzeichnis MMDVMHost.

cd /MMDVMHost

 

Nun kompilieren Wir uns den MMDVMHost.

sudo make

Das ganze braucht jetzt ein Weilchen, und Ihr seht den Erstellungsprozess Live im Terminal.

 

Ramdisk einrichten:

Um Schreibzugriffe auf der SD-Karte zu minimieren, richten Wir jetzt eine Ramdisk im System ein, auf der dann die Logfiles vom MMDVMHost abgelegt werden.

Als erstes erstellen Wir einen Mountpoint für die Ramdisk, also ein Leeres Verzeichnis, in dem die Ramdisk Daten „Virtuell“ liegen werden.

sudo mkdir /mnt/ramdisk

Nun legen Wir fest, welche Größe die Ramdisk bei jedem Systemstart bekommen soll, und verweisen das System auf den eben angelegten Ordner.

Dazu editieren Wir die Datei fstab.

sudo nano /etc/fstab

 

In der sich jetzt öffnenden Datei tragen Wir am Ende, in der letzten Zeile jetzt folgendes ein:

tmpfs /mnt/ramdisk tmpfs nodev,nosuid,size=64M 0 0

Anschließend speichern wir mit STRG + O und verlassen den Editor mit STRG+X .

Nun mounten Wir die neu erstellte Ramdisk, binden Sie also aktiv im System ein.

sudo mount -a

 

Mit df -h fragen Wir jetzt die Laufwerke ab.

 

Dateisystem          Größe    Benutzt    Verf.       Verw%    Eingehängt auf

/dev/root               29G        1,9G          26G        7%           /

devtmpfs                484M     0                484M     0%          /dev

tmpfs                       488M     0                488M     0%         /dev/shm

tmpfs                       488M     6,5M         482M     2%         /run

tmpfs                       5,0M       4,0K          5,0M      1%         /run/lock

tmpfs                       488M      0                488M      0%       /sys/fs/cgroup

tmpfs                        64M       25M           40M       39%     /mnt/ramdisk

/dev/mmcblk0p1   253M     52M           202M      21%    /boot

tmpfs                        98M       0                 98M         0%     /run/user/1000

 

In dieser Liste sollte jetzt unsere Ramdisk auftauchen, hier im Beispiel, der dritte Eintrag von unten.

Die gröbsten Systemarbeiten haben Wir jetzt bereits geschafft.

 

Konfigurieren der MMDVM.ini:

Öffnen Wir uns jetzt die MMDVM.ini, die Konfigurationsdatei des MMDVMHost im Editor.

sudo nano MMDVM.ini

Im Abschnitt [General] Stellen Wir jetzt erst mal unsere nötigsten Daten ein.

[General]

Callsign=<Rufzeichen> <- Euer Rufzeichen

Id=<DMRID> <- Eure DMR-ID

Timeout=180

Duplex=<1|0> <- Bei Single Slot 0 (z.B. DVMega, HS_Hat), Bei Dual Slot 1 (z.B. HS_Dual_Hat)

# ModeHang=10

RFModeHang=10

NetModeHang=3

Display=None

Daemon=0

 

Nun bearbeiten Wir die Abschnitte [Info] und [Log].

 [Info]

RXFrequency=435000000 <- Empfangsfrequenz Eures Hotspots

TXFrequency=435000000 <- Sendefrequenz Eures Hotspots

Power=1

Latitude=0.0 <-

Longitude=0.0 <- Geokoordinaten Eures Hotspots, damit dieser z.B. in Der Brandmeister Karte richtig angezeigt werden kann

Height=0 <- Höhe Eures Hotspots

Location=Nowhere <- Standort Eures Hotspots

Description=Multi-Mode Repeater <- Beschreibung Eures Hotspots

URL=www.google.co.uk <- Eure Website oder QRZ.com Seite

 

[Log]

# Logging levels, 0=No logging

DisplayLevel=1

FileLevel=1

FilePath=/mnt/ramdisk/ <- Hier wird die erstellte Ramdisk eingetragen

FileRoot=MMDVM

[/code]

 

Jetzt die Sektion [Modem].

 

[code]

[Modem]

# Port=/dev/ttyACM0

Port=/dev/ttyAMA0 <- Normalerweise der Standard Port bei Aufsteckplatinen

#Port=\\.\COM4

Protocol=uart

# Address=0x22

TXInvert=1

RXInvert=0

PTTInvert=0

TXDelay=100

RXOffset=0

TXOffset=0

DMRDelay=0

RXLevel=50

TXLevel=50

RXDCOffset=0

TXDCOffset=0

RFLevel=100 <- Steuert die Sendeleistung einiger Hotspots (z.B. OpenGD77)

# CWIdTXLevel=50

# D-StarTXLevel=50

# DMRTXLevel=50

# YSFTXLevel=50

# P25TXLevel=50

# NXDNTXLevel=50

# POCSAGTXLevel=50

# FMTXLevel=50

RSSIMappingFile=RSSI.dat

Trace=0

Debug=0

Bei den meisten Hostspots, wie HS_Hat oder HS_Dual_Hat, müssen die Werte wie RXOffset und TXOffset bzw. RXDCOffset und TXDCOffset noch mit einem SDR, oder experimentell ermittelt werden, bis die Geräte die Geringste Fehlerrate (BER) aufweisen.

Bei einem DVMega entfällt dieser Aufwand.

Wer mit China DMR Geräten, wie z.B. dem TyT MD380 arbeitet, sollte den Wert TXLevel auf 60 setzen, da einige mit dem Default Wert (50) Schwierigkeiten haben.

 

Nun die Sektion [DMR].

[DMR]

Enable=1 <- Zum Aktivieren 1, zum deaktivieren 0

Beacons=0

BeaconInterval=60

BeaconDuration=3

ColorCode=1

SelfOnly=0

EmbeddedLCOnly=0

DumpTAData=1

# Prefixes=234,235

# Slot1TGWhiteList=

# Slot2TGWhiteList=

CallHang=3

TXHang=4

# ModeHang=10

# OVCM Values, 0=off, 1=rx_on, 2=tx_on, 3=both_on

# OVCM=0

 

Weiter geht es mit der Sektion [DMR Network]

[DMR Network]

Enable=1 <- Zum Aktivieren 1, zum deaktivieren 0

Address=master1.bm262.de <- Adresse des zu nutzenden DMR Master Server

Port=62031 <- Port des zu nutzenden DMR Master Server

#Jitter=360

# Local=62032

Password=PASSWORD <- Passwort des zu nutzenden DMR Master Server, oder Euer selbst gesetztes Hotspot Passwort (Brandmeister)

# Options= <- Optionszeile bei Nutzung eines DMRplus IPSC2 Server

Slot1=1

Slot2=1 <- Bei Single Slot Hostspots nur Slot2 mit 1 aktivieren, bei Dual Slot Slot 1 und 2

# ModeHang=3

Debug=0

 

Die Brandmeister DL Server findet Ihr unter folgenden URLs:

Master 1: master1.bm262.de

Master 2: master2.bm262.de

 

Für DMRplus gibt es mehrere IPSC2 Server, stellvertretend sei hier der Hotspot IPSC2 von DG9FFM genannt:

IPSC2-DL-Hotspot: ipsc2-dl-hotspot.xreflector.net

Hier ist dann auch der Port auf 55555 zu ändern und das Passwort auf „passw0rd“.

 

Genauso könnt Ihr auch mit allen anderen Modes verfahren, da Ich diese selbst aber nicht nutze, kann ich daher nicht näher darauf eingehen. 😉

 Die Grundeinrichtung ist damit geschafft.

Nun könnt Ihr den MMDVMHost starten.

sudo ./MMDVMHost

 

Nun seht Ihr im Display die „Startsequenz“ laufen, sobald die Meldung „Logged into the Master successfully“ ist der Hotspot erfolgreich im DMRNetz angemeldet.

Ihr könnt dann im Display auch Kommende und Gehende Rufe sehen.

  

Autostart des MMDVMHost in einer Screen Session:

 

Jetzt wollen Wir den Host aber nicht jedes Mal von Hand starten, und im Falle eines Falles auch auf seine Konsolenanzeige zu Greifen.

Dazu nutzen Wir Systemd und den Terminal Multiplexer Screen.

Zuerst erstellen Wir eine „Systemd-Unit“.

sudo nano /etc/systemd/system/mmdvmhost.service

In die sich jetzt öffnende, leere Datei Tragen Wir folgendes ein:

 

[Unit]

Description=MMDVM Host Service

After=syslog.target network.target

[Service]

User=root

WorkingDirectory=/opt/MMDVMHost

ExecStart=/usr/bin/screen -S MMDVMHost -D -m /opt/MMDVMHost/MMDVMHost /opt/MMDVMHost/MMDVM.ini

ExecStop=/usr/bin/screen -S MMDVMHost -X quit

[Install]

WantedBy=multi-user.target

Nun muß die erstellte system-Unit aktiviert werden.

sudo systemctl daemon-reload

sudo systemctl enable mmdvmhost.service

 

Ab sofort startet der MMDVMHost bei jedem Systemstart automatisch im Hintergrund.

Wenn nötig können Wir den Dienst über Systemd auch von Hand Starten, Stoppen, neu Starten oder seinen Status abfragen.

 

sudo systemctl start mmdvmhost.service <- Startet den MMDVMHost

sudo systemctl restart mmdvmhost.service <- startet den MMDVMHost neu

sudo systemctl stop mmdvmhost.service <- stopt den MMDVMHost

sudo systemctl status mmdvmhost.service <- Zeit den Status des MMDVMhost

sudo systemctl disable mmdvmhost.service <- deaktiviert den Autostart von MMDVMHost

sudo systemctl enable mmdvmhost.service <- aktiviert den autostart von MMDVMHost

 

Um in die Terminal Ausgabe des MMDVMHost zu schauen, ruft Ihr diesen in seiner Screen Session auf.

sudo screen -r MMDVMHost

Ihr seht nun die Terminal Ausgabe des Hosts.

Um diese zu beenden gebt Ihr die Tastenkombination CTRL+A gefolgt von D ein.

Ihr kommt dann auf den normalen Kommandozeilen Prompt zurück, ohne den Host zu beenden.

 

Jetzt kann man auch ggf. das DG9VH Dashboard, den DMRGateway oder andere Tools installieren.