Aufbau eines PacketRadio-Nodes

nach der „Neuerfindung“ eines alten Hobbys will ich nun systematisch an die Beschreibung meiner Station gehen. Zum Einen benötigt man heut zu Tage einen Internet-Anschluss, aber weiterhin nicht zu verachten ist der Anschluss via Funk (CBFUNK).

Als Anlauf-Quelle neben vielen anderen Webseiten will ich hier forum.packetradio-salzwedel.de nennen. Fragen sind dort immer wilkommen.

Altes Hobby Packet Radio… neu gestartet.

Nachdem ich Jahre das alte Hobby „Packet Radio“ in der sprichwörtlichen „Ecke“ habe liegen lassen, will ich nun einen neuen Versuch starten das Ganze mit neuem Leben wieder zu erwecken.

Mittlerweile ist man nicht mehr an alte PCs unter DOS gebunden und ein alter RaspberryPi ist sicherlich noch in der Schublade um zum neuen Leben erweckt zu werden.

Bei der genaueren Recherche bin ich auf die folgenden Punkte zur Beachtung gestoßen:

  • das Filesystem soll auf einer SSD (mSata etc.) laufen. Die SD-Card hat nur eine eingeschränkte Lebensdauer.
  • das ganze System muss eventuell für neue Anpassungen neu kompiliert werden. Teilweise haben sich die Voraussetzungen stark verändert.

Der Kreis der dazu möglichen Rechner wird durch diese Parameter eingeschränkt.

Meine ersten Versuche habe ich auf einem RasPi3 mit Adapter für eine mSATA gemacht. da ich aber weitere Dinge versuchen möchte bin ich dann doch auf einen Lenove ThinkCentre M625q umgestiegen.

Mein Wunsch war es einen INET-Node mit Mailbox zu betreiben. Spätere Erweiterungen sollten dann dazukommen, wie zum Beispiel APRS-Igate und HF-Anbindung.

Bei der Suche im Internet nach geeigneter Software zuerst bei einem RasPi-Image auf dem forum.packetradio-salzwedel.de von Manuel (MD2SAW via CB0SAW) hängen geblieben.

Linux-Update… die folgenden Pakete sind zurückgehalten worden

gefunden bei https://wiki.byte-welt.net/wiki/Linux_Update_-_Die_folgenden_Pakete_sind_zurückgehalten_worden

Neulich wollte ich das Raspbian auf auf meinem Raspberry Pi einem Update unterziehen. Eigentlich keine große Sache. Terminal geöffnet, SSH-Verbindung hergestellt und die Befehle für das Update der Softwarepaketlisten und das Update installierter Pakte auf eine neuere Version abgesetzt:

sudo apt update && sudo apt upgrade

Nach der Passworteingabe erschien dann auf dem Bildschirm diese Meldung:

Die folgenden Pakete sind zurückgehalten worden:
  <Name der zurückgehaltenen Pakete>

Die Liste der Pakete gibt an welche Pakete zurückgehalten wurden, also nicht in das Update einbezogen.

Diese Meldung weist darauf hin, dass es neue Versionen von Paketen mit Abhängigkeiten gibt, oder dass sich Abhängigkeiten geändert haben, die ebenfalls mit installiert werden müssen. Da ich aber nur ein einfaches Update bestehender Pakete angefordert hatte, erhielt ich von Linux diese Information.

Um nun das komplette System auf den aktuellsten Stand zu bekommen, tippt man nun folgenden Befehl in die Kommandozeile:

sudo apt-get update && sudo apt-get dist-upgrade

Neue Hardware für meine Projekte

wie zum Beispiel HomeAssistant. Seit 01/2024 als 2. Gerät mittlerweile auch andere Projekte.

Ich wollte meine „alte“ Hardware etwas auf leistungsfähigeres Niveau heben. Bei den derzeitigen Preisen für leistungsfähigere Raspberry Pi’s bin ich schnell auf die Suche nach Alternativen gegangen. Daher schien mir eine wirkliche Alternative ein Mini-PC zu sein. Man findet diesen beim Lieferanten mit dem großen „A*****“ ebenso wie beim Versteigerungsportal mit „e***“.

