Astro-Software 5: Die Treiber

Beschreibung

INDI ist eine Abkürzung für Instrument-Neutral-Distributed-Interface. Das Indi-Protokol dient dabei als Schnittstelle zwischen der Hard- und der Software.

Als Hardware sind in unserem Fall Montierung des Teleskops, Kamera, Fokussierer und Konsorten zu verstehen. Diese Hardware wird von den indi-Treibern angesteuert, die ihrerseits mit dem indi-server kommunizieren.

Die grafische Bediensoftware, zum Beispiel Stellarium oder kstars unterhält sich ebenfalls mit dem indi-server. Und zwar als Client.

Nochmal! Der indi-server ist die Vermittlungsstelle zwischen Soft- und Hardware. Er befindet sich auf dem Rechner, auf dem sich auch die Treiber befinden, also auf dem Rechner, in den Montierung und Kamera eingestöpselt sind. Er gibt an die Treiber weiter, was er vom Client, also vom Bedienprogramm erhält. Und er meldet dem Bedienprogramm, was er an Rückmeldungen von den Treibern erhält.

Treiber und Bedienprogramme können sich auf demselben Rechner befinden. Sie müssen es aber nicht. Durch die Server – Client -Architektur von indi kann man das Teleskop von überall aus bedienen. Man kann kstars auf dem Rechner im warmen Wohnzimmer installiert haben und steuert von dort aus das Teleskop in der eisig kalten Sternwarte. Die Verbindung zwischen dem Wohnzimmerrechner und dem Rechner in der Sternwarte erfolgt dann per LAN-Kabel, über Bluetooth oder übers Internet. Je nach Gegebenheit natürlich. Denn ein Kabel in die Sternwarte im Garten kann man vielleicht noch installieren. Steht die Sternwarte aber auf der anderen Seite der Erdkugel, wird das schon ein wenig komplizierter. Hier würde sich dann in der Tat das Internet anbieten.

Bevor wir das alles ausprobieren können, müssen die entsprechenden Programme erst einmal den Weg auf unsere Rechner finden. Und da beginnen wir beim Sternwarten-Rechner. Da kommen die indi-Treiber und der indi-server drauf.

Wichtig: Reihenfolge einhalten, sonst funktioniert es nicht mit dem Kompilieren:

  1. Abhängigkeiten auflösen
  2. indi-core; Quellcode herunterladen (da ist der indi-server mit dabei)
  3. indi-core: Kompilieren und Installieren
  4. indi-3rdparty: Quellcode herunterladen (Treiber, die nicht im indi-core enthalten sind)
  5. libahp-gt: Kompilieren und Installieren (notwendig für den eqmod-Treiber)
  6. indi-eqmod: Kompilieren und Installieren (Treiber für die Skywatcher-Montierung)
  7. libasi: Kompilieren und Installieren (Bibliotheken für die Kameras von ZWO)
  8. indi-asi: Kompilieren und Installieren (Treiber für die Kameras von ZWO)
  9. Neustart des Rechners

Also, los geht es!

1. Abhängigkeiten auflösen

sudo zypper install \
libev-devel \
libnova-devel \
libusb-1_0-devel \
libcurl-devel \
gsl-devel \
fftw3-devel \
gtest \
gmock

2. indi-core: Sourcecode herunterladen

Die Quelldateien befinden sich im github. Von dort laden wir sie auf unseren Rechner.

cd ~/astrostuff &&\
git clone --depth=1 https://github.com/indilib/indi.git

Die Übersetzung:

  1. Wechsle ins Hauptverzeichnis „astrostuff“
  2. Clone den Quellcode in dieses Verzeichnis

Im Hauptverzeichnis „astrostuff“ ist nun wie durch ein Wunder ein Unterverzeichnis mit dem Namen „indi“erschienen. Darin befindet sich der Quellcode für „indi-core“.

3. indi-core: Kompilieren und Installieren

Jetzt kompilieren und installieren wir das Ganze

mkdir -p ~/astrostuff/build/indi-core &&\
cd ~/astrostuff/build/indi-core &&\
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release ~/astrostuff/indi &&\
sudo make -j4 install

