Jak mogę zachować czas systemowy?

42

Wiem, że Raspberry Pi nie ma zegara systemowego, aby zaoszczędzić pieniądze. Jak mogę jednak zachować czas systemowy?

ACarter
źródło

Odpowiedzi:

41

Oprogramowanie

Najpopularniejszą metodą utrzymywania czasu systemowego jest demon Network Time Protocol (NTPd).

NTPd jest najczęstszą metodą synchronizacji zegara oprogramowania systemu GNU / Linux z internetowymi serwerami czasu za pomocą protokołu Network Time Protocol.

NTPd powinien być już zainstalowany i skonfigurowany w domyślnym systemie operacyjnym Debian Squeeze. Będziesz jednak musiał zainstalować i skonfigurować go ręcznie dla Arch Linux.

Najpierw zainstaluj NTP.

$ sudo pacman -S ntp

Teraz możesz ręcznie zaktualizować go za pomocą wiersza polecenia.

$ sudo ntpd -qg

Możesz też dodać go do listy demonów podczas uruchamiania, dodając go do swojego /etc/rc.confpliku. Podoba mi się

# /etc/rc.conf
DAEMONS=(!hwclock ntpd)

Pamiętaj, że musisz wyłączyć hwclock, poprzedzając go wykrzyknikiem ( !) na liście demonów.


Protip z mlp : Jeśli dodasz ntpdatedo listy demonów, czas zostanie znacznie skorygowany po rozruchu. Tak wyglądałaby twoja lista demonów.

# /etc/rc.conf
DAEMONS=(!hwclock ntpd ntpdate)
Społeczność
źródło
ntpdate jest przestarzałe: support.ntp.org/bin/view/Dev/DeprecatingNtpdate
Gergely Fehérvári
1
Plik /etc/rc.conf jest również przestarzały.
rubenvb
1
jeśli /etc/rc.conf jest przestarzałe, jaka jest alternatywa? Właśnie tego potrzebuję.
Jonathan S. Fisher
1
@exabrial systemctl enable ntpd.servicejest podobny do dodawania do /etc/rc.conf.
Lekensteyn,
Świeże instalacje mają czas odbierania z różnych źródeł, które mogą być wieloma przeskokami z zegara głównego. Aby uzyskać szczegółowe informacje oraz powód, dla którego powinieneś zmienić go na time.nist.gov, zapoznaj się z tym
pytaniem
16

Rozwiązanie sprzętowe

Jeśli chcesz zagwarantować, że czas na RPi jest zawsze poprawny lub chcesz utrzymać czas bez połączenia sieciowego, musisz kupić kartę rozszerzeń z zegarem czasu rzeczywistego (RTC): jest co najmniej jeden dostępny i przynajmniej jeden w fazie rozwoju.

Dostępne karty rozszerzeń RTC

Płytki rozszerzające RTC w fazie rozwoju

Alex Chamberlain
źródło
3

W przypadku aplikacji niepołączonych w sieć (lub tam, gdzie czas sieci może nie być wystarczająco dobry), możesz ustawić swój zegar RTC (odpowiedź @Alex Chamberlain) na czas pochodzący z odbiornika GPS lub odbiornika VLF (w Europie północno-zachodniej byłby to Rugby MSF) . Oba mogą być doskonałymi rozwiązaniami dla urządzeń rozmieszczonych w terenie (roboty, monitorowanie w terenie itp.).

Oba rozwiązania byłyby również dobrym projektem hobby. Pamiętam, jak zbudowałem odbiornik MSF Rugby w latach 80. Odbiornik GPS z półki („krążek”) podaje datę i godzinę w zdaniach NMEA 0183 - wówczas wyodrębnienie tej informacji byłoby prostym projektem kodowania.

winwaed
źródło
1
Dla zainteresowania sygnał czasowy MSF jest obecnie nadawany ze stacji radiowej Anthorn w Kumbrii, a nie w Rugby.
tomfanning
1
W tej chwili nie mieszkam w Wielkiej Brytanii, od dłuższego czasu nie zjechałem z autostrady M1. (Zakładam, że maszty pobliskich masztów morskich w Daventry wciąż tam są)
wygrał
Nie jestem pewien - jestem po złej stronie kraju dla M1. Jednak wydaje się, że stacja radiowa Rugby przestała być aktywna w połowie 2007 r. Według en.wikipedia.org/wiki/Rugby_Radio_Station - z odniesieniami do rozbiórki, w tym zdjęcia. I tu jest film: youtube.com/watch?v=bx2lhSUuGqU . Jednak w Google Street View nadal widoczne są maszty, które, jestem całkiem pewien, są nowszymi zdjęciami niż w 2007 roku.
tomfanning
Rozglądając się po Wikipedii, nie ma wzmianki o masztach „morskich” w Daventry, więc muszę się mylić - po prostu bardzo stary (teraz zdemontowany) przekaźnik do Imperium. Teraz dysk M1 jest jeszcze bardziej nudny!
Winwaed
3

Zainstaluj demona NTP w Arch Linux z systememd:

sudo pacman -S ntp
sudo systemctl enable ntpd
sudo systemctl start ntpd

Upewnij się również, czy strefa czasowa jest ustawiona poprawnie, w moim przypadku:

sudo rm /etc/localtime
sudo ln -s  /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
tjoe
źródło
0

Jeśli nie chcesz, aby NTP działał w twoim systemie przez cały czas, możesz użyć jednej z kilku różnych opcji, aby ustawić czas:

  • ntpdate - Po zainstalowaniu ustawia system tak, aby uzyskać czas, w którym pojawi się dowolny interfejs (chociaż „przestarzały” jest nadal dość powszechnie używany).
  • rdate - Prostsze i lżejsze podejście, choć nieco mniej dokładne.
  • tlsdate - Bardziej bezpieczna opcja wykorzystująca serwer TLS / SSL jako źródło czasu.

Oczywiście twój zegar nie będzie tak dokładny jak przy użyciu NTP, ponieważ wszystkie zegary dryfują, a także ponieważ te aplikacje używają tylko jednego źródła czasu, mogą potencjalnie spowodować ustawienie nieprawidłowego czasu, jeśli wybrane źródło ma problem.

Pierz
źródło