Hauptseite/Freietonne + ModTile unter Ubuntu

Aus FreieTonne-Wiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Das Experiment - Zielstellung

Nachdem Kai Krueger seine Ubuntu-Pakete bereit gestellt hat, ist es kinderleicht, einen eigenen OSM-Datenbankserver aufzusetzen, und die eigene Slippy-Map mit selbstgerenderten Kacheln zu versorgen.

Diese Veröffentlichung war ein guter Anlaß für das nachfolgende Experiment, bei dem es darum ging, die FreieTonne auf einen Laptop zu installieren, und mit einem kompletten Kartensatz Europa zu bestücken. GPS-Navigation, Seezeichen, blaues Wasser usw. eingeschlossen.

Das Ergebnis? Es funktioniert ...

Leistungsumfang

  1. kompletter Kartensatz für das installierte Fahrgebiet bis max. gesamter Planet (hier Europa/ Afrika) steht offline zur Verfügung
  2. Kartenbilder werden on demand/ just in time gerendert, Gewässer werden blau eingefärbt
  3. Daten der FreieTonne werden dargestellt, können schnell aktualisiert werden
  4. Bluetooth-GPS ist eingebunden, Navigation funktioniert wie unter Windows/ Android/ iOS
  5. Tools der FT-Seekarte funktionieren wie gewohnt (noch nicht erledigt!!!)

Installation

Installiere Ubuntu 10.11 Desktop (10.04 geht auch)

Der Rechner sollte min 2 GB RAM und 200 GB Festplatte haben und nicht eben der langsamste sein. In meinem Falle ein ASUS eeePC 1000H. Nicht der langsamste bedeutet eben auch nicht, daß es der schnellst sein muß.

Als Basis installiere ich die Ubuntu-Desktop Version 11.10. Hier ist schon alles, was Kai Kruegers mod_tile später benötigt, enthalten.

Hardwareproblem eeePC 1000H - Absturz wg. wlan

