Raspberry Pi nie aktualizuje czasu

12

Kupiłem Raspberry Pi 3 około dwa miesiące temu i od tego czasu czas nigdy się nie aktualizował . Detale:

  1. System operacyjny to nowa instalacja Raspbian Jessie (4.1.19-v7 +).
  2. Połączenie internetowe odbywa się za pośrednictwem natywnego Wi-Fi i nie ma innych problemów z komunikacją.
  3. Brak problemów z zaporą, ponieważ aktualizacja czasu działa jak urok na komputerze z systemem Windows w tej samej sieci LAN.
  4. Strefa czasowa jest poprawnie ustawiona.

Zacząłem od nptdate. Kiedy próbowałem wymusić aktualizację,

sudo /etc/init.d/ntp stop
sudo ntpd -q -g
sudo /etc/init.d/ntp start

terminal zamarł na drugie polecenie. Ostatnia wiadomość /var/log/syslogto:

Listening on routing socket on fd #22 for interface updates

/etc/ntp.conf zawartość:

driftfile /var/lib/ntp/ntp.drift

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

server 0.debian.pool.ntp.org iburst
server 1.debian.pool.ntp.org iburst
server 2.debian.pool.ntp.org iburst
server 3.debian.pool.ntp.org iburst

restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

restrict 127.0.0.1
restrict ::1

Wydaje mi się, że ntppakiet ma problem. Jak skonfigurować aktualizację czasu, ponieważ moja Malina jest włączona tylko w ciągu dnia, a opóźnienie kumuluje się w nocy?

Pigmalion
źródło
1
Jakiej dystrybucji używasz? Te starożytne linki nie mają nic wspólnego z obecnym Raspbianem. Jak długo czekasz po uruchomieniu? Co robisz, aby potwierdzić, że „czas się nie zaktualizuje”?
Milliways,
Jeśli pytasz, to Raspbian. Nie ważne jak długo czekam, to się nie aktualizuje. Używam polecenia „data” i obserwuję polecenie zegara w rogu.
Pygmalion
ntpdzmienił się w pewnym momencie w ciągu ostatnich kilku lat, aby utrudnić użytkownikowi wymuszenie zmiany. Biorąc pod uwagę, jak uproszczony jest jego cel, jest to jedna z absolutnie najgorzej zaprojektowanych, najbardziej tępych aplikacji wszechczasów. Ktoś powinien po prostu napisać podstawową implementację tylko dla klienta dla samodzielnych systemów użytkowników końcowych. Nie powinno to zająć więcej niż jeden dzień, w tym przeczytanie RFC. Współczuję Ci. Nienawidzę tego (ale ogólnie rzecz biorąc działa dla mnie, więc nie przeszkadza mi ...). Powodzenia.
Złotowłosa
To powiedziawszy, myślę, że możesz dodać bardziej szczegółowe wyjaśnienie, co dokładnie się dzieje. Z pewnością dużo skrzecze, gdy nie może połączyć się z serwerem, a takie rzeczy będą w syslog. Zapraszamy do obejrzenia sudo grep ntp /var/log/sysloglub, po uruchomieniu, journalctl | grep ntp.
Złotowłosa
@goldilocks sudo grep ntp /var/log/syslogzwraca kilka bad peer from pool x.debian.pool.ntp.orgbłędów. Po ponownym uruchomieniu journald | grep ntppowraca bash: journald: command not foundi sudo grep ntp /var/log/syslogzwraca mnóstwo can't find host x.debian.pool.ntp.org: name or service not knownbłędów orazno servers can be used, exiting
Pygmalion

Odpowiedzi:

6

Musisz spróbować zaktualizować czas za pomocą klucza USB Wi-Fi. Jeśli będzie działać dobrze, użyj tcpdumpi zobacz, jak pakiet jest obsługiwany po obu stronach: w Raspberry Pi 3 i punkcie dostępowym Wi-Fi, z którym się łączy.

Wewnętrzne Wi-Fi Raspberry Pi 3 służy do cichej utraty pakietów, o ile mi wiadomo.

Jak /etc/network/interfacespowinien wyglądać:

# Wired adapter #1
auto eth0
    iface eth0 inet static
    address 192.168.0.3
    netmask 255.255.255.0
    gateway 192.168.0.1
    dns-servers 8.8.8.8,8.8.4.4
    post-up /usr/sbin/ntpdate -4 1.2.3.4

Nie zapomnij o wiodących polach !

