Reparatur eines Linux-Systems mit chroot

Kann man nicht mehr auf normalem Wege auf sein System zugreifen, z.B. weil es Probleme mit dem Bootloader gibt und das System nicht mehr startet, so hilft u.U. ein Rettungssystem vom USB-Stick oder von CDROM weiter. Dabei muss es sich nicht unbedingt um die Recovery-Funktion der installierten Linux-Distribution handeln, auch ein fremdes Reparatursystem wie KNOPPIX kann von Nutzen sein. Allerdings sollte Reparatursystem und installiertes System die gleiche Architektur besitzen, mit einem 32-bit KNOPPIX ein 64-bit Zielsystem zu reparieren wird also in der Regel scheitern.

Hat das Reparatursystem erfolgreich gebootet, so verschafft man sich in einem Terminalfenster erstmal einen Überblick über die Festplattenstruktur:

~> lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda           8:0    0 465,8G  0 disk  
├─sda1        8:1    0     8G  0 part  [SWAP]
├─sda2        8:2    0    20G  0 part  /
└─sda3        8:3    0 437,8G  0 part  
  └─cr_home 253:0    0 437,8G  0 crypt /home
sr0          11:0    1 352,6M  0 rom

Nun mountet man die Partition die das Wurzelvezeichnis des Zielsystems enthält, in unserem Beispiel also /dev/sda2:

sudo mount /dev/sda2 /mnt

Wechselt man anschließend mit chroot das Wurzelverzeichnis zum Zielsystem, so taucht folgendes Problem auf: Die im Wurzelverzeichnis des Zielsystems liegenden Verzeichnisse wie proc, dev und sys sind tot, denn durch chroot wird ja kein neuer Kernel gestartet, durch dessen Gerätetreiber die Verzeichnisse dev usw. ein vitales Abbild des laufenden Systems liefern. Man muss also die entsprechenden Verzeichnisse des Recovery-Systems in das Zielsystem mounten:

for i in /dev /dev/pts /proc /sys /run;\
do sudo  mount -B $i /mnt$i; done

Erst jetzt wird in das neue Wurzelverzeichnis gewechselt:

sudo chroot /mnt /bin/bash

Jetzt stehen einem die Programme des Zielsystems zur Verfügung (man muss aber immer im Hinterkopf behalten, dass der laufende Kernel nach wie vor, der des Recovery-Systems ist). Man kann also bspw. den Bootloader konfigurieren, ist das Zielsystem OpenSuSE ruft man also yast auf:

yast bootloader

Hat man die Arbeit auf dem Zielsystem beendet, so kann man die chroot-Umgebung durch exit wieder verlassen.

Overlays für PDF-Formulare erstellen

Das PDF-Format bietet komfortable Funktionen für die Erstellung interaktiver Formulare an. Leider nutzen nicht alle Autoren diese Möglichkeit und so bekommt man hin und wieder PDF-Dokumente, denen zwar individuelle Angaben hinzugefügt werden sollen, die andererseits aber keine interaktive Eingabemöglichkeit anbieten. In solchen Fällen hilft nur ausdrucken und handschriftliches hinzufügen der Angaben. Diese Vorgehensweise entstammt dem IT-Mittelalter und vergeudet Papier, welches durch einen guten PDF-Workflow eigentlich hervorragend eingespart werden kann. Hier soll ein Lösungsweg auf Basis des Schweizer Messers unter den PDF-Werkzeugen pdftk und LibreOffice (die Vorgehensweise ist für OpenOffice äquivalent).
Ich treffe hier die Festlegung, dass das Ausgangsdokument unter dem Namen input.pdf vorliegt. Da LibreOffice PDF nicht direkt als Format für Hintergrundbilder unterstützt, muss man erst ein Encapsulated Postscript (EPS) Dokument erzeugen:

> pdf2ps input.pdf
> ps2eps input.ps

