Aktuelle Astro-Software (64-bit) am Raspberry PI
Um aktuelle Versionen nutzen zu können, habe ich mich selbst mit viel Einlesearbeit im Netz daran gemacht, aktuelle Versionen von INDI Library, KStars, PHD2 auf der aktuellen Raspian-Version ("Bookworm") zum Laufen zu bringen.
Fazit: Es ist gar nicht so schwer, wie es im ersten Moment erscheint – aber der Reihe nach...
Zu meinem Aufbau: Ich nutze einen Raspberry PI 4B mit 4 GB RAM. Angeschlossen ist ein aktives USB-Hub mit via USB 3. Dort sind dann der USB-SSD-Stick mit dem Raspberry-System drauf, die Montierung über ein EQMod-Kabel, die Guiding-Kamera (ZWO ASI120MM-S, ACHTUNG auf das KABEL, siehe Abschnitt GPSD), die Kamera selbst und zwei Objektiv-Heizungen in unterschiedlichen Längen angeschlossen. Der GPS-Dongle ist über ein USB-Verlängerungskabel an einem USB2-Port am Raspberry Pi angeschlossen. Die Steuerung des Systems erfolgt bequem über's Netzwerk am PC in der warmen Wohnung. Via VNC sollte es aber auch bspw. am Tablet etwa auf einer Wiese direkt am Raspberry möglich sein. Die Software dafür ist jedenfalls am Raspberry vorhanden bzw. kann der Raspi auch als WLAN-Hotspot verwendet werden.
1. Raspberry Pi OS (64-bit) installieren
Im ersten Schritt muss ein Image für den Raspberry auf einem Datenträger eingerichtet werden. Hierzu müssen wir von der Seite https://www.raspberrypi.com/software/operating-systems/ ein geeignetes Image herunterladen. Das passende für den Raspberry 4B ist hier die 64-bit-Version:
Raspberry Pi OS with desktop / System: 64-bit, die heruntergeladene Datei heißt dann ähnlich "2024-03-15-raspios-bookworm-arm64.img.xz". Das Datum am Anfang des Dateinamens beschreibt die aktuellste Version.
Das Image auf den Datenträger flashen wir am einfachsten mit einer Software namens balenaEtcher auf den Datenträger. Dafür balenaEtcher für das richtige System (Windows, Linux oder MacOS) herunterladen, installieren und starten.

1. "Select Image" → Das vorhin heruntergeladene Raspberry-Image auswählen (2024-03-15-raspios-bookworm-arm64.img.xz)
2. "Select Drive" → Die microSD-Karte oder den USB-Stick/externe SSD auswählen.
ACHTUNG: Alle Daten, die vorher auf dem Zieldatenträger gespeichert waren, werden nach dem Flashen gelöscht, also noch einmal genau schauen, dass der richtige Datenträger gewählt ist und fallweise noch ein Backup dieser Daten machen!
3. "Flash!" → das Image auf den Datenträger übertragen.
2. Erste Schritte am Raspberry Pi
Den Raspberry an einen Bildschirm anschließen und eine Tastatur und Maus über USB anhängen (ich verwende hierzu eine kabellose Tastatur mit integriertem Touchpad). Nach dem Beschreiben des Datenträgers mit balenaEtcher, diesen am Raspberry Pi anschließen und den Raspberry starten. Es erscheint eine Oberfläche für die Ersteinrichtung am Bildschirm. Wenn nicht, ist der Raspberry evtl. am falschen HDMI-Port angeschlossen.
2a. Die Ersteinrichtung
1. In Schritt 1 Land und Sprache auswählen.
2. Im nächsten Schritt wird der Benutzername und das Passwort festgelegt. Als Benutzername verwende ich hier und für alle weiteren Schritte "astro", du kannst aber jeden beliebigen Benutzernamen wählen, musst ihn dann aber natürlich dann evtl. in weiteren Schritten in diesem Tutorial auch ändern. Ich habe den Benutzernamen jedesmal markiert, damit du ihn nicht übersiehst...
Das Passwort kannst du nach Belieben festlegen.
3. Auf der nächsten Seite wählst du dein WLAN aus, oder du hast den Raspberry per LAN angeschlossen.
4. Nach Fertigstellen starten wir den Raspberry erst einmal neu und landen im Desktop.
2b. Aktivieren zusätzlicher Dienste
Um auf den Raspberry remote zugreifen zu können, also ohne einen Monitor und Tastatur/Maus angeschlossen zu haben, aktivieren wir zusätzliche Dienste. Hier stehen zwei Möglichkeiten zur Verfügung:
Möglichkeit 1: Grafische Oberfläche
Im Menü auf Einstellungen → "Raspberry Pi-Konfiguration"

Im Tab System → "Change Hostname". Hier den Hostnamen auf astropi ändern.

Im Tab Schnittstellen "SSH" und "VNC" für den Remotezugriff aktivieren

