Avnav Installation

AvNav Installation

Software Versionen

Eine Beschreibung der Versionen und Links zu den Downloads finden sich im Release Dokument.

Um den Start zu vereinfachen, gibt es einige fertige Images für den Raspberry Pi. Die Art des Images hängt vom geplanten Anwendungsfall ab. Wenn der Raspberry nur als Server eingesetzt wird, die Anzeige dann z.B. auf Mobilgerätenerfolgen soll, sollte das  "headless"-Image genutzt werden. Für diese Image reicht ein Raspberry Pi 3B(+). Wenn ein Monitor und Peripherie wie Tastatur und Maus direkt an den Raspberry angeschlossen werden sollen, kann die OpenPlotter-Variante eine gute Basis sein. Für OpenPlotter empfiehlt sich ein Pi4 mit 4GB Speicher. Auch 2GB Arbeitsspeicher wird ausreichen - dann bleibt aber nicht viel Raum für zukünftige Anforderungen. Es gibt auch spezielle Images für AvNav mit einem Tochscreen - diese sind allerdings nicht immer auf dem aktuellen Stand.

Image ohne Bildschirm (Headless)

Diese Images werden von BlackSea gepflegt (vielen Dank...). Eine Beschreibung findet sich auf seiner Webseite.

Für diese Variante lädt man unter Windows/Linux/OSx das Image von free-x herunter und transferiert es wie unter http://www.raspberrypi.org/downloads (raw images) beschrieben auf eine SD Karte.

Diese Images enthalten

Die Images sind so vorkonfiguriert, dass NMEA0183-Daten von allen Interfaces zu AvNav und von dort zu SignalK geleitet werden. AvNav holt sich zusätzlich alle Daten von SignalK und kann diese anzeigen.
NMEA2000-Daten laufen über Canboat zu SignalK und zu AvNav.
Für Details siehe CanBoatAndSignalK.

Image Vorbereitung

neu ab Version "20210322"

Bevor die fertig vorbereitete SD-Karte im Raspberry verwendet wird, sollte man einige Einstellungen anpassen. Das gilt vor allem für Passworte:
Die Images haben eine Konfigurationsdatei "avnav.conf". Sie findet sich in der ersten Partition der SD-Karte (Boot-Partition). Diese Datei kann mit einem Texteditor angepasst werden.

Einfacher geht es mit einer kleinen Web-Oberfläche hier.

Die Bedeutung der Felder:

Name Default Beschreibung
Wifi SSID avnav Der Name des WLAN-Netzwerks, das der Raspberry erzeugen soll. Die Images sind so vorbereitet, dass man durch Einstecken von WLAN-Adaptern auch weitere Netzwerke erzeugen kann. Daher wird eine einstellige Nummer an den Namen angefügt.
Wifi Password avnav-secret Das Passwort für das WLAN-Netzwerk. Das sollte in jedem Falle geändert werden. Jeder, der sich mit dem WLAN verbinden kann, kann damit auch die Navigation beeinflussen!
User pi password raspberry Das ist das Passwort für den Nutzer "pi". Dieser Standard- User wird genutzt, wenn man sich per SSH verbindet oder wenn man direkt per Monitor und Tastatur auf den Raspberry zugreift. Das Passwort für den User "pi" sollte ebenfalls unbedingt geändert werden.
Configure MCS aus Wenn diese Optoin aktiviert ist, wird beim nächsten Bootvorgang die notwendige Software für den Marine Control Server von GeDad aktiviert. Die Änderung der Einstellung führt dann zu einem automatischen Reboot, wenn der Raspberry das erste mal mit dieser Einstellung startet.

Nach dem Eintragen der Werte kann man durch Klick auf den "download"-Button die "avnav.conf"-Datei herunterladen. Diese muss in die erste Partition der SD-Karte gespeichert werden. Eine eventuell dort vorhandene Beispieldatei muss überschrieben werden! Diese Partition muss dazu natürlich auf dem Computer sichtbar sein. Unter Windows wird man in der Regel nur die erste Partition sehen können. [Eventuell muss man dazu nach dem Schreiben des Images die SD-Karte noch einmal enfernen und wieder einstecken.] unklarer Satz, warum muss man das?

Es empfiehlt sich daher, die "avnav.conf"-Date noch einmal an einem sicheren Platz zu speichern, um sie ggf. beim Erzeugen einer neuen SD-Karte wiederverwenden zu können.