In LibreOffice öffnet man nun das Menü Format->Seite… und wählt im Reiter Hintergrund als Quelle Grafik. Jetzt kann man das EPS-Dokument (input.eps) als Hintergrundbild auswählen und muss noch bei Art den Punkt Position anklicken. Als Bezugspunkt den Zentrumspunkt wählen und Anwenden klicken.
Nun auf den Reiter Seite gehen und die Seitenränder so verändern, dass das gewählte Hintergrundbild exakt die gleiche Größe und Lage wie im Original hat. Man wählt bspw. Links 0cm, Rechts 0cm, Oben 1.4cm und Unten 0cm.
Um nun Text über die gewünschten Bereiche des Hintergrundbildes zu legen, öffnet man das Menü Einfügen->Rahmen und wählt dort den Reiter Typ. Als Verankerung den Punkt An der Seite einstellen, auf den Reiter Umrandung wechseln und dort bei Stil -kein- klicken. Nach dem Klick auf ok erscheint das Rahmenelement und kann positioniert und dann mit Text gefüllt werden. Sind mehrere Einfügungen an unterschiedlichen Stellen zu machen, legt man auf die beschriebene Weise weitere Rahmen an. Ebenso kann man ein Bild mit einer gescannten Unterschrift oder eines Stempels einfügen. Dabei ist natürlich darauf zu achten, dass das Bild einen transparenten Hintergrund hat (in Gimp bspw. eine Farbe in Transparenz umwandeln).
Zum Schluss setzt man den Hintergrund wieder auf Farbe und Keine Füllung und exportiert das Dokument als PDF (ich wähle hier overlay.pdf als Dateinamen).
An dieser Stelle tritt das Tool pdftk in Aktion:

> pdftk input.pdf background overlay.pdf output output.pdf

Das zusammengesetzte Dokument steht nun unter dem Dateinamen output.pdf bereit. Sollte es Probleme mit der Sichtbarkeit einzelner Boxen geben, so kann statt der Option background auch die Option stamp verwendet werden. In diesem Fall sollte man den Hintergrund der Boxen transparent gestalten.

Links: Ursprüngl. PDF, Mitte: Overlay PDF, Rechts: Zusammengesetztes PDF

Sollte das ursprüngliche Dokument mehrseitig sein, muss das PDF erst in einzelne Seiten zerlegt werden (das folgende Kommando erzeugt Dateinamen im Format pg_%04d.pdf):

> pdftk input.pdf burst

Nach der Bearbeitung der entsprechenden Seiten können sie wieder zusammengefügt werden:

> pdftk pg_0001.pdf pg_0002.pdf pg_0003.pdf cat output output.pdf

Bilder für eine Veröffentlichung vorbereiten

Um Speicherplatz zu sparen, der beim Hoster oftmals kontingiert ist, sollten die Bilder vor einem Upload gut komprimiert werden. Dies kann mit einem Dienst wie bspw. jpegmini geschehen, der oft wesentlich bessere Kompressionsergebnisse erzielt, als herkömmliche Bildbearbeitungssoftware. Die Größe der mit Digitalkameras erzeugten Bilder ist für die Betrachtung am Bildschirm oftmals ungeeignet, man sollte die Bilder also auf ein geeignetes Maß verkleinern. Unter Linux bietet sich dazu die ImageMagick-Suite an. Sie stellt umfangreiche Werkzeugen zur Bildbearbeitung auf der Kommandozeilen-Ebene bereit. Die Schritte verkleinern und einen Text einfügen kann man mit der Shell und dem Werkzeug convert in wenigen Zeilen erledigen:

for f in *.jpg;
> do
> a=`basename $f .jpg`;
> convert $f -resize 25% -font Courier \
> -pointsize 25 -fill white \
> -undercolor '#00000080' -gravity SouthWest \
> -annotate -0+5 ' © Ilses Erika ' $a'_tn.jpg'
> done

Für Galeriebilder sollte man statt des Prozent-Operators besser den

@-Operator verwenden. Durch Angabe von -resize @Pixelanzahl haben alle Bilder die gleiche Pixelanzahl, was einen ruhigeren Bildlauf durch eine Galerie ermöglicht. Evtl. sollten vor dem Hochladen der Bilder noch die Meta-Informationen aus dem Bild entfernt werden. Dies kann mit dem Tool exiv2 geschehen:

exiv2 -d datei.jpg

Natürlich lassen sich mit

exiv2 aber auch Meta-Informationen setzen, z.B. die Autorenschaft eines Bildes (exiv2 -M"set Exif.Image.Copyright Ilses Erika" datei.jpg) oder ein Bildkommentar.

Tunnelblick

Einrichtung eines ssh-Tunnels durch das Internet zwischen einem Android-Smartphone und einem Linux-Host.

Firewall-Mechanismen

