Nie muszę ustawiać zegara (oprócz strefy czasowej) na Raspberry Pi. Skąd bierze się czas? O ile to jest dokładne?
Nie muszę ustawiać zegara (oprócz strefy czasowej) na Raspberry Pi. Skąd bierze się czas? O ile to jest dokładne?
Odpowiedzi:
Raspbian pobiera czas z serwera NTP („serwera czasu”).
Całkowicie odłącz Raspberry Pi, wyjmij kabel sieciowy i uruchom Raspberry Pi ponownie. Zobaczysz, że data i godzina są nieprawidłowe.
Jeśli chcesz / potrzebujesz datę i godzinę, aby nie być zresetowane bez podłączony do Internetu, musisz zegar czasu rzeczywistego (RTC) - Na przykład coś takiego jak ten - które będą przechowywane obecnego czasu, za pomocą baterii uruchomić zegar. W ten sposób komputer utrzymuje czas, gdy nie jest zasilany.
AKTUALIZACJA Wystarczy zauważyć, że powyższy zegar RTC nie jest jedynym sposobem na zachowanie dokładności czasu między stratami mocy. Możesz także użyć modułu GPS i podłączyć go do pinów GPIO.
Dokładność Jest dość dokładna, chociaż jeśli twój czas jest znacznie opóźniony. Samo poprawienie może potrwać do 3 godzin, ponieważ zmiany z serwera są stopniowo wprowadzane do lokalnego zegara. Stabilność sieci ma największy wpływ na dokładność, ponieważ nieprzewidywalna sieć (coś bardziej bezprzewodowego, na przykład 3G ) bardzo utrudni dokładność. Mówiąc prosto: dokładność jest całkiem dobra, różnica czasu między komputerem a faktycznym czasem (z serwera NTP) jest zwykle mniejsza niż 100 ms .
Odpowiedź Morgana dała mi wskazówkę, której potrzebowałem, aby rozwiązać problem.
Idź do http://support.ntp.org/bin/view/Servers/NTPPoolServers
Wybierz region, a następnie kraj i listę serwerów.
Edytuj plik /etc/ntp.conf, np
sudo vim /etc/ntp.conf
Zastąp listę serwerów tymi, które znalazłeś na stronie internetowej. na przykład
serwer 0.dk.pool.ntp.org iburst
serwer 1.dk.pool.ntp.org iburst
serwer 2.dk.pool.ntp.org iburst
serwer 3.dk.pool.ntp.org iburst
Zapisz i wyjdź.
Uruchom ponownie demona NTTP.
sudo /etc/init.d/ntp restart
sprawdź, czy data jest poprawna.
data
czw 20 czerwca 13:39:20 CEST 2013
Na jednym z moich serwerów data została natychmiast zmieniona. W drugim musiałem poczekać kilka minut.
server 0.uk.pool.ntp.org iburst
ntpq -p. Używam: „Raspbian GNU / Linux 7 (wheezy)” i „Linux raspberrypi 4.1.7+ # 817 PREEMPT Sobota 19 września 15:25:36 BST 2015 armv6l GNU / Linux”
hwclocklub fake-hwclockprzeszkadza (ale część „/etc/rc.conf” jest nieaktualna)
ntpq -pCzęść jest z odpowiedzią na jaki czas jest utrzymywana na Raspberry Pi? .
ntpq -pnie miało znaczenia).
Jeśli masz fake-hwclockpakiet , wykona on także sztuczkę oszczędzania znacznika czasu, aby zapobiec resetowaniu zegara. To nie przyspieszy czasu, gdy urządzenie jest wyłączone, więc pozostanie w tyle. Wewnętrzny zegar również trochę dryfuje, gdy jest włączony.
Jeśli masz połączenie z Internetem (lub LAN z serwerem) i uruchamiasz ntp (ntpd / ntpdate), możesz uzyskać czas w sieci, jak wskazują inne odpowiedzi. Po zsynchronizowaniu jest naprawdę bardzo dokładny. Serwery online dadzą ci konsensus „czas na świecie”.
fake-hwclock. Dlaczego ktoś miałby chcieć zamrozić zegar, gdy urządzenie jest wyłączone? Nie mogę wymyślić takiego przypadku. Jest tu?
fake-hwclockArch Arch, użyj archplusplus.co.uk/post/40202081414/...
Raspberry Pi nie ma zintegrowanego zegara czasu rzeczywistego (RTC), który zapewnia opłacalność: patrz pytanie „Dlaczego nie ma zegara czasu rzeczywistego (RTC)?” w oficjalnym FAQ . Oznacza to, że po odłączeniu Raspberry Pi traci on swój czas. Po przywróceniu zasilania czas jest inicjowany do 1 stycznia 1970 r. (Inaczej epoka Uniksa ).
Raspberry Pi ustawia swój czas w sieci za pomocą NTP , protokołu synchronizacji zegara między komputerami. Ten protokół jest szeroko stosowany w Internecie, aby zapewnić, że komputery mają ten sam czas i jest wysoce niezawodny, ponieważ niektóre maszyny są przeznaczone do obliczania czasu za pomocą zegarów atomowych .
ntpdto demon (oprogramowanie w tle) uruchomił czas rozruchu i jest odpowiedzialny za synchronizację czasu przy użyciu protokołu NTP. ntpdmożna skonfigurować za pomocą pliku /etc/ntp.conf. Na przykład w tym miejscu można ustawić serwery tak, aby żądały czasu.
dateteraz pokazuje tę tygodniową datę plus, myślę, kilka dodatkowych godzin od przestoju wczoraj i dziś (po niektórych restartach wczoraj i dziś). (Raspbian, odpowiadający połowie 2015 r.).
cat /etc/fake-hwclock.dataa zobaczysz, jak ostatni raz fake-hwclockzaoszczędził czas (oczywiście w czasie wyłączenia). fake-hwclockjest używany w RPi do naśladowania prawdziwego zegara. Myślę, że uruchomiłeś swoje RPi bez dostępu do Internetu lub bez ntpdaktualizacji czasu. Czy możesz to potwierdzić?
Wygląda na to, że w Raspbian Stretch nastąpiła niewielka zmiana. Krótko mówiąc, ntp nie jest już zainstalowany. Bieganie dpkg -l | grep ntpnic nie zwraca.
Najwyraźniej Stretch porzucił ntpaplikację na rzecz systemd. Sprawdź man timesyncdwpis, aby uzyskać szczegółowe informacje na temat ustawień konfiguracji. timesyncdnadal używa serwerów NTTP do aktualizacji czasu. Jeśli chcesz skonfigurować te serwery ręcznie, możesz to zrobić w /etc/systemd/timesyncd.confpliku.
sudo systemctl restart timesyncda następnie sprawdź dzienniki, journalctl -u timesyncd -fczasem korporacyjne zapory blokują port. W takich przypadkach użyj podanego adresu URL korporacyjnego serwera NTTP.
systemd-timesyncdtaka, że polecenie ponownego uruchomienia będziesystemctl restart systemd-timesyncd
Jeśli szukasz sposobu na rejestrowanie lub utrzymywanie czasu w trybie offline , możesz dodać układ zegara czasu rzeczywistego , na przykład DS1307 .