Alexey Vesnin
źródło
Komentarze nie są przeznaczone do rozszerzonej dyskusji; ta rozmowa została przeniesiona do czatu .
Ghanima
Znalazłem rozwiązanie, jak „naprawić” ntpd w tym wątku: raspberrypi.org/forums/viewtopic.php?f=28&t=141454 . Nadal nie wiem, jak zrobić to automatycznie przy uruchamianiu RPi3.
Pygmalion
@Pygmalion, jak powiedziałem wcześniej - ntpD= Demon NTP - nie jest wymagany do prostego ustawienia czasu hosta ... Jest to pokojówka służąca do dystrybucji czasu przez sieć, tzn. Jeśli masz wiele węzłów, potrzebujesz go na pewno. Ale dla ustawienia pojedynczego punktu końcowego ntpdatetworzone jest narzędzie. Jest nawet oddzielony w samym drzewie źródeł ntp
Alexey Vesnin
12
sudo sntp -s time.google.com

To zadziałało dla mnie.

Nicky
źródło
9

Próbowałem na kilka sposobów z ntp, chrony ... Wreszcie naprawiono następującą metodą.

Pobierz datę z dowolnej znanej witryny, takiej jak Google, aby ustawić czas komputera przy każdym uruchomieniu.

  1. Otwórz plik rc.local

    sudo nano /etc/rc.local

  2. Dodaj następujący wiersz do pliku rc.local

    sudo date -s "$(wget -qSO- --max-redirect=0 www.google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"

  3. Uruchom ponownie Rpi

    sudo reboot

Shamshu
źródło
Podobało mi się rozwiązanie. Działało, ale byłbym zadowolony z rozwiązania NTTP. Próbowałem ich, ale nie byłem w stanie się z tym pogodzić.
Varad AG,
Rozumiem tę desperację - to jest właśnie to, co robiłem w niektórych przypadkach (data z nagłówka HTTP), ale teraz jestem w zamkniętej sieci bez dostępu do Internetu i bez serwerów HTTP, tylko serwer NTP.
Tomasz Gandor
4

Jeśli ustawisz Strefę czasową w raspi-configRaspberry Pi, automatycznie zaktualizuje czas uruchamiania, jeśli jest podłączony do Internetu.

  1. sudo raspi-config
  2. Wybierz Internationalisation Options
  3. Wybierz I2 Change Timezone
  4. Wybierz swój obszar geograficzny
  5. Wybierz najbliższe miasto
  6. Wybierz Finish
  7. Wybierz, Yesaby ponownie uruchomić teraz
mwd27
źródło
Oczywiście ustawiam strefę czasową już pierwszego dnia.
Pygmalion
1
Ustawiłem też strefę czasową pierwszego dnia, ale mój Pi niedawno przestał aktualizować czas przy ponownym uruchomieniu, dokładnie tak, jak masz problem. Ponownie uruchomiłem raspi-configwczoraj i od tego czasu czas aktualizuje się poprawnie przy każdym ponownym uruchomieniu, nawet jeśli przez jakiś czas nie odłączałem zasilania. Proponuję spróbować? Daj mi znać, jak się masz ...
mwd27
Przepraszam. Zrobiłem tak, jak zasugerowałeś, ale się nie udało.
Pygmalion
Och, szkoda. Będę nadal myśleć ...
mwd27
3

Następujące polecenie na pewno będzie działać

sudo date -s"Sep 11 12:50"
satven
źródło
1
Dziękuję za Twoją odpowiedź. Myślę, że pytanie dotyczy automatycznej aktualizacji za pomocą NTP, a twoja odpowiedź wydaje się dotyczyć jednorazowego ustawienia zegara.
Bex
2

Odkryłem, że korzystanie z poniższych działało jako jednorazowe za pośrednictwem Wi-Fi.

sudo sntp -s 0.debian.pool.ntp.prg
David
źródło
1

W menu aplikacji / Preferencje / Konfiguracja Raspberry Pi poszedłem do zakładki Lokalizacja i wybrałem wartości Ustaw region, Ustaw strefę czasową i Ustaw kraj WiFi.

Kliknij OK, a czas jest teraz poprawny.

Scott H.
źródło
1

Dla mnie musiałem trochę poczekać z jakiegoś powodu, który nie od razu ustalił właściwy czas. Jest to po ustawieniu właściwej strefy czasowej, włączeniu dostępu do Internetu i ponownym uruchomieniu.

bakalolo
źródło
Informacje o ustawianiu poprawnego czasu Zobacz Co powoduje luki w logach? .
Ingo