Bild "Nutzung:military-662861_640.jpg"

Installation des YSFGateway

Voraussetzungen

Wir gehen der Einfachheit halber davon aus, dass man das YSFGateway zu einem bereits laufenden MMDVMHost auf einem Raspberry Pi mit Debian Jessie installiert.

Installation

Damit die Quelldateien bezogen werden können und später auch kompiliert werden können, ist die Installation von git sowie den build-essentials notwendig, was man mit

> sudo apt-get update
> sudo apt-get install build-essential git

erledigen kann.

Anschließend legt man sich in seinem Home-Verzeichnis praktischerweise ein Unterverzeichnis "src" an:

> mkdir src

In dieses Verzeichnis wechselt man hinein und erstellt eine lokale Kopie des Repositories von G4KLX:

> git clone https://github.com/g4klx/YSFClients.git

Dieser Befehl legt ein neues Verzeichnis "YSFClients" innerhalb des Verzeichnisses "src" an und kopiert dorthin die Quelldateien.

Im Anschluss wechselt man mit

> cd YSFClients/YSFGateway

in das YSFGateway-Verzeichnis und übersetzt das Gateway mit

> make clean all

Nach dem Compiler-Lauf kopiert man die ausführbare Datei mit

> sudo cp YSFGateway /usr/local/bin

in das entsprechende Systemverzeichnis. Dann legt man noch ein Konfigurationsverzeichnis an mit

> sudo mkdir /etc/YSFGateway

und kopiert die Muster-Konfigurationsdatei mit

> sudo cp YSFGateway.ini /etc/YSFGateway

dort hinein.

Konfiguration

Anschließend öffnet man die Konfigurationsdatei mit

> sudo nano /etc/YSFGateway/YSFGateway.ini

in einem Editor und passt die Konfiguration folgendermaßen an die eigenen Bedürfnisse an:

[General]
# hier packt man sein Rufzeichen des Repeaters rein
Callsign=DB0ABC
RptAddress=127.0.0.1
RptPort=3200
LocalAddress=127.0.0.1
LocalPort=4200
Daemon=1

[Info]
# hier werden die Empfangs- und die Sendefrequenz des Repeaters eingetragen in Hz
RXFrequency=430750000
TXFrequency=438350000
# hier die Sendeleistung
Power=1
# hier die Geo-Koordinaten
Latitude=49.2331543
Longitude=6.8338152
# hier die Höhe der Antenne über Grund
Height=5
# hier der Standort
Location=Voelklingen, Germany
# und hier eine kurze Beschreibung
Description=Multi-Mode Repeater

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

[aprs.fi]
Enable=1
# Server=noam.aprs2.net
Server=euro.aprs2.net
Port=14580
# das Passwort kann man unter http://apps.magicbug.co.uk/passcode/index.php unter Angabe des Repeaterrufzeichens generieren
Password=0000

[Network]
Enable=1
Port=42000
Hosts=/etc/YSFGateway/YSFHosts.txt
ReloadTime=60 # hier wird definiert, nach wieviel Minuten die Hosts-Datei neu eingelesen wird
ParrotAddress=127.0.0.1
ParrotPort=42000
# Startup=
Debug=0


Nun muss man noch die YSFHosts-Datei mit

> sudo cp YSFHosts.txt /etc/YSFGateway

in das Konfigurationsverzeichnis kopieren.

Wichtiger Hinweis: Seit dem 30.09.2016 hat die YSFHosts.txt ein geändertes Format weil die YSFGateways seit dem Tag die Reflektoren nicht mehr eigenständig abfragen, sondern die Statusabfrage zentral durch die Registrierungsdatenbank erfolgt und die Gateways den Status der Reflektoren über die Hosts-Dateien ermitteln.

Es empfiehlt sich also in regelmäßigen Abständen, vielleicht alle 10 Minuten, die Hosts-Datei per Cron-Job wieder vom Server zu aktualisieren. Eine Beispielzeile, wie man diese mit sudo crontab -e hinterlegen kann ist folgende:

*/10 * * * * wget -O /etc/YSFGateway/YSFHosts.txt http://register.ysfreflector.de/export_csv.php

Diese bewirkt, dass alle 10 Minuten per wget die YSFHosts.txt aktualisiert wird.

Automatischer Start beim Booten

Damit das Gateway als "Daemon" laufen kann (wie in der General-Sektion angegeben mit Daemon=1), muss man noch entsprechend einen Benutzer im System anlegen mit