Nutzt man unterwegs mit seinem Smartphone einen öffentlichen Hotspot, so besteht die Gefahr, dass der Datenverkehr durch den Betreiber ausgewertet, also auch evtl. unverschlüsselt gesendete Daten mitgelesen und missbraucht werden. Nun besteht prinzipiell die Möglichkeit, auf dem heimischen PC, der über einen Breitbandanschluß mit dem Internet verbunden ist, einen sshd zu installieren und den Datenverkehr des Smartphones über einen ssh-Tunnel zum heimischen PC zu leiten.
Oft schützen die Provider der Breitbandanschlüsse ihre Kunden jedoch durch eine Firewall vor unerwünschten Zugriffen aus dem Internet. Während man auf die Firewall des heimischen Routers normalerweise vollen administrativen Zugriff hat, ist dies naturgemäß bei der Firewall des Providers nicht der Fall. Dies bedeutet, dass die vom heimischen PC angebotenen Server-Dienste nicht aus dem Internet erreichbar sind (es sei denn, das die providerseitige Firewall die Ports dafür standardmäßig offen hält, was selten der Fall ist). Nun muß prinzipiell jede Firewall auch Pakete von außen hereinlassen und zwar die Antwortpakete zu Anfragen an Web- und Mailserver etc. die der Nutzer durch Browser oder Email-Clients an die Server im Internet richtet. Damit die Firewall entscheiden kann, ob ein Paket von außerhalb die Antwort auf ein ausgehendes Paket ist, wird im Router Buch darüber geführt, welcher interne Rechner mit welchem Rechner außerhalb kommuniziert und welche Ports dabei angesprochen wurden.

Die Rolle von Vermittlungsservern

Um nun eine Client-Server-Kommunikation durch eine restriktive Firewall hindurch zu ermöglichen, bedient man sich eines Vermittlungsservers: Beide Kommunikationspartner, also Server und Client nehmen periodisch Kontakt mit dem Vermittlungsserver auf. Somit kennt dieser die IP-Adressen der Teilnehmer und die Ports auf denen sie zu kommunizieren wünschen. Will ein Teilnehmer nun die Verbindung aufnehmen, meldet er diesen Wunsch beim Vermittlungsserver an, erhält von ihm die IP-Adresse und den Port der Gegenstelle und kann nun seine Anfrage losschicken. Diese wird zwar von der Firewall der Gegenstelle verworfen, aber der Router von dem die Anfrage stammt wartet dennoch auf die Antwort. Der Vermittlungsserver teilt nun der Gegenstelle die Daten der Anfrage mit und läßt sie antworten. Das Antwortpaket passiert nun die auf Antwort wartende Firewall und nun können beide Kommunikationspartner ohne den Vermittlungsserver weiter Daten austauschen. Dieses Verfahren ist auch unter dem Begriff Hole Punching bekannt. Eine grobe Simulation dieser Arbeitsweise mit einfachen Netzwerktools zeigt ein Artikel in der c’t und erläutert diese Problematik ausführlicher.

NeoRouter Mesh und Co.

Ein prominentes Beispiel eines solchen Vermittlungsservers ist Skype. Es gibt jedoch auch Anbieter, die Vermittlungsdienste für allgemeinere Aufgaben bereitstellen. Einer von ihnen ist die Firma NeoRouter Inc.. Der Einsatz ihres Dienstes NeoRouter Mesh zum Aufbau eines ssh-Tunnels zwischen Smartphone und einem hinter einer Firewall verborgenen Linux-Hosts, der einen Proxy für den Internetzugriff bereitstellt, soll hier demonstriert werden. Die folgende Vorgehensweise benötigt keine Root-Rechte auf dem Smartphone, dieses muß also nicht gerootet werden.

Schritt für Schritt

Auf der Herstellerseite der Firma NeoRouter Inc. kann man die notwendige Mesh Domain und den Account beantragen. Anschließend kann die Software für die verschiedenen Endgeräte auf der Download-Seite heruntergeladen und installiert werden.
Auf dem Linux-Host, der als Server dienen soll, wird nach der Installation nrserver gestartet. Anschließend kann die App NeoRouter Mesh auf dem Android-Smartphone aufgerufen werden.

Konfiguration der App NeoRouter Mesh

Konfiguration der App NeoRouter Mesh


