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. Für den "klassischen" Fall(der Raspberry ist nur ein Server, die Anzeige erfolgt z.B. auf Mobilgeräten) sollte das  headless images genutzt werden. Für diese Images reicht ein Raspberry Pi 3B(+). Wenn man einen Monitor direkt an den Raspberry anschliessen möchte (und u.U. noch eine Tastatur und eine Maus) könnte OpenPlotter eine gute Basis sein. Für OpenPlotter empfiehlt sich ein Pi4 mit 4GB Speicher (vermutlich werden auch 2GB 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 im Moment aber nicht auf dem aktuellen Stand.

Image ohne Bildschirm (Headless)

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

Für diese Variante einfach unter Windows/Linux/OSx das Image von free-x herunterladen und wie unter http://www.raspberrypi.org/downloads (raw images) beschrieben auf eine SD Karte spielen.

Diese Images enthalten

Sie sind so vorkunfiguriert, das 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 gehen über Canboat zu SignalK und zu AvNav.
Für Details siehe CanBoatAndSignalK.

Image Vorbereitung

neu ab 20210322

Bevor man die SD Karte in den Raspberry steckt (nachdem das Image darauf geschrieben wurde) Sollte man einige Einstellungen anpassen (vor allem Paßworte).
Die Images haben eine Konfigurationsdatei "avnav.conf" 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 Netzwerkes, das der Raspberry erzeugen wird. Die Images sind so vorbereitet, das 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 Paßwort für das WLAN Netzwerk. Das sollte in jedem Falle geändert werden- jeder, der sich mit dem WLAN verbinden kann, kann die Navigation beeinflussen!
User pi password raspberry Das ist das Paßwort für den Nutzer "pi" wenn man sich per SSH verbindet (oder wenn man Monitor und Tastatur anschliesst). Dieses sollte ebenfalls unbedingt geändert werden.
Configure MCS aus Wenn das aktiviert ist, wird beim nächsten Boot die notwendige Software für den Marine Control Server von GeDad aktiviert. Das 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 dort vorhandene Beispieldatei muss überschrieben werden!). Diese Partition muss dazu auf dem Computer sichtbar sein (unter Windows typisch nur die erste Partition). Eventuell muss man dazu nach dem Schreiben des Images die SD Karte noch einmal enfernen und wieder einstecken.

Es empfiehlt sich, 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 diesen booten. Der erste Boot kann einige Zeit dauern, da er zunächst einmal neu starten wird, um sein Dateisystem auf die gesamte SD Karte zu vergrössern.Wenn man die MCS Software selektiert hat, wird er noch ein weiteres mal neu starten.

Jetzt kann man sich mit dem Raspberry verbinden.

Verbinden mit dem Raspberry Pi

Man kann sowohl das WLAN Netzwerk verwenden, das der Raspberry erzeugen wird (Name und Paßwort wurde in der config definiert) - als auch eine Verbindung über ein Ethernet Kabel.
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 Router/DHCP Server verbunden.

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 Computer im gleichen Netz befinden.
Auf älteren Images als 20210322 muss man eventuell :8080 an die Adresse im Browser anfügen.

Leider funktioniert avnav.local nicht auf Android Geräten. Daher empfehle ich, dort ein Tool zu nutzen, das MDNS nutzen kann - BonjourBrowser . Für IOS gibt es ein  vergleichbares Tool - auch wenn dort avnav.local funktioniert. Man wird seinen Raspberry mit dem AvNav image in den Browsern unter dem Namen "avnav-server" finden. Typsicherweise wird man noch einen zweiten Eintrage "avnav" sehen - das ist SignalK auf dem Raspberry.
Wenn man im BonjourBrowser seinen Raspberry sehen kann, der Aufruf der Seite dann aber fehlschlägt, kann es an einer Besonderheit von Android liegen, wenn man zusätzlich z.B. per Mobilfunk eine Internet-Verbindung hat. In diesem Falle sollte man mobile Daten zeitweilig abschalten.

Wenn man ein System hat, das nur mit dem WLAN Netzwerk des Raspberry verbunden ist (keine andere Internet Verbindung) 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 die primäre IP ist:

http://192.168.20.10

Wenn das auch 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 Paßwort kann man in der Konfiguration gesetzt.
Wenn das in der Konfiguration gesetzte Paßwort nicht funktioniert, kann man noch einmal das default Paßwort (raspberry) versuchen. Eventuell hat man die avnav.conf 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.

Es wird ein DHCP Server und ein DNS Server aufgesetzt (dnsmasqd).

Wenn der Raspberry über ein Ethernet Kabel verbunden wird, versucht er per DHCP eine Adresse zu erhalten. Er setzt eine (NAT) Weiterleitung aus seinem WLAN Netz zum Ethernet auf. So erhält man z.B. eine INternet Verbindung, wenn man im 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 ist direkt zum Web-Server von AvNav weitergeleitet (dieser lauscht 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, starten und stoppen.

Für die meisten Aktionen sollte ein Kommandozeilen-Zugang jedoch nicht erforderlich sein. Für updates nutzt man dasUpdate Plugin (das ist bereits installiert). Die Server-Konfiguration kann innerhalb der App auf der Server/Status Seite vorgenommen werden.

Image mit Bildschirm

Falls man direkt einen Bildschirm an den 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 Seite. 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 die Paketquellen aus dem nächsten Absatz einbinden und die Pakete updaten. Wir arbeiten an einer Aktualisierung.

Paket Installation

Dank Oleg gibt es jetzt fertige Paket-Repositories, die man in sein Debian 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 (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 das 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 package 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 es 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 hineinkopieren.
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 ändern 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 Linux Rechner mit einer kleinen GUI machen möchte, muss man zusätz 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 in OpenPlotter eingerichtet ist) 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(default 8080 und 8082 für ocharts), wenn es Probleme mit anderen Apps geben sollte..

Wenn man AvNav mit der OpenPlotter App installiert, empfängt es alle NMEA Daten von SignalK (und sucht nicht selbst nach USB Geräten). Damit kann man alle Konfigurationen in OpenPlotter und SignalK machen.


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 immer lassen sich weitere Geräte ankoppeln.