Der eeePC 1000H von Asus (und nach meinen Recherchen im Netz auch andere eeePC's) stürzt im Batteriemodus gern mal mit einer satten Kernel-Panic ab. Dies ist auf das Powermanagement der wlan-Karte zurückzuführen. Also schalte ich das in der Datei /etc/network/if-pre-up/wlan-power (neu erstellt) ab:

#!/bin/sh
/sbin/iwconfig wlan0 power off

Die Datei muß natürlich ausführbar sein.

Hardwareproblem eeePC 1000U - Kontrolle Lüfter um Strom zu sparen

Der eeePC 1000H benötigt nach meinen Erfahrungen in Mitteleuropa keinen Lüfter. Also versuche ich, die Drehzahlen und damit den Stromverbrauch gering zu halten.

apt-get install fancontrol
pwmconfig 

in /etc/rc.local:
/usr/sbin/fancontrol > /dev/null 2>&1 &
  • Die nach jedem Suspend bzw. Hibernate nötige Authentifizierung ist lästig. Bei der Datenerfassung im Kanu auf einem fließenden Gewässer sogar fast schon gefährlich. Also schalten wir das ab. Dies ist aber Geschmacksache, muß also nicht sein.
apt-get remove gnome-screensaver

gxmessage-Nachrichten sind hübscher als xmessage

xmessage ist per default installiert, gxmessage sieht deutlich besser aus, also installieren wir es (fakultativ)

apt-get install gxmessage

Installiere Kai Krueger's Mod_Tile

Die Pakete von Kai Krüger enthalten alles, was man braucht, um einen eigenen Mapnik-/ Postgresql-Server aufzusetzen. Im Prinzip beantwortet man alle Fragen mit dem Standardwert. Lediglich bei der Frage nach den Nutzern, die Zugriff auf die DB haben sollen, trage ich außer "gis" noch "www-data" und "meinen_username" (jeweils mit Leerzeichen getrennt) mit ein.

ACHTUNG: Abfrage Zugriffsrechte nicht verpassen!

sudo add-apt-repository ppa:kakrueger/openstreetmap 
sudo apt-get update
sudo apt-get install libapache2-mod-tile 

Updates libaapache-mod-tile

Da hat sich wohl ein kleiner Fehler eingeschlichen. Es sollten vor dem update 2 Verweise gelöscht werden

mv /usr/share/mapnik-osm-data /usr/share/mapnik-osm-data.o
mv /etc/mapnik-osm-data/world_boundaries /etc/mapnik-osm-data/world_boundaries.o

Testen ob die Installaton OK (Kommentar FrRainer)

Ich habe beim Importieren der herunter geladenen Karten Probleme bekommen. Es waren Authorisations-Probleme. Dies kann gestest werden:

psql -l

Wenn alles OK erscheint eine Liste der Datenbanken, dann einfach q eingeben und alles ist OK. Erscheinen Fehlermeldungen waren folgende Befehle bei mir hilfreich:

sudo gpassd -a user postgres
createuser user

user ist der Benutzername unter dem man arbeitet. Auf die Frage nach Superuser: y

Mod_Tile Installation abgeschlossen

Die Installation der Datenbank, des Apache-Servers, der Mapnik-Libraries und des Render-Servers ist nun abgeschlossen. Unser Ubuntu-Rechner ist damit in der Lage, OSM-Datenbankausschnitte in die lokale Postgresql-Datenbank zu importieren, und auf Anforderung eines Browsers daraus just in time die jeweils benötigten Kartenbilder zu berechnen und auszugeben.

Im folgenden laden wir OSM-Daten in die Datenbank und berechnen unsere ersten Tiles (Kartenbilder).

Download der OSM-Datenbank-Daten von der Geofabrik

Beim ersten Versuch würde ich max. ein Bundesland downloaden und importieren. Ein Bundesland kann schon mehrere Stunden Importzeit benötigen. Deutschland dauert bei mir 1-2 Tage, Europa 3-4 Tage, den ganzen Planeten im Stück habe ich noch nicht geschafft! Dies liegt wohl daran, daß ich eine 32-bit Ubuntuversion nutze. Um das GPS testen zu können, empfiehlt es sich, ein Gebiet importieren, in dem man sich tatsächlich gerade physisch befindet, sonst bleibt die Karte nach erfolgreicher GPS-Positionierung weiß, weil eben keine passenden Daten in der DB sind :-)

Wenn ich gerade in Rheinland-Pfalz bin lade ich zunächst die Daten dieses Bundeslandes von der Geofabrik:

wget http://download.geofabrik.de/osm/europe/germany/rheinland-pfalz.osm.pbf

Diese Daten lade ich nun in die Datenbank. Den Vorgang bitte nicht unterbrechen. Jeder Importbefehl löscht die vorhandene Datenbank und baut sie komplett neu auf.

osm2pgsql -m -s -d gis  rheinland-pfalz.osm.pbf

Spezielle Ausschnitte des Planet-Files können nach Koordinaten in die DB importiert werden (Dazu müssen diese Daten natürlich in der zu importierenden Datei vorhanden sein.):

osm2pgsql --bbox -70,-90,60,90 -m -s -d gis /home/jan/Arbeitsfläche/planet-latest.osm.bz2 
osm2pgsql --bbox 50,-90,180,90 -m -s -d gis /home/jan/Arbeitsfläche/planet-latest.osm.bz2
osm2pgsql --bbox 170,-90,-60,90 -m -s -d gis /home/jan/Arbeitsfläche/planet-latest.osm.bz2

Hinweis Daten weiteres Fahrgebiet einfügen

Der zuvor beschriebene DB Import importiert lädt immer die DB von Grund auf NEU. Wenn man mehrere Dateien (z.B. Bundesländer) importieren möchte, so muss man dies mit dem Parameter --append oder -a durchführen:

osm2pgsql -a -m -s -d gis  nordrhein-westfalen.osm.pbf 
osm2pgsql -a -m -s -d gis  niedersachsen.osm.pbf 