Nach der Authentifizierung sollte die App den Linux-Host nun unter My Computers auflisten. Tippt man länger auf den Host, zu dem der Tunnel aufgebaut werden soll, öffnet sich ein Auswahlfenster und man kann nun den Dienst ssh 22 auswählen. Durch diese Auswahl richtet die App eine Port-Weiterleitung vom Port 32973 des lokalen Hosts (also des Smartphones) zum Port 22 des entfernten ausgewählten Linux-Host ein (bzw. teilt sie diesen Wunsch dem Vermittlungsserver mit).

ConnectBot: ein ssh-client für Android

Nun kann die ssh-App ConnectBot gestartet werden. Aus einer Dropdown-Liste kann man die Dienste ssh, telnet und local auswählen.

Konfiguration der App ConnectBot

Konfiguration der App ConnectBot

Wir wählen ssh (local gestattet die Einrichtung eines ssh-Zugangs zum Smartphone) und geben im Eingabefenster siegel@localhost:32973 als Ziel ein. Wir erinnern uns, daß durch NeoRouter Mesh eine Weiterleitung vom lokalen Port 32973 zum Port 22 des Linux-Hosts eingerichtet wurde. Nachdem man auf dem Linux-Host angemeldet wurde, kann man in der Werkzeugleiste (ganz unten rechts) den Punkt Port-Weiterleitung aufrufen.

Einrichten einer Port-Weiterleitung mit ConnectBot

Einrichten einer Port-Weiterleitung mit ConnectBot

Hier kann man unter Vergabe eines Spitznamen eine Weiterleitung vom Typ Lokal mit dem Quellport: 8080 zum Ziel localhost:3128 einrichten. Der Port 3128 ist der Standard-Port des Proxy-Programms squid, welches auf dem Linux-Host installiert und konfiguriert werden mußte. Bei der Auswahl des Quellports ist zu bedenken, dass unter Unix-artigen Betriebssystemen (also auch unter Android) nur root Dienste betreiben darf, die Portnummern kleiner 1024 benötigen (sogenannte Systemports).

Der Proxy-Server squid

Wie bereits erwähnt, muß auf dem Linux-Host ein Proxy-Server eingerichtet werden. Nach dessen Installation sind in der Datei /etc/squid/squid.conf noch einige Kleinigkeiten einzutragen. So muß dem Proxy noch ein Name über das Schlüsselwort visible_hostname zugewiesen werden, dieser kann beliebig gewählt werden. Außerdem muß das Disk Cache Directory durch das Schlüsselwort cache_dir bezeichnet werden und es sollte die Zeile http_access deny to_localhost in der Config-Datei vorhanden sein. Im übrigen ist die Datei squid.conf sehr gut kommentiert und man muss eigentlich nur den dort gemachten Empfehlungen folgen. Vor dem ersten Start von squid ist die Cache-Verzeichnisstruktur durch den Aufruf von squid -z anzulegen. Nun kann man mit squid -NCd1 den Dämon probeweise starten, ohne ihn in den Hintergrund zu schicken. So kann man evtl. Fehlermeldungen besser beobachten. Später kann man den Dämon dann durch /etc/init.d/squid start aktivieren. Für weitere Konfigurations-Details sei auf den Eintrag bei selflinux.org und das HOWTO der Seite www.linuxhomenetworking.com verwiesen.

Eintrag des Proxy-Servers im Browser

Um nun durch den eingerichteten Tunnel über den Linux-Host surfen zu können, muß in Opera (Chrome für Android unterstützte zum Verfassungszeitpunkt des Artikels die Angabe eines Proxy-Servers noch nicht) auf dem Smartphone die Adresse des Proxy-Servers angegeben werden. Dies kann durch Aufruf von opera:config geschehen.

Mit Opera die Benutzung eines Proxy-Servers einrichten

Mit Opera die Benutzung eines Proxy-Servers einrichten

Als HTTP-Server muß dann 127.0.0.2:8080 eingetragen werden, denn der lokale Port 8080 wird ja durch die mit ConnectBot eingerichtete Port-Weiterleitung an den Proxy-Port 3128 des fernen Linux-Host weitergereicht. Nach dem Speichern dieser Angaben und einem Neustart von Opera, wird nun jede Anfrage von Opera durch den Tunnel an den Proxy weitergeleitet.

