ubuntuusers.de

geoclue

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

⚓︎Der Dienst geoclue ermöglicht Anwendungsprogrammen die Bestimmung des eigenen Standortes. Die wird beispielsweise von Kartendiensten wie gnome-maps (Karten) 🇩🇪, Internet-Browsern und Hilfsprogrammen wie Redshift (Tag-/Nachtwechsel der Farbtemperatur des Display) genutzt.

Die Ortsbestimmung kann grundsätzlich nach verschiedenen Methoden ermittelt werden und aus unterschiedlichen Quellen stammen, geoclue abstrahiert von den technischen Details und stellt den Anwendungsprogrammen einen einheitlichen Zugang zur Ortsinformation über D-Bus zur Verfügung.

Mögliche Methoden zur Bestimmung des variablen Orts sind:

Außerdem ist ab Ubuntu 24.04 auch möglich:

Installation

Das Paket geoclue-2.0 gehört bei Ubuntu zur Standardinstallation und kann bei den Derivaten aus den offiziellen Paketquellen installiert werden[1]:

  • geoclue-2.0 (Geoinformationsdienst aus main)

Befehl zum Installieren der Pakete:

sudo apt-get install geoclue-2.0 

Oder mit apturl installieren, Link: apt://geoclue-2.0

Optional kann man sich auch noch die Dokumentation und einen Client zum Testen installieren:

  • geoclue-doc (geoinformation service (D-Bus API documentation) aus main)

  • geoclue-2-demo (Geoinformationsdienst (Demonstrationsprogramme) aus universe)

Befehl zum Installieren der Pakete:

sudo apt-get install geoclue-doc geoclue-2-demo 

Oder mit apturl installieren, Link: apt://geoclue-doc,geoclue-2-demo

Konfiguration

