====== UniPager ====== [[[UniPagerEnglish|english Version here]] ===== 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 [[https://www.rust-lang.org|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://db0sda.ampr.org/debian/install.sh -sSf | sh -s -- hamnet === Über das Internet === curl http://www.afu.rwth-aachen.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://db0sda.ampr.org/debian unipager main deb-src http://db0sda.ampr.org/debian unipager main Dann folgende Befehle ausführen: wget -O - http://db0sda.ampr.org/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://www.afu.rwth-aachen.de/debian unipager main deb-src https://www.afu.rwth-aachen.de/debian unipager main Dann folgende Befehle ausführen: wget -O - https://www.afu.rwth-aachen.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|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. {{ :unipager:uni_webinterface.png?direct |}} ===== 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|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|https://github.com/dk4pa/UniPager-SendWebsocket]] verfügbar. ===== Statistiken ===== Mit dem Commit [[https://github.com/rwth-afu/UniPager/commit/5120af3c2c2e2f6413f9cd9149b0985a0ff10b78|5120af3c]] sind auch experimentell Statistiken implementiert. Diese liefern sowohl den Status der Software als auch eine Statistik der Warteschlange und der ingesamt gesendeten Rufe. {{::unipager:unipager_stats.png?direct|}} 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 |