Nach einigem Suchen bin ich bei „e***“ auf ein mir günstiges erscheinendes Angebot gestoßen. Deshalb habe ich mir dort einen Lenovo THINKCENTRE M625Q beschafft. Für unter 50€ mit 2x 1.5GHz CPU, 4GB RAM, 32GB M.2 SATA SSD, passiv gekühlt sicherlich eine gute Alternative für einen Raspberry Pi 4/5 zu aktuellen Preisen.

Da mir die verbaute 32GB M.2 SATA SSD etwas zu knapp erschien habe ich mir dazu als Upgrade gleich noch eine entsprechend größere Variante mit 128GB dazu bestellt.

Alles zusammen bin ich immer noch unter dem derzeitigen Preis für einen vergleichbaren RaspberryPi geblieben.

Installation

Alter RaspberrPi noch einmal verwertet

Beim Ausmisten meines Bastelschrankes bin ich ganz hinten auf meinen ersten RaspberryPi gestossen.

RaspberryPi B (hier Rev.2)

Nach einigem Suchen im Internet hat er sich als RaspberryPi B Rev.1 entpuppt. Da er noch (nur) 256 MB RAM besitzt, ist er wie sich herausgestellt hat sogar noch vor 2012. Zum entgültigen Entsorgen war er mir zu schade, daher suchte ich nach einer sinnvollen Anwendung.

In meinem Garten arbeiten so einige Sensoren, nur der Elektrozähler musste noch mittels MOD-BUS angebunden und abgefragt werden. Das war eine Aufgabe die dieser RaspberryPi übernehmen sollte.

Um die Einbaumaße klein zu halten störte mich die weit herausragende SD-Karte. daher habe ich mich für einen entprechenden Adapter (hier der Link dort hin) entschieden um mit microSD-Karten arbeiten zu können.

Um das Image möglichst klein zu halten habe ich mich für einen NetInstall-Version des Betriebssystems nach https://github.com/FooDeas/raspberrypi-ua-netinst entschlossen. Eine für meine Zwecke angepasste installer-conig.txt ersparte mir dabei spätere zusätzliche Nachinstallationen.

Start zur Sommerzeit

Es ist wieder mal Sommerzeit und der Urlaub steht vor der Tür. Endlich mal wieder Zeit Dinge zu tun, die nicht mit dem „MUSS“ anfangen.

Was steht auf dem Plan, auch in dem Wissen das nur ein Bruchteil irgendwie einen Anfang finden wird:

  • DMX-Controller mit TFT-Display
  • neue Vorlage für meine Garten-Controller auf der Basis ESP8266/ESP32
  • passives Display für MQTT-Daten
  • Weiterentwicklung der Umgebung für OTA-Updates
  • TTN-LoRa-WAN mit dem Heltec-Board testen

Allen die ihr Hobby mal „links legen lassen“ wollen und für den Urlaub in die Ferne schweifen, wünsche ich schon mal einen schönen und erholsamen Urlaub.

Nginx und PHP auf dem RaspberryPi installieren

Diese Beschreibung ist von https://pimylifeup.com/raspberry-pi-nginx/ abgeleitet und inspiriert.

Im Verlauf dieser Beschreibung gehe ich von einen laufenden OS auf euerem RaspberryPi aus, eine Beschreibung wie das zu erreichen ist findet ihr sicherlich zahlreich im Netz oder auch hier.

Wie bei allen Anleitungen hilft am meisten der Wille etwas zu lernen.

Bevor man mit der Einrichtung des NGINX-Webservers auf dem RaspberryPi beginnt muss man sicherstellen, dass unser RaspPi auf dem neustem Stand ist. Das erreicht man mit den folgenden Befehlen im Terminal.

sudo apt update
sudo apt upgrade
sudo apt dist-upgrade

Wir sollten auch den folgenden Befehl ausführen, um Apache2 zu deinstallieren, da die Möglichkeit besteht, dass es auf dem System vorinstalliert ist. Andernfalls kann die Installation fehlschlagen, da sie automatisch startet und den Port 80 verwendet . Da wir NGINX als Webserver verwenden möchten, entfernen wir Apache2 aus dem System.