Leider überlappen sich die OSM Dateien benachbarter Gebiete, um z.B. Straßen, Küstenlinien usw in ihrem Kontext richtig darstellen zu können (z.B. schlängellt sich die Werra entlang der Grenze Thüringen und Hessen). Entsprechend gibt dann doppelte OSM-IDs. Dies führt dann zum Absturz des Imports mit einer Fehlermeldung doppelte ID in der Table planet_osm_nodes oder from planet_osm_rels oder planet_osm_ways. Dies kann man mit folgenden Befehlen umgehen:

psql -d gis
delete from planet_osm_nodes;
delete from planet_osm_rels;
delete from planet_osm_ways;
commit;
\q

Hat man ein 64bit Ubuntu kann man den parameter -s einfach weg lassen, Dann treten diese Fehler nicht auf, da ist der Speicher groß genug. Bei kleinen Bundesländern im 32bit System hilft auch der Parameter -C 2900 (weglassen von -s) bei 3GB Systemspeicher.

danach:

Abschluß Import OSM-Datenbankauszug

Da wir jetzt alles haben, um mit dem Berechnen von Kartenbildern zu beginnen, starten wir den Render-Server neu:

sudo /etc/init.d/renderd restart

Außerdem markieren wir den Zeitpunkt, an dem wir die Daten importiert haben. Damit wird gewährleistet, daß nur Kartenbilder berechnet werden, die nicht schon einmal abgerufen und in den cache (unter /var/lib/mod_tile/default/ gelegt wurden. Dies erspart viel Zeit und Energie.

touch -d 20000101 /var/lib/mod_tile/planet-import-complete

Installation DB-Server (mod_tile) testen

Wenn alles geklappt hat sollte unter nachfolgender URL eine Karte erscheinen. Evtl nach 2-3 min den Reload-Button drücken!

http://localhost/osm/0/0/0.png

FreieTonne Programme, Hardware und Daten installieren

Nun beginnt endlich der Teil der Installation, der die FreieTonne betrifft. Ab hier sind wir verantwortlich ;-)

  • Installiere einige weitere Pakete für Apaché und PHP
sudo apt-get install libapache2-mod-php5 php5-cgi
  • Installiere gpsd und -clients
sudo apt-get install gpsd gpsd-clients

Konfiguriere Bluetooth-GPS

Das GPS habe ich über das Menü "Systemeinstellungen/ Bluetooth/ Neues Gerät konfigurieren" am Rechner angemeldet.

Die MAC-Adresse Deiner Bluetooth-GPS-Maus ermittelst Du bei eingeschalteter GPS-Maus und am PC aktiviertem Bluetooth mit

hcitool scan

Der Rechner sagt nun:

Scanning ...
       00:08:1B:11:D3:DF       GPS

Diese MAC-Adresse (hier 00:08:1B:11:D3:DF) des GPS muß nun in die Datei /etc/bluetooth/rfcomm.conf wie folgt eingetragen werden:

 rfcomm0 {
        # Automatically bind the device at startup
        bind no;

        # Bluetooth address of the device
        device 00:08:1B:11:D3:DF;
        # RFCOMM channel for the connection
        channel 1;

        # Description of the connection
        comment "Example Bluetooth device";
 }


Wichtig ist hier, daß die Schnittstelle wie hier angegeben mit "rfcomm0" bezeichnet wird. Sonst kann unsere FreieTonne später das GPS nicht finden!

Installation JAVA RUNTIME

Damit wir später auch den JOSM verwenden können muß die JRE installiert werden

apt-get install openjdk-7-jre


Download und Auspacken der FT-Scripte und Konfigurationen

Die FT-Daten und Konfigurationen werden jetzt wie folgt heruntergeladen und installiert:

wget http://www.freietonne.de/downloads/ft-install-linux-mod_tile.tgz -O /tmp/ft-install-linux-mod_tile.tgz
cd /
tar -xvzf /tmp/ft-install-linux-mod_tile.tgz

Änderungen an Konfigurationsdateien

  • Drei Zeilen müssen noch in /etc/sudoers eingefügt werden, damit GPS-Warnungen ausgeführt werden können