> sudo groupadd mmdvm
> sudo useradd mmdvm -g mmdvm -s /sbin/nologin

Ebenso muss man noch das Logverzeichnis anlegen mit

> sudo mkdir /var/log/YSFGateway

und mit

> sudo chgrp mmdvm /var/log/YSFGateway

die Gruppe korrigieren. Nun noch mit

> sudo chmod g+w /var/log/YSFGateway

der Gruppe Schreibrechte geben und das wars.

Um nun das Gateway auch automatisch starten zu können beim Systemstart, Bedarf es noch eines Startscriptes in /etc/init.d mit dem Namen YSFGateway.sh und folgendem Inhalt:

#!/bin/bash
### BEGIN INIT INFO
#
# Provides:             YSFGateway
# Required-Start:       $all
# Required-Stop:        
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Example startscript YSFGateway

#
### END INIT INFO
## Fill in name of program here.
PROG="YSFGateway"
PROG_PATH="/usr/local/bin/"
PROG_ARGS="/etc/YSFGateway/YSFGateway.ini"
PIDFILE="/var/run/YSFGateway.pid"
USER="root"

start() {
      if [ -e $PIDFILE ]; then
          ## Program is running, exit with error.
          echo "Error! $PROG is currently running!" 1>&2
          exit 1
      else
          ## Change from /dev/null to something like /var/log/$PROG if you want to save output.
      sleep 20
          cd $PROG_PATH
          ./$PROG $PROG_ARGS
          echo "$PROG started"
          touch $PIDFILE
      fi
}

stop() {
      if [ -e $PIDFILE ]; then
          ## Program is running, so stop it
         echo "$PROG is running"
         rm -f $PIDFILE
         killall $PROG
         echo "$PROG stopped"
      else
          ## Program is not running, exit with error.
          echo "Error! $PROG not started!" 1>&2
          exit 1
      fi
}

## Check to see if we are running as root first.
## Found at http://www.cyberciti.biz/tips/shell-root-user-check-script.html
if [ "$(id -u)" != "0" ]; then
      echo "This script must be run as root" 1>&2
      exit 1
fi

case "$1" in
      start)
          start
          exit 0
      ;;
      stop)
          stop
          exit 0
      ;;
      reload|restart|force-reload)
          stop
          sleep 5
          start
          exit 0
      ;;
      **)
          echo "Usage: $0 {start|stop|reload}" 1>&2
          exit 1
      ;;
esac
exit 0
### END

Damit dieses Skript auch beim Start aktiviert wird, muss man es mit

> chkconfig YSFGateway.sh on

aktivieren. Evtl. ist auf dem System der Befehl chkconfig noch nicht installiert, das kann man mit

> sudo apt-get install chkconfig

nachholen.

Im Anschluss sollte mit

> sudo /etc/init.d/YSFGateway.sh start

das YSFGateway zu starten sein. Um beim Boot Probleme mit einer evtl. noch nicht ganz vollständigen Netzwerkverbindung zu vermeiden, wurde beim Start eine 20-sekündige Pause (sleep 20) eingebaut. Das kann natürlich individuell variiert werden.

Logfiles

Die Logs des Gateways finden sich im Verzeichnis /var/log in Dateien beginnend mit YSFGateway und dem Tagesdatum in ISO-Schreibweise, also z.B. YSFGateway-2016-07-05.log. Diese kann man ganz einfach mit

> tail -f /var/log/YSFGateway-2016-07-05.log

endlos mitlaufen lassen. Es wird für jeden Tag eine neue Datei angelegt.

Aktualisierung des YSFGateways

Hin und wieder wird man mal die YSFGateway-Software aktualisieren wollen, um eben die neuesten Entwicklungen zu nutzen. Hierzu wechselt man mit

> cd ~/src/YSFClients/YSFGateway

in das YSFGateway-Verzeichnis und ruft ein

> git pull

auf. Anschließend gleicht git die lokale Kopie mit dem Repository ab. Wenn Änderungen vorhanden sind, fährt man fort wie oben unter Installation mit einem

> make clean all

und kopiert wie oben beschrieben, die ausführbare Datei nachdem man mit

> sudo /etc/init.d/YSFGateway.sh stop

den Dienst gestoppt hat, in das Zielverzeichnis. Ggf. muss man noch neue Parameter in die YSFGateway.ini einarbeiten. Hierzu sollte man die Muster-Ini mit der eigenen am besten vergleichen und die Änderungen eintragen.


Letzte Änderung 18.05.2017, 13:37:18