Problemy z czasem i strefą czasową w Raspberry Pi

14

Mam Raspberry Pi, którego używałem w strefie czasowej EST . Miał zainstalowaną usługę NTP ( sudo apt-get install ntp), a Raspberry Pi ustawiono na strefę czasową UTC. Data na Raspberry Pi była prawidłowa, dopóki nie zabrałem Raspberry Pi do strefy czasowej Pacyfiku (PT). Kiedy uruchomiłem Raspberry Pi, czas UTC na Raspberry Pi był daleko (o 9 godzin), a NTP po prostu nie synchronizuje się, aby uzyskać prawidłowy czas UTC. Raspberry Pi jest podłączony do Internetu przez Ethernet.

Kilka razy próbowałem ponownie uruchomić Raspberry Pi. Próbowałem też usunąć usługę NTP i zainstalować OpenNTPD . Co może się dziać?

Używam Raspberry Pi 3 z Raspbian Jessie .

Ninja
źródło
1
Po ustaleniu stref czasowych ustaw swój zegar tak, aby uzyskać prawidłowy czas z Zegara głównego w Narodowym Biurze Standardów: raspberrypi.stackexchange.com/questions/68811/…
SDsolar

Odpowiedzi:

18

Oto pewne sugestie.

  1. Użyj raspi-confignarzędzia, aby zresetować strefę czasową, nawet jeśli już użyłeś innego narzędzia do jej ustawienia.

    sudo raspi-config
    
  2. Ręcznie ustaw czas, aby był nieco dokładny. NTP czasami nie aktualizuje się, jeśli czas / data są bardzo niepoprawne.

    sudo date -s "01/04/2017 11:00"
    
  3. Wymuś ręczną aktualizację czasu:

    sudo systemctl stop ntp.service
    sudo ntpd -gqc /etc/ntpd.conf
    sudo systemctl start ntp.service
    
  4. Upewnij się, że nie blokujesz portu UDP 123.

Powodzenia!

FlippingBinary
źródło
7

W wielu systemach Linux zegar śledzi czas w UTC . Z powodu niedostatecznego utrzymywania czasu przez Raspberry Pi, mądrze jest zainstalować i odpowiednio skonfigurować usługę, aby pomóc z czasem, np ntp.

Jest to dodatkowo komplikowane przez fakt, że Raspberry Pi nie ma możliwości utrzymywania czasu, gdy jest wyłączony / bez zasilania. Oznacza to, że gdy Raspberry Pi uruchomi się ponownie, jego czas się nie zsynchronizuje.

Gdy używasz takich poleceń, jak datezapytanie o czas, uwzględniają one twoje ustawienia regionalne . Oznacza to, że dateużyje przesunięcia strefy czasowej od ustawień regionalnych do ustalenia czasu lokalnego. Podczas pisania datezobaczysz, która strefa czasowa jest wyświetlana:

date
Wed Jan  4 11:01:44 PST 2017

Jeśli nie masz ustawionych ustawień regionalnych lub używasz -uflagi, zobaczysz:

date -u
Wed Jan  4 19:01:45 UTC 2017

Kiedy porównujesz czas i mówisz, że jest on wyłączony o 6 godzin, czy porównujesz czas UTC do aktualnego czasu UTC, czy też porównujesz czas UTC do czasu w strefie czasowej?

Czy podczas wpisywania datewyświetlana jest właściwa strefa czasowa? Jeśli nie, powinieneś to skonfigurować:

sudo dpkg-reconfigure tzdata # Select timezone
EarthmeLon
źródło
1

Rozwiązałem ten problem, ustawiając czas ręcznie za pomocą timedatectl:

sudo timedatectl set-time 'yyyy-mm-dd hh-mm'
Sameer Patel
źródło