Die Konfiguration des Dienstes erfolgt über Textdateien in INI-Format:

  • /etc/geoclue/geoclue.conf – Hauptkonfiguration und bis 22.04 einzig mögliche Datei

  • /etc/geoclue/geoclue.d/*.conf – Ab 24.04 sind weitere Konfigurationsdateien möglich.

Alle Konfigurationsdateinamen müssen auf .conf enden. Die Hauptkonfiguration wird stets zuerst ausgewertet, weitere Dateien werden namentlich sortiert und einzelne Einstellungen aus diesen können frühere Einstellungen überschreiben. Wirksam wird jeweils der letzte Wert jeder Einstellung.

Nach Installation sind alle mögliche Quellen aktiviert und im Normalfall sollte keine Bearbeitung der Konfigurationsdateien erforderlich sein.

Hinweis:

Dies bedeutet nicht, dass alle Quellen auch funktionieren! Das Paket geoclue kümmert sich nicht um die Funktionsfähigkeit seiner Datenquellen, sondern um deren Einrichtung muss sich der Administrator des Systems kümmern.

Datenquelle einrichten

WLAN

Diese Datenquelle ist fertig eingerichtet und benutzt als Datenbank den offenen Dienst von Mozilla.

Achtung!

Mozilla hat seinen Dienst MLS (Mozilla Location Service) am 12.06.2024 abgeschaltet.

Man kann andere Datenbanken einstellen. Die Projektseite von geoclue benennt einige freie bzw. kostenlose Möglichkeiten. Angebote von Google und Mozilla erfordern jeweils einen Vertrag und sind durch Passworte abgesichert.

Diese Datenquelle wird in den Konfigurationsdateien im Abschnitt [wifi] konfiguriert. → Beispiele

NMEA

Diese Datenquelle ist aktiviert. Zu ihrer Nutzung muss jedoch vorher eine Software zur Verbindung mit einem NMEA-Netzwerk installiert werden und man benötigt natürlich auch passende Hardware.

Eine Möglichkeit zur Nutzung dieser Methode ist die Installation und Einrichtung von gpsd in Verbindung mit einem GPS-Navigationsgerät.

In den Konfigurationsdateien wird der Abschnitt [network-nmea] verwendet.

GPS

Diese Datenquelle ist standardmäßig aktiviert und wird in den Konfigurationsdateien im Abschnitt [modem-gps] konfiguriert. Es ist unklar, was ein "modem gps" genau sein soll, möglicherweise ein Gerät zur Verbindung mit einem Mobilfunknetz mit eingebautem GPS-Empfänger – das würde dann z.B. auf fast jedes moderne Mobiltelefon zutreffen. Die Kommunikation soll möglicherweise über den ModemManager laufen. Leider gibt es hierzu keine Dokumentation.

GSM-Funknetz

GSM-Ortung benötigt als Hardware ein Mobiltelefon oder Modem, welches mit einem Mobilfunknetz (GSM oder Nachfolger) verbunden ist. Es gibt mehrere Verfahren, die durch Laufzeitbestimmung von Funksignalen von bekannten Standorten terrestrischer Antennen und im Mobilfunknetz übermittelter Zusatzinformationen eine Ortsbestimmung ermöglichen.

Die vom Gerät ermittelten Daten müssen an den Rechner weitergegeben werden und dort von zusätzlich zu installierender Software für geoclue tauglich aufbereitet werden.

Diese Datenquelle ist standardmäßig in den Konfigurationsdateien im Abschnitt [3g] aktiviert.

CDMA-Funknetz

Ähnlich wie bei GSM-Funknetz, jedoch mit Basistechnik CDMA. CDMA wird in Europa nicht verwendet.

Diese Datenquelle ist standardmäßig in den Konfigurationsdateien im Abschnitt [cdma] aktiviert.

Compass

Ausbaufähige Anleitung

Dieser Anleitung fehlen noch einige Informationen. Wenn Du etwas verbessern kannst, dann editiere den Beitrag, um die Qualität des Wikis noch weiter zu verbessern.


Anmerkung: Hierzu fehlen Informationen: Wie funktioniert das? Welche Geräte nutzen das?

Konstanter Ort

Diese Methode gibt es erst ab der von Ubuntu 24.04 verwendeten Version und ist dann standardmäßig aktiviert. Sie funktioniert, sobald man in der Datei /etc/geolocation die eigenen Koordinaten hinterlegt hat. Natürlich ist man dann für den Rechner und dessen Software immer an diesem selbst eingegebenen Ort, egal wo man sich tatsächlich befindet. → Beispiele

Beispiele

Ab Ubuntu 24.04 sollte man die Datei /etc/geoclue/geoclue.conf gar nicht mehr verändern, sondern für eigene Einstellungen Dateien im Verzeichnis /etc/geoclue/conf.d/ anlegen. Bei früheren Versionen von Ubuntu besteht leider diese Möglichkeit nicht.

Die Konfigurationsdateien können mit einem normalen Texteditor bearbeitet werden, hierzu muss man mit Root-Rechten arbeiten[4].

Änderungen in den Konfigurationsdateien übernimmt der DAEMON geoclue erst beim Neustart.

Alle Methoden deaktivieren

Da die meisten Methoden z.B. mangels geeigneter Hardware ohnehin nicht funktionieren, kann man sie auch abschalten:

# Konfigurationsdatei für geoclue
# /etc/geoclue/conf.d/01-disable-all-sources.conf
[wifi]
enable = false

[network-nmea]
enable = false

[modem-gps]
enable = false

[3g]
enable = false

[cdma]
enable = false

[static-source]
enable = false

[compass]
enable = false

MLS ersetzen

Die Projektseite von geoclue verweist auf drei andere Dienste als möglichen Ersatz für den abgeschalteten MLS (Mozilla Locator Service). Man sollte diese Dienste nur mit gesundem Menschenverstand und sparsam verwenden und auf keinen Fall die Ressourcen anderer durch unangemessen hohe Abfrageraten verschwenden. Über die Bedingungen zur Nutzung dieser Dienste kann man sich auf der jeweiligen Projektseite informieren.

Ein solcher Dienst kann beispielsweise so aktiviert werden:

# Configuration file for Geoclue
# /etc/geoclue/conf.d/12-wifi-beacondb.net.conf

[wifi]
enable	= true
url	= https://beacondb.net/
submit-data	= false
# Für den submission-nick sollte man einen eigenen Namen erfinden:
submission-nick	= young-lady

Statischer Ort

Rechner, die immer nur an einem gleichbleibenden Ort betrieben werden, benötigen den Aufwand einer variablen Ortsbestimmung nicht. Man sollte daher in diesen Fällen alle Methoden von geoclue bis auf static-source deaktivieren und den gleichbleibenden Ort in die Datei /etc/geolocation schreiben. In dieser Textdatei kann man Leerzeilen und Kommentare (eingeleitet mit #) verwenden und muss 4 Zahlen für geografische Breite und Länge in Grad sowie Höhe und Genauigkeit in Metern eintragen, jede Zahl in eigener Zeile. Hier ist ein Beispiel für die Zugspitze:

# /etc/geolocation für Zugspitze
47.42122
10.98630
2952
10

Benutzung

Der Dienst wird normalerweise automatisch von systemd gestartet und kann bei Bedarf mit Standardbefehlen gesteuert[2][3] werden:

  • Dienst stoppen:

    systemctl stop geoclue.service 
  • Dienst manuell starten:

    systemctl start geoclue.service 
  • Dienst automatisch beim Hochlauf des System starten:

    systemctl enable geoclue.service 
  • Dienst nicht automatisch starten:

    systemctl disable geoclue.service 
  • Statusabfrage:

    systemctl status geoclue.service 
  • Neuen Start des Dienstes erzwingen:

    systemctl restart geoclue.service 

Der Dienst schläft nach einer kurzen Wartezeit (z.B. 60 Sekunden) ein, wenn keine neue Positionsbestimmung angefordert wird und wacht auch automatisch wieder auf, wenn eine solche verlangt wird.

Eine Positionsbestimmung anfordern kann man über einen geeigneten Client wie z.B. die in der Einleitung genannten oder auch über den Demo-Client aus dem Paket geoclue-2-demo:

/usr/libexec/geoclue-2.0/demos/where-am-i 

Wenn dieser Befehl auch nach Wartezeit nichts ausgibt, ist geoclue nicht funktionsfähig eingerichtet. Die wahrscheinlichsten Fehler sind, dass keine funktionierende Datenquelle eingerichtet wurde oder der benutzte Dienst abgeschaltet wurde oder überlastet wurde oder man bei ihm auf einer Sperrliste gelandet ist, weil man ihn überlastet hat. Das Programm gnome-maps fragt alle 15 Sekunden nach der Position, das ist für manche Dienste zu häufig.

Diese Revision wurde am 27. September 2024 15:26 von kB erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Internet, Netzwerk, System