Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
UniPager
Einleitung und Motivation
Bisher wurden von der Amateurfunkgruppe an der RWTH Aachen verschiedene Software-Varianten entwickelt, die jeweils einen Raspager, einen SDRPager oder einen RasPagerC9000 ansprechen konnten. Nachteil war, dass die Software ein lauffähiges X11 brauchte, um die GUI anzuzeigen. Ebenfalls war die Aufsplittung in drei Varianten im Hinblick auf die Software-Pflege unschön. Thomas Gatzweiler DL2IC hat daher in der Programmiersprache rust eine Software geschrieben, die alle diese Hardware-Varianten vereint und auch ein Web-Interface hat, mit dem sich das Programm steuern lässt.
Vor der Installation
Vor der Installation ist zuerst auf dem Speichermedium von z.B. einem Raspberry Pi ein aktuelles Betriebssystem aufzuspielen. Wie das gemacht wird, ist reichlich im Internet dokumentiert. Es kann vom Betriebssystem „Raspberry OS“ z.B. die 'light' Version installiert werden. Das Betriebssystem „Raspberry OS light“ hat keine Desktopumgebung, also ohne Ballast. Um z.B. von einem anderen Rechner, über das eigene Netzwerk (LAN), auf den Raspberry Pi zugreifen zu können, muss auch der SSH-Zugang frei geschaltet werden.
Wenn das Betriebssystem installiert ist und läuft, kann Unipager installiert werden.
Installation
Es gibt zwei Wege. Der erst ist eine Run&Forget-Lösung, benutzt aber ein Skript von uns. Der 2. geht über die Paketverwaltung von Hand.
1. Weg
Über das HAMNET
curl http://web.db0sda.hamnet.radio/debian/install.sh -sSf | sh -s -- hamnet
Über das Internet
curl http://hampager.de/debian/install.sh -sSf | sh -s -- internet
2. Weg
Über das HAMNET
/etc/apt/sources.list.d/unipager.list mit folgendem Inhalt erstellen:
deb http://web.db0sda.hamnet.radio/debian unipager main deb-src http://web.db0sda.hamnet.radio/debian unipager main
Dann folgende Befehle ausführen:
wget -O - http://web.db0sda.hamnet.radio/debian/rwth-afu.key | sudo apt-key add - sudo apt-get update sudo apt-get install unipager
Über das Internet
/etc/apt/sources.list.d/unipager.list mit folgendem Inhalt erstellen:
deb https://hampager.de/debian unipager main deb-src https://hampager.de/debian unipager main
Dann folgende Befehle ausführen:
wget -O - https://hampager.de/debian/rwth-afu.key | sudo apt-key add - sudo apt-get update sudo apt-get install unipager
Quellcode selbst kompilieren
Die Software ist unter https://github.com/rwth-afu/unipager gehostet.
Die Installation geschieht wie folgt (Bitte auch die README beachten)
git clone https://github.com/rwth-afu/unipager.git cd unipager curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain nightly (Dies installiert den rust-Kompiler) cargo build --release (Dies kompiliert den UniPager) sudo ./install.sh (Dies installiert den UniPager)
Für die Nutzung des UARTs muss auf dem Raspberry Pi ggf. die Bluetooth Schnittstelle deaktiviert werden. Siehe: https://www.raspberrypi.org/documentation/configuration/uart.md
Konfiguration und Web-Interface
Auf dem Port 8073 wartet ein HTTP-Server auf Anfragen. Es öffnet sich eine Seite, auf der sowohl das Log sichtbar ist als auch die Art des Senders und seine individuellen Einstellungen vorgenommen werden können.
Um von einem anderen Rechner, über das eigene Netzwerk (LAN), auf den z.B. Raspberry Pi zugreifen zu können, muss der SSH Zugang im Betriebssystem freigeschaltet sein. Danach wird die „IP Adresse“ vom Raspberry Pi benötigt. Diese ist z.B. im eigenen Router (z.B.FritzBox) zu finden. (In der FritzBox unter Heimnetz, Heimnetzübersicht. Dann den „Raspberry Pi“ suchen und auf „Details“ klicken. Hier ist die IP Adresse / IPv4-Adresse zu finden.) Jetzt im Browser, z.B.Firefox, ein neues Fenster öffnen die IP Adresse vom Raspberry Pi eingeben, dann ein Doppelpunkt und dann 8073. Beispiel: 192.168.178.40:8073
Eventuell muss im Browser erst die automatische Suchfunktion aus geschaltet werden, da sonst in einer Suchmaschine nach der Nummer gesucht wird und man nicht auf den Raspberry Pi kommt.
Adresse zur Anbindung von Sendern
Um Sender anzubinden, kann man als Default-Knoten db0sda nehmen. Der Sender muss dort zunächst eingetragen werden. Dies können zur Zeit nur Benutzer mit Admin-Rechten tun.
Typ Hostname IP Port
Internet dapnet.afu.rwth-aachen.de 137.226.79.100 43434
Hamnet dapnet.db0sda.ampr.org 44.225.164.27 43434
Update
Wenn UniPager über die Debian-Paketverwaltung installiert ist, kann man UniPager wie jedes andere Paket updaten.
sudo apt-get update sudo apt-get upgrade
Wenn man die Software selbst kompiliert hat, kann man mit git pull sich die neueste Version besorgen und dann erneut kompilieren. Wer seine Software und den Rust-Kompiler updaten möchte, der kann
./update.sh
im UniPager-Verzeichnis ausführen. Diese aktualisiert sowohl den Rust-Kompiler als auch den UniPager selbst.
Testversion
Es besteht die Möglichkeit, UniPager in der aktuellen Version aus dem Github Repository zu nutzen. Hier können vorab neue Funktionen getestet werden. Bis zum nächsten 'stable Release' ist diese als Testversion anzusehen und kann unter Umständen Fehler enthalten.
Diese Funktion sollte daher mit Bedacht genutzt werden.
Hierzu muss die Datei /etc/apt/sources.list.d/unipager.list abgeändert werden.
deb https://www.afu.rwth-aachen.de/debian unipager-testing main deb-src https://www.afu.rwth-aachen.de/debian unipager-testing main
Anschließend kann auf die Testversion aktualisiert werden.
sudo apt-get update sudo apt-get upgrade
Zugriffsbeschränkung
Die Zugriffsbeschränkung ist schon implementiert, wird aber noch verbessert. https://github.com/rwth-afu/UniPager/issues/12
Direkte Nachrichteneinspielung
Über das Websocket-Protokoll können auch mit einem Skript direkt in die Unipager-Software eingefügt werden. Der Code ist auf https://github.com/dk4pa/UniPager-SendWebsocket verfügbar.
Statistiken
Mit dem Commit 5120af3c sind auch experimentell Statistiken implementiert. Diese liefern sowohl den Status der Software als auch eine Statistik der Warteschlange und der ingesamt gesendeten Rufe.
Aufruf dieses JSON-Objects: http://unipager_ip:8073/status
Port forwarding
Für die externe Erreichbarkeit müssen die Ports 8073 und 8055 offen sein. Es empfiehlt sich dann aber den Unipager mit Passwortschutz zu versehen.
Passwortschutz für das Webinterface setzen
Um das Webinterface mit einem Passwortschutz zu versehen, legt man die Datei /var/lib/unipager/password an und trägt dort das zu verwendende Passwort ein.
Logfile Unipager auf einem Raspi
Kann via „sudo journalctl -u unipager“ aufgerufen werden
Konfiguration von USB-Soundkarten
Zunächst einmal sollte man mit dem Kommando
cat /proc/asound/cards
nachschauen, welche ID die Soundkarte hat… das kann dann z.B. so aussehen:
0 [ALSA ]: bcm2835 - bcm2835 ALSA bcm2835 ALSA 1 [Device ]: USB-Audio - USB Audio Device C-Media Electronics Inc. USB Audio Device at usb-3f980000.usb-1.4, full speed
Wie zu erkennen ist, hat das USB-Audio die ID 1, womit dann in der Konfiguration des Unipager
plughw:1
einzutragen wäre.
Probleme mit der internen Soundkarte
In seltenen Fällen kann es Probleme mit dem Output-Level der internen Pi-Soundkarte geben. In diesem Fall hilft eine externe USB-Soundkarte (siehe oben).
Das Problem tritt nur auf einigen Pis (Pi1 und PI2) auf und konnte noch nicht klar eingegrenzt werden, möglich wären Overclocking oder Timinig-Problem, als auch Produktionsabweichungen.
Hardwarekompatibilitätsliste
Nachfolgend eine Hardwarekompatibilitätsliste getesteter Raspberry Pi-Modelle mit den verschiedenen unipager-Versionen
| Modell/Version | unipager | unipager-testing |
|---|---|---|
| Zero | nicht getestet | nicht getestet |
| Zero W / WH | nicht getestet | nicht getestet |
| Zero 2 W | nicht getestet | nicht getestet |
| 1 Mod. A | nicht getestet | nicht getestet |
| 1 Mod. A+ | nicht getestet | nicht getestet |
| 1 Mod. B | nicht getestet | nicht getestet |
| 1 Mod. B+ | nicht getestet | nicht getestet |
| 2 Mod. B | nicht getestet | nicht getestet |
| 2 Mod. B v1.2 | nicht getestet | nicht getestet |
| 3 Mod. A+ | nicht getestet | nicht getestet |
| 3 Mod. B | nicht getestet | nicht getestet |
| 3 Mod. B+ | nicht getestet | nicht getestet |
| 4 Mod. B | nicht getestet | nicht getestet |