Hat man bspw. bei dem Dienst no-ip für seine eigene, vom Provider dynamisch zugeteilte IP-Adresse einen Domainnamen eingerichtet, so lassen sich unter diesem Domainnamen nun auch Seiten aus dem Internet aufrufen. Da sich hinter der vom Provider vergebenen IP-Adresse normalerweise der heimische Router verbirgt, man aber mit dem Domainnamen eigentlich einen Rechner hinter dem eigenen Router (also im eigenen lokalen Netz) erreichen möchte, ist im Router eine entsprechende Port-Weiterleitung (oft unter dem Menü-Punkt Virtueller Server erreichbar) zu dem gewünschten Rechner und Port zu konfigurieren. Handelt es sich zum Beispiel um eine Webcam und ist für diese im eigenen Router eine entsprechende Port-Weiterleitung konfiguriert, so könnte eine Abfrage des gerade sichtbaren Bildes z.B. durch http://dcs-900.no-ip.org:8080/IMAGE.JPG erfolgen, wenn der bei no-ip registrierte Domainname dcs-900.ni-ip.org lautet und in der Webcam der Port 8080 als Dienstport konfiguriert wurde.

Oracle VirtualBox 4.2 unter OpenSUSE 12.2 installieren

Dieser Artikel beschreibt die Installation der Version 4.2 von Oracle VirtualBox unter OpenSUSE 12.2. Man benötigt Root-Rechte für die Installation, die man durch Eingabe des Kommandos su erlangt. Die Eingabe von uname -a ergibt die aktuell installierte Version des Kernels:

Linux tp-t530.site 3.4.6-2.10-desktop #1 SMP PREEMPT Thu Jul 26 09:36:26 UTC 2012 (641c197) x86_64 x86_64 x86_64 GNU/Linux

In diesem Fall also die Desktop-Version. Demnach müssen auch die nachfolgend zu installierenden Pakete den Zusatz Desktop tragen:

# zypper install kernel-desktop-devel kernel-source kernel-syms Xerces-c gcc make

Nach dem nun notwendigen Reboot und der anschließenden Root-Authentifikation muß man dem System das VirtualBox-OpenSUSE-Repository hinzufügen (Es gibt für OpenSUSE 12.2 kein eigenes Repo, da die Version 11.4 auch noch unter 12.2 funktioniert):

# cd /etc/zypp/repos.d/
# wget http://download.virtualbox.org/virtualbox/rpm/opensuse/11.4/virtualbox.repo

Jetzt kann VirtualBox 4.2 eingespielt werden:

# zypper install VirtualBox-4.2

Bis einschließlich Version 3 von VirtualBox waren zwei unterschiedliche Ausgaben mit unterschiedlichen Lizenzen verfügbar: eine Version mit komplettem Funktionsumfang und proprietärer Lizenz (die für private Zwecke kostenlos nutzbar war) und einer Version mit eingeschränktem Funktionsumfang (es fehlte z.B. die USB-Unterstützung) und öffentlichem Quellcode unter der GNU GPL. Oracle stellt ab Version 4.0 nur noch eine Version zur Verfügung, die unter der GPL steht und der früheren Open Source Version im Funktionsumfang ähnelt. Die Zusatzfunktionen (USB 2.0, RDP, PXE Boot für Intel-Karten) der proprietären Version sind in einem Extension Pack zusammengefaßt und können (dann wieder unter der proprietären Lizenz) nachinstalliert und genutzt werden. Da dieses Extension Pack nicht über das Repository installierbar ist, muß es direkt von der VirtualBox-Seite heruntergeladen (www.virtualbox.org/wiki/Downloads) werden. Das Extension Pack muß die gleiche Version wie VirtualBox selbst aufweisen:

VirtualBox 4.2 Oracle VM VirtualBox Extension Pack …

Hat man den Downloadlink identifiziert kann’s losgehen:

# wget http://download.virtualbox.org/virtualbox/4.2.0/Oracle_VM_VirtualBox_Extension_Pack-4.2.0-80737.vbox-extpack
# sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.2.0-80737.vbox-extpack

Nun muß nur noch der Benutzer zur Gruppe vboxusers hinzugefügt werden:

# /usr/sbin/usermod -G vboxusers Benutzer

GPS und Linux

Auch wenn sich die meisten Aussagen ohne Änderung auf andere Linux-Distributionen übertragen lassen, bezieht sich dieser Artikel doch speziell auf die Konfiguration unter OpenSuSE 12.2 auf einem Lenovo Thinkpad T530 mit dem in einem Mini-PCI express slot installierten WWAN-Adapter Qualcomm Gobi 2000. Eine Vielzahl nützlicher Informationen zum Chipsatz von Qualcomm findet man im Thinkpad-Wiki, im Artikel
Qualcomm Gobi 2000.