Die Übersetzung:

  1. Erstelle im Hauptverzeichnis ein Verzeichnis mit dem Namen „build“. Und erstelle in „build“ ein Unterverzeichnis mit dem Namen „indi-core“
  2. Wechsle ins Unterverzeichnis „indi-core“
  3. Bereite das Projekt auf das Kompilieren vor
  4. Kompiliere das Ganze (make) und installiere es auf der Festplatte (install).

Die fertig kompilierten Dateien wandern damit in den Ordner /usr/local (Standard in Linux für cmake) und harren der Dinge, die da kommen.

4. indi-3rdparty: Sourcecode herunterladen

cd ~/astrostuff &&\
git clone --depth=1 https://github.com/indilib/indi-3rdparty.git

Der Quellcode für diese 3rd-Party-Treiber bekommt damit ein eigenes Unterverzeichnis in unserem Hauptverzeichnis. Ihr werdet den Namen dieses Unterverzeichnisses kaum erraten oder vielleicht doch? Richtig! Er lautet „indi-3rdparty“

5. libahp-gt: Kompilieren und Installieren

mkdir -p ~/astrostuff/build/libahp-gt &&\
cd ~/astrostuff/build/libahp-gt &&\
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release ~/astrostuff/indi-3rdparty/libahp-gt &&\
sudo make -j4 install

6. indi-eqmod: Kompilieren und Installieren

mkdir -p ~/astrostuff/build/indi-eqmod &&\
cd ~/astrostuff/build/indi-eqmod &&\
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release ~/astrostuff/indi-3rdparty/indi-eqmod &&\
sudo make -j4 install

Hier brauch ich nicht viel erzählen. Das Prinzip ist das Gleiche wie bei „indi-core“. Nur der Zielordner für die Build-Dateien ist ein anderer:
„indi-eqmod“

7. libasi: Kompilieren und Installieren

mkdir -p ~/astrostuff/build/libasi &&\
cd ~/astrostuff/build/libasi &&\
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release ~/astrostuff/indi-3rdparty/libasi &&\
sudo make -j4 install

Eigentlich hätte an dieser Stelle das Kompilieren von indi-asi stehen sollen. Da hatten die Macher von indi aber wohl etwas dagegen, denn sie haben die Bibliotheken für die ZWO-Kameras separat gestellt.

Kompilieren wir also zuerst diese libraries. Der Zielordner im Build-Verzeichnis ist diesmal „libasi“

8. indi-asi: Kompilieren und Installieren

mkdir -p ~/astrostuff/build/indi-asi &&\
cd ~/astrostuff/build/indi-asi &&\
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release ~/astrostuff/indi-3rdparty/indi-asi &&\
sudo make -j4 install

Damit haben wir das Ganze mit den Treibern für die ZWO-Kameras komplettiert. Zielordner? Richtig! „indi-asi“

9. Neustart

Die ASI-Kameras von ZWO werden über USB angesprochen, Meine sind dabei sehr hungrig auf Ressourcen. Damit keine größeren Probleme entstehen, bringt „libindi“, das wir vorhin installiert haben, eine udev-Regel mit. Diese Regel sorgt für geordnete Verhältnisse, sobald die Kamera erkannt wird.

Udev-Regeln werden beim Systemstart initialisiert, deshalb ist ein Neustart des Systems zu empfehlen,

stay tuned

Hinweis

Geschrieben für und getestet mit Linux openSUSE Tumbleweed.
Die Verwendung von Code, der in dieser Astro-Software-Reihe gezeigt wird, erfolgt ausschließlich auf eigene Gefahr.

Die Artikel bauen aufeinander auf und müssen der Reihe nach abgearbeitet werden, sonst klappt es nicht mit dem kompilieren.

https://sternenkarten.com/
Menüpunkt: Astro-Software

ACHTUNG!
DIE SERIE WIRD GERADE ÜBERARBEITET
DAHER FUNKTIONIERT NICHT ALLES
ACHTUNG!

3 Gedanken zu „Astro-Software 5: Die Treiber

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..