www-data ALL=(ALL) NOPASSWD: /usr/local/bin/gpsstart
www-data ALL=(ALL) NOPASSWD: /usr/local/bin/gpsungueltig
www-data ALL=(ALL) NOPASSWD: /usr/local/bin/ft-update.sh
  • xhost+ automatisch starten, um GPS-Statusanzeigen zu sehen
unter Startprogramme (Menü oben rechts) folgendes Programm bei jedem Login automatisch starten:
/usr/local/bin/conf-screen-blank

FERTIG! Rechner neu starten

Jetzt ist alles fertig. Die FreieTonne wird nach dem Neustart im Firefox unter der URL:

http://localhost/seekarte

gestartet. Updates, das Hochladen eigener Daten in die FreieTonne, GPS-Navigation usw. werden wie immer über die Icons oben links im Browser gesteuert. Viel Spaß!!!

Bedienungsanleitung

Die Bedienung unter Ubuntu erfolgt ausschließlich über die Menü-Buttons oben links auf der Karte. Diverse, hier nicht benötigte Schalter (z.B. Download Kartendaten) sind nicht vorhanden, da sie nicht benötigt werden.

Obwohl alle Kartenbilder aus der internen Datenbank heraus berechnet werden, gibt es gute Gründe für gelegentliche Updates aus dem Internet. Zum einen werden praktisch täglich viele Seezeichen eingepflegt und korrigiert, zum anderen aktualsieren wir auch diese Software ab und an.

Um die Karte wirklich nutzen zu können

empfehle ich, die Zoomlevel 4-13 komplett in einem Rutsch rendern zu lassen. Die Berechnung dieser Kartenbilder dauert ziemlich lange, da hier große Datenmengen zu berücksichtigen sind, und stört deutlich beim Arbeiten. Im Gegenzug sind dies relativ wenige Bild-Dateien, die die Festplattenkapazitäten des Rechners nicht wirklich belasten. Die hier investierten 1-2 Tage Rechenzeit zum Cachen der Bilder sind also wirklich gut angelegt:

sudo render_list -v -f --all -n 2 --socket=/var/run/renderd/renderd.sock --min-zoom=4 --max-zoom=10

Während dieses Rechenprozesses kann die Karte natürlich schon genutzt werden, sie ist halt langsam. Ich lasse immer zunächst die ungeraden, dann die geraden Zoomlevel rechnen, die Karte ist dadurch gefühlt eher nutzbar.

Gerenderte Karten löschen

Es gibt mehrer Gründe um die gerenderten Karten zu löschen:

- Man hat falsch gerendert (z.B. was mir passiert ist durch Ubuntu Update)
- Der Speicherplatz der gerenderten Images wird immer größer und man braucht sie nicht mehr
- ...

So löscht man die gerenderten Karten:

- Löschen des Ordners mit seinen Unterordnern der gewünschten Zoomstufe im Verzeichnis /var/lib/mod_tile/default/
- Löschen des Caches von Firefox, sonst kann es passieren, dass man alte gerenderte Karten sieht.
  Dies geschieht über Edit>Preferences>Advanced>Button Clear Now (Offline Storage)
   Kann jemand mit einem deutschen Firefox bitte die deutschen Schritte eintragen. Danke FrRainer)

ToDo

  • JOSM installieren

Zusatz-Config perl, wird für private Perl-Programme benötigt (fakultativ)

in /etc/apache2/apache2.conf:

AddHandler cgi-script .cgi .pl
<Files ~ "\.pl$">
   Options +ExecCGI
</Files>
<Files ~ "\.cgi$">
   Options +ExecCGI
</Files> 

in /etc/apache2/sites-enabled/tileserver_site

allowOverride all

und dann

apt-get install libimage-size-perl imagemagick jhead

Fehler Ubuntu

Falls mal das Update des Paketes mysql-server streikt:

- temporär /etc/init.d/mysql mittels exit 0 disablen
- mysqld von Hand stoppen
- update
- Änderung /etc/init.d/mysql zurück
Persönliche Werkzeuge