Blog > Komentarze do wpisu

Time is ticking away... cz.1

Witam,

 

Po krótkiej nieobecności wracam ze świeżymi wieściami z frontu. Tym razem na tapetę bierzemy serwery czasu. Na wstępie kilka słów wyjaśnienia. W firmie znaleźliśmy na półce serwer czasu bazowany na sygnale z satelitów GPS. Posiadamy już jeden serwer wykorzystywany do synchronizacji czasu serwerów, systemów teletransmisyjnych (SDH, PDH), central telefonicznych itp. Nasz serwer czasu jako, że jest oparty o GPS posiada klasyfikację Stratum 1 czyli najwyższą osiągalną dla serwerów czasu (źródło - czyli sygnał GPS ma klasyfikację Stratum 0). Wpadłem więc na dość egzotyczny pomysł, aby zbudować sobie taki serwer w domu. Przyglądając się gotowemu urządzeniu za kilkadziesiąt tysięcy PLN doszedłem do wniosku, że nie ma w tym większej filozofii. 

 

W biurku znalazłem stary odbiornik GPS używany jeszcze za czasów, gdy GPS w komórce stanowił rzadkość, a nawigację odpalało się na palmtopie z Windows CE. Od pomysłu do realizacji niestety droga wyboista - po pierwsze posiadany przez mnie GPS miał tylko i wyłącznie komunikację po bluetooth. Niby ma jakąś złączkę mini-USB ale za żadne skarby nie znalazłem do niego sterowników. Drugi problem to brak bluetooth w serwerze. Z bluetoothem wogóle jest ciekawa historia - nowe kernele Linux (powyżej 3) nie potrafią rozmawiać ze starszymi sztyfcikami bluetooth. Trzeba było znaleźć jakąś starszą dystrybucję. Akurat pod ręką znalazł się linux na kernelu 2.6 (jedna z wirtualek na moim serwerze domowym). 

Instalacja blutetooth nie była jakimś specjalnym wyzwaniem. Ot kilka pakietów i gotowe. Większy problem sprawiło sparowanie urządzenia oraz podpięcie go pod wirtualny port szeregowy. Z pomocą przyszedł pakiet rfcomm. Pozostała jeszcze kwestia konfiguracji gpsd oraz ntpd. Niestety tutaj zaczęły się schody które okazały się dość strome. O ile udało się w miarę bezproblemowo skonfigurować gpsd - wyświetla dane z satelitów, o tyle konfiguracja ntpd jest niesamowicie chora. Dane są przekazywane w dwóch postaciach - jako absolutny znak czasu oraz jako PPS (Pulse Per Second) do współdzielonego obszaru pamięci. I tu pierwszy zgrzyt - gpsd musi pracować na prawach roota. To jest jeszcze do zaakceptowania - gorzej, że działa tylko znacznik czasu - przez problemy z bluetooth nie działa PPS. Co gorsza po skonfigurowaniu ntpd aby pobierał czas z GSM dane są dość mocno rozjechane w stosunku do zegarów referencyjnych.

Problemy wynikają z samej transmisji bluetooth - pakiety przychodzą jak chcą a nie dokładnie wtedy kiedy powinny. Muszę poszukać jakiegoś innego rozwiązania które będzie dokładniejsze. Poniżej log z ntpq:

A tutaj output z cgps:

 

Jak widać efekty nie są jeszcze rewelacyjne, ale co najmniej zachęcają do dalszych eksperymentów. Teraz najważniejsze będzie znalezienie odbiornika GPS z możliwością podpięcia kablem i sprawdzenie, czy przekazywane dane będą bardziej zadowalające (dokładniejsze i bardziej przewidywalne w czasie). Niestety odbiorniki na USB są dość drogie więc liczę raczej na to, że znajdę gdzieś urządzenie używane.

 

Pozdrawiam

AB

niedziela, 22 lutego 2015, adikb
Tagi: ntp Bluetooth GPS

Polecane wpisy

TrackBack
TrackBack w tym blogu jest moderowany. TrackBack URL do wpisu:
stat4u