Nun kann man die SD-Karte in den Raspberry stecken und ihn starten. Der erste Boot kann einige Zeit dauern, da das gesamte Dateisystem auf der SD-Karte erzeugt werden muss. Wenn man die MCS-Software selektiert hat, wird der Raspberry noch ein weiteres Mal neu starten.

Wenn der Raspberry seine Systemeinrichtung endgültig abgeschlossen hat, kann man sich mit ihm verbinden.

Verbinden mit dem Raspberry Pi

Man kann das WLAN-Netzwerk verwenden, das der Raspberry erzeugt hat. Die SSID und das Passwort wurden wie oben beschrieben in der Datei "avnav.conf" definiert. Auch eine Verbindung über ein Ethernet-Kabel ist möglich und wird sofort funktionieren.
Um sich zu verbinden, muss man zuächst die Adresse für den Raspberry herausfinden.
Am einfachsten geht das per mDNS, auch als "Bonjour" oder "Avahi" bezeichnet. Das wird auf allen Desktop-Systemen unterstützt. So kann man einfach in die Adresszeile des Browsers eingeben:

http://avnav.local

Das sollte die Hauptseite von AvNav laden. Es sollte auch möglich seine, avnav.local zu benutzen, wenn man sich mit dem Raspberry per SSH verbinden will (z.B. putty unter Windows).
Wenn man sich per Ethernet-Kabel verbinden möchte, muss man zwei Fälle unterscheiden:

  1. Direkte Verbindung vom Computer zum Raspberry
  2. Beide sind mit einem Netzwerk verbunden, in dem auch ein Router/DHCP Server arbeitet.

Im ersten Fall muss man prüfen, ob der eigene Computer automatisch eine IP-Adresse auf dem Interface erzeugt (Bereich 169....). Das kann potentiell 1-2 Minuten dauern, auch auf dem Pi. Danach sollte die Verbindung per avnav.local möglich sein.
Im anderen Fall sollte es schneller gehen, allerdings müssen sich der Raspberry und der sich verbindende Computer im gleichen Netz befinden.
Auf Images, die älter als Version "20210322" sind, muss man eventuell die Portadresse ":8080" an die IP-Adresse im Browser anfügen.

Eine Einschränkung bleibt: Leider funktioniert avnav.local nicht auf Android-Geräten. Daher empfehle ich, dort ein Tool zu nutzen, das mDNS nutzen kann - einen BonjourBrowser . Für IOS gibt es ein  vergleichbares Tool - auch wenn dort der Eintrag "avnav.local" im Brwoser funktioniert. Man wird seinen Raspberry mit dem AvNav-Image in den Browsern unter dem Namen "avnav-server" finden. Typischerweise wird man noch einen zweiten Eintrag "avnav" sehen - dahinter verbirgt sich der SignalK-Server auf dem Raspberry.
Wenn man seinen Raspberry im Bonjour-Browser sehen kann, der Aufruf der Seite dann aber fehlschlägt, kann es an einer Besonderheit von Android liegen, wenn zusätzlich z.B. per Mobilfunk eine Internet-Verbindung aktiv ist. In diesem Falle sollte man mobile Daten zeitweilig abschalten.

Wenn man ein System hat, das nur mit dem WLAN-Netzwerk des Raspberry verbunden ist, ohne dass eine weitere Internetverbindung aktiv ist, sollte man sich auch per

http://avnav.avnav.de

verbinden können.
Wenn das nicht funktioniert, ist der letzte Weg immer die IP-Adresse.
Für die WLAN-Verbindung lautet die primäre IP in der Regel:

http://192.168.20.10

Wenn auch das nicht funktioniert, sollte man die folgenden Adressen probieren: 192.168.30.10, 192.168.40.10, 192.168.50.10.
Wenn man mit einem Ethernet-Kabel verbunden ist, kann man die IP-Adresse nur ermitteln, wenn man Zugriff auf den Router/DHCP Server im Netz hat.

Wenn man sich per SSH verbindet, ist der Nutzername "pi". Das Nutzer-Passwort wurde in der Datei "avnav.conf" (hoffentlich) gesetzt. .
Wenn das in der Konfiguration gesetzte Passwort nicht funktioniert, kann man noch einmal das Default-Passwort versuchen. Es lautet "raspberry". Eventuell wurde die avnav.conf zuvor nicht korrekt gespeichert.
Eine Root-Shell kann man mit sudo -i erhalten.

Technische Details