Nach dem Klick auf Ok im Dialogfenster den Raspberry neustarten.
Möglichkeit 2: Im Terminal
Terminal starten (Symbol ist oben in der Schnellstartleiste oder als Tastatur-Shortcut: Strg + Alt + T)
sudo raspi-config
Navigation mit den Pfeiltasten (oben/unten zum Navigieren in der Liste, mit links/rechts kann zwischen der oberen Liste und den unteren Optionen gewechselt werden. Die Tabulatur-Taste wechselt ebenfalls zwischen den Auswahlmöglichkeiten. Bestätigen mit Enter.
1 System Options → S4 Hostname → astropi
3 Interface Options → I1 SSH → enable
3 Interface Options → I2 VNC → enable
Wenn von einem USB-Datenträger gebootet werden soll, kann noch die Boot-Reihenfolge geändert werden:
6 Advanced Options → A4 Boot Order → B2 NVMe/USB Boot
Raspberry neustarten
sudo reboot
Ab sofort kann der Raspberry über SSH bzw. einen VNC-Viewer remote über den Hostnamen aufgerufen werden und benötigt nicht mehr zwingend einen eigenen Bildschirm und Tastatur.
Der Zugriff via SSH erfolgt über einen speziellen SSH-Client (ich verwende hierfür Putty), kann aber mittlerweile auch direkt über die Eingabeaufforderung in Windows gemacht werden. (ssh astro@astropi). Bei der ersten Verbindung wird der Schlüssel/Fingerprint überprüft und da er noch unbekannt ist, müssen wir dies bestätigen. (Windows: yes eintippen, Putty "Yes" im Dialogfeld auswählen)
3. INDI Library, KStars, PHD2 in der aktuellen stabilen Version installieren bzw. kompilieren
Um nicht alles händisch machen zu müssen, hat sich hier Dušan Poizl / nou" extrem dankenswerterweise die Mühe gemacht, fertige Scripte zu erstellen und auf github zur Verfügung zu stellen, die diese Schritte massiv vereinfachen. Vielen Dank hierfür!
cd ~
git clone https://gitea.nouspiro.space/nou/astro-soft-build.git
cd astro-soft-build
Als erstes benötigen wir diverse Programmbibliothek, also Libraries. Dieser Schritt wird nur einmal benötigt:
./install-dependencies.sh
Wenn dies erfolgreich abgeschlossen ist, können INDI, KStars, Stellarsolver & Co. installiert bzw. kompiliert und installiert werden. Hier werden die aktuellsten stabilen Versionen installiert, es gibt aber auch die Möglichkeit (./build-soft-latest.sh), die aktuellsten Versionen zu verwenden, diese könnten aber instabil sein. Daher gehe ich jetzt nicht näher darauf ein und verwende die aktuellsten stabilen Versionen in diesem Tutorial.
Installation mit PHD2
sudo apt install libwxgtk3.2-dev wx-common wx3.2-i18n libindi-dev libx11-dev libgtest-dev libgmock-dev
./build-soft-stable.sh phd2
Installation ohne PHD2
./build-soft-stable.sh
Jetzt ist erst einmal laaaanges Warten angesagt, bis alles heruntergeladen, kompiliert und eingerichtet wird.
4. INDI Web Manager
Eine bequeme Steuerung zur Einrichtung/Verwaltung des INDI-Servers mit allen Gerätetreibern und zum Anlegen von Profilen etc. über eine übersichtliche Weboberfläche bietet der INDI Web Server von Jasem Mutlaq / knro, zu finden unter https://github.com/knro/indiwebmanager.

Zur Installation im Terminal geben wir folgende Befehle ein:
sudo apt install python3-full
pip install indiweb --break-system-packages
Als nächstes benötigen wir einen Dienst, um beim Systemstart automatisch den Web-Manager zu starten:
cd ~
sudo nano indiwebmanager.service
Folgender Inhalt kommt in die Datei. ACHTUNG, den Benutzernamen in der Zeile "User=astro" ändern, sollte dein Benutzername nicht "astro" sein!
[Unit]
Description=INDI Web Manager
After=multi-user.target
[Service]
Type=idle
# MUST SET YOUR USERNAME HERE.
User=astro
ExecStart=/usr/local/bin/indi-web -v
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Diese Datei wird nun in das richtige Verzeichnis kopiert und der Dienst aktiviert.
sudo cp indiwebmanager.service /etc/systemd/system/
sudo chmod 644 /etc/systemd/system/indiwebmanager.service
sudo systemctl daemon-reload
sudo systemctl enable indiwebmanager.service
sudo systemctl start indiwebmanager.service
Ab sofort ist der INDI Web Manager im lokalen Netzwerk in einem Browser deiner Wahl über die URL http://astropi:8624 oder direkt am Raspberri über http://localhost:8624 aufrufbar und der INDI Server kann konfiguriert werden.
5. GPSD
Ich habe bei mir einen einfachen GPS-Dongle angeschlossen, um die aktuelle Position und Höhe für KStars zu erhalten. Das war teilweise ein extremer Kampf, weil das GPS-Signal recht einfach durch USB3 gestört werden kann und dann kein GPS-Fix mehr funktioniert. Daher ist es extrem wichtig, gut geschirmte USB-Kabel zu verwenden, hier etwa für die Guiding-Kamera, die ab Werk oft die flachen Kabel verwendet. Mein GPS-Dongle ist über eine USB-Verlängerung etwas weiter entfernt vom Raspberry etc. angebracht, um zusätzlich den Störsignalen zu entfliehen.
Die folgenden Schritte beziehen sich auf eben diesen ublox-Dongle, sollte aber mit ähnlichen Geräten ziemlich ähnlich funktionieren.
Zur Installation benötigen wir den GPS-Daemon und weitere GPS-Tools. Im Terminal folgenden Befehl eingeben, um diese Dinge zu installieren:
sudo apt-get install gpsd gpsd-clients
Um herauszufinden, an welcher Stelle der GPS-Dongle ins System eingebunden ist, den Dongle als erstes noch nicht an den Raspberry anschließen bzw. wieder entfernen.
ls /dev/tty*
Jetzt den Dongle anschließen und wieder den selben Befehl eingeben.
ls /dev/tty*

Nun ist ein Gerät dazugekommen, bspw. ttyACM0. Dies ist dann der Dongle, diesen Wert merken wir uns für die weiteren Schritte.
Alternativ funktioniert dies auch grafisch über den Dateimanager /dev/serial/by-id/ das Gerät, welches in der Bezeichnung irgendwas mit "u-blox" enthält, als bspw. "usb-u-blox_AG_-_www.u-blox.com_u-blox_7_-_GPS_GNSS_Receiver-if00" mit der rechten Maustaste anklicken und auf Eigenschaften klicken. Dort steht unter Zielname dann ebenfalls ../../ttyACM0

Nun den Daemon konfigurieren:
sudo nano /etc/default/gpsd
Inhalt der Datei
# Devices gpsd should collect to at boot time.
# They need to be read/writeable, either by user gpsd or the group dialout.
DEVICES="/dev/ttyACM0"
# Other options you want to pass to gpsd
GPSD_OPTIONS="-n"
# Automatically hot add/remove USB GPS devices via gpsdctl
USBAUTO="true"
START_DAEMON="true"
Zur Kontrolle des GPS-Signals können folgende Tools verwendet werden. Der Dongle selber sollte natürlich möglichst freie Sicht zum Himmel haben:
Ausgabe vom Daemon:
cgps -s
Ausgabe vom Daemon mit den einzelnen Outputs vom Dongle (evtl. Fenster des Terminals vergrößern):
cgps
Bei freier Sicht vom Dongle zum Himmel sollte recht schnell ein 2D- bzw. 3D-Fix erfolgen, der Dongle blinkt bei einem Fix rot/grün. 2D-Fix (3 Satelliten) bedeutet, nur geographische Breite und Länge, 3D-Fix (4 Satelliten) liefert auch noch die Höhe. Wenn kein Fix oder falsche Werte erfolgen, kann einiges nachgebessert werden, vor allem der Auslesemodus kann hier ausschlaggebend sein, also bspw. NMEA statt binär.
Um die richtige Geschwindigkeit (115200 Baud statt 9600 Baud), den Typ (u-blox) und den Auslesemodus (NMEA statt binär) zu ändern bei laufendem GPS-Daemon folgenden Befehl eingeben:
gpsctl -s 115200 -t u-blox -n /dev/ttyACM0
Eine schönere, grafische Oberfläche (funktioniert also nur mit angeschlossenem Bildschirm bwz. über VNC) von cgps findest du mittels:
xgps
Alternativ zu cgps gibt's auch noch gpsmon. gpsmon liest die Daten direkt und nicht über nicht den GPS-Daemon aus:
gpsmon
5a. Modus, Geschwindigkeit und Typ bei jedem Systemstart automatisch eintragen
Ich mache es mir hier einfach und überprüfe jede Minute, ob eine bestimmte (temporäre) Datei vorhanden ist. Wenn sie nicht vorhanden ist, wird gpsctl aufgerufen und diese temporäre Datei erstellt. Der Vorteil ist, dass diese Datei bei einem Systemstart automatisch bereinigt wird und dadurch der Befehl nur einmal ausgeführt wird, auch wenn der cronjob ihn jede Minute ausführt.
cd ~
nano GPS_settings.sh
Inhalt der Datei:
#!/bin/bash
FILE=/tmp/gps_nmea
if [ ! -e "$FILE" ]
then
gpsctl -s 115200 -t u-blox -n /dev/ttyACM0
touch "$FILE"
fi
exit
Cronjob jede Minute ausführen
crontab -e
*/1 * * * * /home/astro/GPS_settings.sh
6. Abschluss
Das war schon alles, um das System zu benutzen, jetzt ist es an der Zeit, das System entweder direkt am Raspi oder über LAN/WLAN remote auf einem anderen Gerät auszuprobieren.