Der Qualcomm-Chipsatz benötigt zum Betrieb eine Firmware, die erst zur Laufzeit des Betriebssystems in die Karte geladen wird. Aus Lizenzgründen gehört diese Firmware nicht zum allgemeinen Umfang von Linux-Distributionen. Ist auf dem Thinkpad keine parallel installierte Windows-Installation vorhanden, so kann die kurzzeitig notwendige Windows-Installation auch in einer Virtualisierungsumgebung mit USB-Unterstützung erfolgen, bspw. mit Oracle VirtualBox (zur Installation siehe einen weiteren Artikel von mir). Die Windows-Installationsmedien können unter www.unawave.de heruntergeladen werden. Es empfiehlt sich, das heruntergeladene Image mithilfe des eicfg-removal-utility zu patchen, um während der Installation zwischen den verschiedenen Windows-Installationen auswählen zu können. Für Windows 7 muß auch das Service Pack 1 heruntergeladen werden. Nach Installation von Windows 7 Professional sollte Windows Update vorerst ausgeschaltet werden, um die manuelle Installation der Lenovo-Treiber nicht zu stören. Anschließend muß das Service Pack 1 eingespielt werden. Nun muß der Qualcomm Gobi 2000 Wireless WAN Driver for Windows 7 heruntergeladen und installiert werden. Dieser Treiber bringt die Firmware für den Qualcomm-Adapter mit, sie befindet sich nach der Installation im Verzeichnis c:\Programme (x86)\QUALCOMM\Images\Lenovo. Die Firmware ist auf drei Dateien verteilt (amss.mbn, apps.mbn, UQCN.mbn), die ersten beiden Dateien entnimmt man dem Unterverzeichnis UMTS, die dritte Datei dem Unterverzeichnis 6. Alle drei Dateien legt man nun in dem Verzeichnis /usr/lib/firmware/gobi ab und installiert noch den Gobi-Loader. Durch Installation des des Gobi-Loaders wird die Firmware nun auch unter Linux korrekt geladen.

Um GPS unter Linux nutzen zu können ist die Installation der Firmware aber alleine nicht ausreichend. Dazu ist es notwendig unter Windows 7 die Software ThinkVantage GPS for Windows 7 zu installieren und diese anschließend über das Programmstart-Fenster durch Eingabe von ThinkVantage GPS auszuführen. Hier gibt es einen Button Auto tracking der eingeschaltet sein muß, nun kann man das GPS-Gerät auch unter Linux nutzen, Windows 7 ist dazu nicht mehr nötig und kann entfernt werden.

Der unter OpenSuSE 12.2 installierte Kernel erkennt die Qualcomm-Karte ohne weiteres und stellt folgende Geräte als Schnittstelle zur Verfügung:

# # /dev/ttyUSB0 -> Diagnostics
# # /dev/ttyUSB1 -> 3G Modem
# # /dev/ttyUSB2 -> NMEA GPS port

Die Numerierung der USB-Ports kann beim Vorhandensein weitere USB-Geräte anders lauten und ist evtl. mit

# dmesg | grep -E "Qualcomm USB modem converter now attached to ttyUSB?" | tail -n 3

zu ermitteln.

Nun kann GPS durch entsprechende Nachrichten an den ermittelten GPS-Port an- und ausgeschaltet werden:

# echo "\$GPS_START" > /dev/ttyUSB2
# # use GPS
# echo "\$GPS_STOP"  > /dev/ttyUSB2

Wurde GPS über $GPS_START eingeschaltet kann der GPS-Dämon testweise gestartet werden:

# /usr/sbin/gpsd -n -N -D4  /dev/ttyUSB2

Mit einem Client wie xgps sollte nun die Arbeitsweise überprüft werden (das Auffinden der Satelliten kann bei ungünstigen Empfangsverhältnissen sehr lange dauern).

Konnte die Positionsbestimmung erfolgreich durchgeführt werden, kann man eine Route z.B. mit dem Kommando gpxlogger aufzeichnen lassen. Um GPSD-Clients auch ohne gültiges GPS-Signal testen zu können (z.B. in Gebäuden), kann man das Programm gpsfake einsetzen.