Der Raspberry wird ein (oder mehrere) WLAN-Netzwerke aufsetzen, eines mit dem internen Adapter und weitere mit potentiell gesteckten WLAN-Sticks. Diese Netzwerke haben die Adressen:192.168.20.0/24, 192.168.30.0/24, 192.168.40.0/24, 192.168.50.0/24. Der Raspberry selbst hat dabei jeweils die Adresse 192.168.x.10.

Auf dem Raspberry wird dazu ein DHCP-Server und ein DNS-Server eingerichtet (dnsmasqd).

Wenn der Raspberry über ein Ethernet-Kabel verbunden wird, versucht er per DHCP eine Adresse aus dem Netzwerk zu erhalten. Er setzt dann eine NAT-Weiterleitung aus seinem WLAN-Netz zum Ethernet auf. So kann z.B. eine Internetverbindung aufgebaut werden, während man in das WLAN des Raspberry eingewählt ist.

WLAN Client Verbindung

Ein WLAN Stick der wie im Bild angeschlossen ist (auf dem Pi4 die blaue USB Buchse an der Platinen-Seite) erlaubt es, sich zusätzlich mit anderen WLAN Netzen zu verbinden (z.B. ein HAfen WLAN oder ein LTE Router). Der interne Name ist wlan-av1. Man kann die Verbindung zu einem WLAN in der App konfigurieren.

Port 80 wird direkt zum Web-Server von AvNav weitergeleitet. Dieser lauscht grundsätzlich auf Port 8080.

Wenn man per SSH verbunden ist, kann man mit
sudo systemctl status avnav sudo systemctl start avnav sudo systemctl stop avnav

den Status des Servers prüfen, ihn starten oder stoppen.

Für die meisten Aktionen sollte ein Kommandozeilen-Zugang jedoch nicht erforderlich sein. Für Updates nutzt man das bereits vorinstallierte Update-Plugin. Die Server-Konfiguration kann innerhalb der App auf der Server/Status-Seite vorgenommen werden.

Image mit Bildschirm

Falls man einen Bildschirm an den Raspberry Pi anschliessen möchte, ist dieses Image das richtige.
Für 
diese Variante hat Holger (pandel) dankenswerterweise eine eigene Image-Linie aufgesetzt. Die tollen Beschreibungen dazu findet man auf seiner AvNav-Touch-Webseite. Herunterladen kann man die Images von der download Seite.

Natürlich kann man auch hier weitere externe (Display-)Geräte nutzen.

Wichtiger Hinweis: Momentan (12/2020) sind diese Images nicht mehr aktuell. Man müsste für eine Aktualisierung händisch die Paketquellen aus dem nächsten Absatz einbinden und die Pakete updaten. Wir arbeiten zur Zeit an einer Aktualisierung.

Paket Installation

Dank Oleg gibt es jetzt fertige Paket-Repositories, die man in sein Debian-Linux einbinden kann. Das geht auf dem Raspberry Pi - aber auch auf jeder anderen Debian-Variante (z.B. Ubuntu).
Informationen dazu findet man wieder in seiner Beschreibung.

Die Paketquellen bindet man wie folgt ein. Das ist nur nötig, wenn man nicht das "headless"- oder "touch"-Image nutzt):

wget https://www.free-x.de/debian/oss.boating.gpg.key sudo apt-key add oss.boating.gpg.key wget https://www.free-x.de/debian/boating.list sudo cp boating.list /etc/apt/sources.list.d/
sudo apt-get update

Für die Installation auf einem Raspberry-System muss man nach Einbindung der Paketquellen die folgenden Schritte ausführen:

sudo apt-get install avnav avnav-raspi
Der Raspberry startet danach AvNav automatisch mit dem Nutzer "pi".

Für ein anderes Debian oder, wenn man die Konfigurationsfunktionen für das Betriebssystem von AvNav nicht nutzen möchte, ändert man den Befehl zu:
sudo apt-get install avnav
Danach kann man als beliebiger Nutzer mit dem Kommando
avnav
den Server starten.
Mit
sudo systemctl enable avnav sudo systemctl start avnav
kann man AvNav mit dem Benutzer "avnav" automatisch beim Systemstart aktivieren.
Alternativ kann man auch die Debian-Pakete direkt von der Download-Seite herunterladen:
Nach dem Herunterladen kann man die Pakete mit
sudo dpkg -i avnav_xxxxxxxx_all,deb sudo dpkg -i avnav-raspi_xxxxxxxx_all.deb sudo apt-get -f
installieren ????(dabei das -raspi... Paket nur auf einem Raspberry) ????. Die ersten Kommandos werden typischerweise Fehler erzeugen, das letzte lädt dann die fehlenden Abhängigkeiten.

