Computer Hardware Forum - TweakPC

Computer Hardware Forum - TweakPC (https://www.tweakpc.de/forum/)
-   Tutorials (https://www.tweakpc.de/forum/tutorials/)
-   -   GPS Zeitserver (Stratum 1) (https://www.tweakpc.de/forum/tutorials/94485-gps-zeitserver-stratum-1-a.html)

RUN 14.12.2013 21:23

GPS Zeitserver (Stratum 1)
 
ein tutorial zum thema zeitserver mit gps unter ubuntu/debian

heute beim aufräumen ist mir meine alte gps maus in die hände gefallen, dies war dann auch der zeitpunkt mit dem aufräumen aufzuhören und etwas produktives zu tun :-)

das ziel ist die aktuelle zeit über gps zu erhalten und im lokalen netzwerk zur verfügung zu stellen.

was wir dazu benötigen:
einen linux rechner (in meinem fall ubuntu 12.04)
eine gps maus (z.b. haicom hi-202e)

zuerst werden wir root
[CODE]
run@2hot:~$ sudo su -
[sudo] password for run:
root@2hot:~#
[/CODE]jetzt installieren wir gpsd und ntp
[CODE]
apt-get install ntp gpsd
[/CODE]jetzt beide dienste beenden (sicher ist sicher)
[CODE]
root@2hot:~# /etc/init.d/gpsd stop
root@2hot:~# /etc/init.d/ntp stop
[/CODE]wir verbinden die gps maus mit dem rechner und überprüfen durch die eingabe von dmesg ob diese erkannt wird.
ganz am ende solle sowas wie das hier angezeigt werden
[CODE]
[ 2206.988017] usb 3-2: new full-speed USB device number 2 using uhci_hcd
[ 2207.239335] usbcore: registered new interface driver usbserial
[ 2207.239349] USB Serial support registered for generic
[ 2207.239388] usbcore: registered new interface driver usbserial_generic
[ 2207.239390] usbserial: USB Serial Driver core
[ 2207.251680] USB Serial support registered for pl2303
[ 2207.251722] pl2303 3-2:1.0: pl2303 converter detected
[ 2207.263320] usb 3-2: pl2303 converter now attached to ttyUSB0
[ 2207.263339] usbcore: registered new interface driver pl2303
[ 2207.263342] pl2303: Prolific PL2303 USB to serial adaptor driver
[/CODE] gps maus wurde als /dev/ttyUSB0 erkannt... prima

jetzt testen passen wir mal die gpsd konfig an.
die konfig ist hier zu finden: /etc/default/gpsd
sollte wie folgt aussehen
[CODE]
root@2hot:~# cat /etc/default/gpsd
START_DAEMON="true"
GPSD_OPTIONS="-n"
DEVICES="/dev/ttyUSB0"
BAUDRATE="4800"
USBAUTO="true"
GPSD_SOCKET="/var/run/gpsd.sock"
[/CODE]was bedeutet das ganze genau..?
START_DAEMON="true" <- gpsd läuft als dienst
GPSD_OPTIONS="-n" <- warte auf keinen client, sondern gib einfach alles aus, was die maus ausgibt (wichtig)
DEVICES="/dev/ttyUSB0" <- s.o. unsere gps maus
BAUDRATE="4800" <- die baud rate der maus (siehe handbuch *g*)
GPSD_SOCKET="/var/run/gpsd.sock" <- die socket datei (wird beim starten angelegt)

soo jetzt checken wir mal ob das ganze überkaupt funktioniert

[CODE]
root@2hot:~# gpsd /dev/ttyUSB0 -n -N -D 2
gpsd:INFO: launching (Version 3.4)
gpsd:INFO: listening on port gpsd
gpsd:INFO: NTPD ntpd_link_activate: 1
gpsd:INFO: stashing device /dev/ttyUSB0 at slot 0
gpsd:INFO: opening GPS data source type 3 at '/dev/ttyUSB0'
gpsd:INFO: speed 4800, 8N1
gpsd:INFO: attempting USB device enumeration.
gpsd:INFO: 1d6b:0002 (bus 1, device 1)
gpsd:INFO: 1d6b:0002 (bus 2, device 1)
gpsd:INFO: 1d6b:0001 (bus 3, device 1)
gpsd:INFO: 1d6b:0001 (bus 4, device 1)
gpsd:INFO: 1d6b:0001 (bus 5, device 1)
gpsd:INFO: 1d6b:0001 (bus 6, device 1)
gpsd:INFO: 1d6b:0001 (bus 7, device 1)
gpsd:INFO: 1d6b:0001 (bus 8, device 1)
gpsd:INFO: 058f:6362 (bus 1, device 2)
gpsd:INFO: 046d:c223 (bus 7, device 2)
gpsd:INFO: 046d:08d9 (bus 7, device 3)
gpsd:INFO: 046d:c049 (bus 8, device 2)
gpsd:INFO: 046d:c221 (bus 7, device 4)
gpsd:INFO: 046d:c222 (bus 7, device 5)
gpsd:INFO: 067b:2303 (bus 3, device 25)
gpsd:SHOUT: vendor/product match with 091e:0003 not found
gpsd:INFO: speed 9600, 8O1
gpsd:INFO: speed 4800, 8N1
gpsd:INFO: gpsd_activate(): activated GPS (fd 6)
gpsd:INFO: speed 4800, 8N1
gpsd:INFO: /dev/ttyUSB0 identified as type Generic NMEA (0.945959 sec @ 4800bps)
[/CODE]sieht gut aus... /dev/ttyUSB0 wurde als [URL="http://http://de.wikipedia.org/wiki/NMEA_0183"]NMEA[/URL] erkannt.
soo... was bedeutet aber "gpsd /dev/ttyUSB0 -n -N -D 2"
also...
gpsd ist für die abfragen der gps maus zuständig
/dev/ttyUSB0 ist der pfad zur maus
-n s.o. warte auf keinen client, sondern gib einfach alles aus, was die maus ausgibt
-N gpsd läuft im vordergrund, alle ausgaben erscheinen in der shell
-D 2 debug level 2. man kann noch einen höheren level eingeben, dann wird es aber unübersichtlich. zu viele infos braucht man ja auch nicht.
mit strg + c lässt sich das ganze beenden

so... kommen wir nun zum zeitserver "ntpd"

[CODE]
root@2hot:~# vim /etc/ntp.conf
[/CODE]die meisten einstellungen sind standard und schon vorhanden.
jeder kann ntp anfragen an diesen server senden.
das kann man natürlich auch beschränken.

was ich mit einer # ausgetragen habe, da wir die zeit nicht aus dem internet wollen, sondern vom gps :-)
[CODE]
#server 0.ubuntu.pool.ntp.org
#server 1.ubuntu.pool.ntp.org
#server 2.ubuntu.pool.ntp.org
#server 3.ubuntu.pool.ntp.org
#server ntp.ubuntu.com
[/CODE]was eingetragen werden muss
[CODE]
server 127.127.28.0 mode 0 prefer
fudge 127.127.28.0 flag1 1 flag2 0 time1 0.535 refid GPS
[/CODE]und wieso trägt man sowas ein?
server 127.127.28.0 hiermit wird bestimmt, dass der server unsere gps maus ist, bzw gpsd über 127.127.28.0 abgefragt werden muss.
127.127.28.X ist die standard adresse für NMEA geräte und die 0 am ende steht für das erste gerät....
wenn ich also mehrere gps/NMEA geräte hätte müsste ich folgendes eintragen:
server 127.127.28.0
server 127.127.28.1
server 127.127.28.n

mode 0 prefer also hier setzt man den typ der uhr. typ 0 ist dann quasi die atomuhr in diesem [URL="http://upload.wikimedia.org/wikipedia/commons/9/9d/Architecture_NTP_labels_de.svg"]BILD[/URL]

fudge 127.127.28.0 flag1 1 flag2 0 hiermit sagen wir, wir wollen [URL="http://en.wikipedia.org/wiki/Pulse_per_second"]pps[/URL] zum erfassen der zeit benutzen

time1 0.535 da die gps maus nicht super schnell ist, müssen wir eine verzögerung einbauen. bei mir sind es zwischen 500ms und 600ms.

refid GPS einfach eine id, bzw name, der späte in den ntpd tools angezeigt wird (kann man auch weglassen).

soo jetzt starten wir das genze mal
[CODE]
root@2hot:~# /etc/init.d/gpsd start
root@2hot:~# /etc/init.d/ntp start
[/CODE]überprüfen wir mal ob ntpd die zeit vom gps bekommt
[CODE]
run@2hot:~$ ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*SHM(0) .GPS. 0 l 11 64 1 0.000 44.171 0.000
[/CODE]es wird alle 64 sek das gps abgefragt (poll 64), ein mal hat es funktioniert (reach 1), verzögerung gab es keine (delay), offset ist der zeit unterschied in ms, jitter ist die schwankung der antwortzeit des servers

je länger dan ganze läuft, desto höher sollte der reach wert sein.
die reach skala bewegt sich von 0 (nie erreichbar) bis 377 (immer erreichbar)

mit watch ntpq -p könnt ihr das ganze dann live verfolgen :-)

was bring das ganze?
naja das muss jeder selbst wissen, für mich war es einfach nur ein kleiner spass... wollte das ganze schon vor einer weile umzetzen.
einfach aus spass an der freude.

ist vielleicht für umgebungen ohne internetzugang interessant.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:26 Uhr.

Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.