Man kann diesen Schritt überspringen, wenn man sicher ist, dass Apache2 noch nicht auf Ihrem Raspberry Pi installiert ist.

sudo apt remove apache2

Nachdem die Pakete nun auf dem neuesten Stand sind und Apache 2 entfernt wurde, können wir mit der Installation fortfahren. Mit dem folgendem Befehl installieren und starten wir NGINX auf unserem RaspberryPi.

sudo apt install nginx
sudo systemctl start nginx

Nachdem der NGINX-Webserver nun gestartet ist, sollten wir nun die lokale IP-Adresse des RaspberryPi abrufen.

http://deine PI Adresse

Sobald Sie zur Adresse navigieren, sollten Sie etwas wie das Folgende sehen. Machen Sie sich keine Sorgen, wenn hier eine Apache-Seite angezeigt wird, da NGINX manchmal die Apache-Standardindexseite nicht überschreibt.

NGINX für PHP konfigurieren

als nächstes installieren wir einen PHP-Interpreter mit folgendem Befehl.

sudo apt install php-fpm -y

Verknüpfen von NGINX und PHP

Dazu muss man die Konfigurationsdatei für den NGINX-Host (/etc/nginx/sites-enabled/default) öffnen und folgende Zeile suchen

index index.html index.htm index.nginx-debian.html;

und ersetzen durch diese Zeile

index index.html index.htm index.php;

Als nächstes nach dem Konfigurationsblock in der Konfigurationsdatei (wieder hier zu finden /etc/nginx/sites-enabled/default)suchen, der wie folgt beginnt:

location ~ \.php$ {
  ...
}

und folgende Zeilen entkommentieren, damit es so aussieht

location ~ \.php$ {
  include snippets/fastcgi-php.conf;
  fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
}

Dadurch wird NGINX an den schnelleren PHP-Interpretor (php-fpm) gebunden, den wir gerade installiert haben.

Testen Sie PHP

Um zu testen, ob PHP funktioniert, legen Sie eine „ index.php “-Datei im Stammverzeichnis Ihres Webservers ab (standardmäßig „ /var/www/html/ “) und starten Sie NGINX mit den folgenden Befehlen neu:

echo "<?php phpinfo(); ?>" > /var/www/html/index.php

sudo /etc/init.d/nginx restart

http://pi1.local/Wenn Sie nun zu (ersetzen Sie „ pi1.local “ durch die IP-Adresse Ihres Raspberry Pi) gehen, sollte eine Seite mit Informationen zu PHP angezeigt werden.

Sensoren Dashboard

Um in meinem Garten, dezentral zur häuslichen Übersicht, einige Sensordaten darstellen und gegebenenfalls auch Steuerungsaufgaben erledigen zu können habe ich mich nach einer geeigneten Lösung umgeschaut.

Der Garten ist zwar via VPN-Verbindung an das heimatliche „Home Assistant“ angebunden, ein separates Dashboard ist aber gewünscht um im Falle einer Verbindungsunterbrechung auch autark agieren zu können.

Die Hardware stand relativ schnell fest da ich neben dem Dashboard auch weitere Funktionen damit erledigen wollte. Dabei hatte ich mich für das Raspi-Ready TFT-Touch-Display und einen entsprechenden Raspberry-Pi entschieden. Mit den ausgewählten Komponenten war auch zugleich das Problem eines entsprechenden Gehäuses gelöst.

Bei der Entscheidung für die zu verwendende Software tat ich mich relativ schwer, da kaum eine IoT-Lösung einen entsprechenden Server inklusive des Dashbords im Kiosk-Mode zu finden war. Letztendlich bin ich nun, durch das Raspi-Flash-Tool darauf aufmerksam gemacht, an der Software von Nymea hängen geblieben. Dort wird neben dem reinen Server auch eine Kombination mit Dashboard-App im Kiosk-Mode auch meiner gewählten Hardware angeboten.