Wenn man auf einem Raspberry installiert, sollte man das "avnav-raspi"-Paket nur dann installieren, wenn man damit einverstanden ist, dass die Netzwerk-Konfiguration so geändert wird, wie AvNav das möchte. Sonst sollte man nur das "avnav"-Paket installieren.

Ich würde in jedem Fall empfehlen, das AvNav Update-Plugin zu installieren - aus dem Paket Repository mit

sudo apt-get install avnav-update-plugin

oder mittels Download von  GitHub.

Wenn man nicht das "avnav-raspi"-Paket installiert, braucht man einige zusätzliche Schritte, um AvNav unter dem Nutzer "pi" automatisch starten zu lassen:

Man kann dann als Nutzer "pi" AvNav einfach von der Kommandozeile starten lassen.
Wenn man AvNav als "systemd service" laufen lassen möchte, sollte man das Verzeichnis:
/usr/lib/systemd/system/avnav.service.d
anlegen und dort die Datei raspberry.conf hinein kopieren.
Die Zeile 5 in der Datei muss dann noch etwas abgeändert werden, da das dort angegebene Template für die avnav_server.xml nicht existiert.
Also muss geändert werden in:
ExecStart=/usr/bin/avnav -q -b /home/pi/avnav/data -t /usr/lib/avnav/avnav_template.xml
Danach kann man mit den Kommandos
sudo systemctl daemon-reload
sudo systemctl enable avnav
sudo systemctl start avnv

Avnav als Systemdienst starten. Wenn man diese Datei nicht anlegt/kopiert, wird AvNav nicht mit den Nutzer "pi", sondern mit dem Nutzer "avnav" arbeiten.

Wenn man auch die Karten-Konvertierung auf dem Linuxrechner mit einer kleinen GUI machen möchte, muss zusätzlich das Paket "python-wxgtk3.0" installiert werden. Dann muss man AvNav mit

avnav -g
starten. Das sollte im Normalfall aber nicht nötig sein, man kann auch direkt in der App die zu konverierenden Karten hochladen.

OpenPlotter

Für OpenPlotter gibt es eine komplette Integration von AvNav (Dank an e-sailing). Im Repository https://www.free-x.de/deb4op/ , das bereits standardmäßig mit OpenPlotter 2 kommt, sind die notwendigen Pakete bereits vorhanden. Somit kann man sie einfach installieren:

sudo apt update sudo apt install openplotter-avnav

Seit 2021/03 ist AvNav offiziell in OpenPlotter verfügbar. So sollte nach einem Update von OpenPlotter "openplotter-avnav" bereits verfügbar sein.

Das Paket "avnav-raspi_xxx.deb" sollte man auf OpenPlotter nicht installieren, weil es sich nicht mit den Netzwerkeinstellungen von OpenPlotter verträgt. Innerhalb der OpenPlotter-AvNav-Konfiguration kann man den HTTP-Port für AvNav ändern, wenn es Probleme mit anderen Apps geben sollte. Die Defaultwerte sind: :8080 für den Browserzugriff, :8082 für ocharts.

Wenn man AvNav mit der OpenPlotter-App installiert, empfängt AvNav alle NMEA-Daten von SignalK und sucht nicht selbst nach USB Geräten. Alle Geräte-Konfigurationen oder Schnittstellen-Einrichtungen können so direkt in OpenPlotter und SignalK vorgenommen werden.


Windows

Für Windows gibt es einen Installer. Dieser wird nicht bei jedem Release neu ausgeliefert. Die aktuelle Version findet man hier.
Es empfiehlt sicht, den "AvNavNetSetup-jjjj-mm-dd-0.exe"-Installer zu verwenden, da dieser die eigentliche Software nachlädt und somit eine Möglichkeit bietet, jeweils die neueste AvNav-Version zu installieren, ohne den Installer selbst neu herunterladen zu müssen.
Die Windows-Version ist primär auf die Karten-Konvertierung ausgelegt, bietet aber die volle Funktionalität und kann somit auch zur Navigation unter Windows verwendet werden. Wie bei allen anderen Versionen bietet auch die Windwos-Version den Zugriff per Browser von anderen Geräten aus über das Netzwerk..