Raspberry Pi postrádají hardwarové hodiny. Jak vynutím NTPD, aby aktualizoval datum a čas ihned po každém spuštění?

Používám Raspbian a Raspberry Pi je připojen pomocí ethernetový kabel.

Komentáře

  • Můj už to dělá z box. Jakou disto používáte?
  • Raspbian Wheezy
  • @Thorb Pi je připojen ethernetovým kabelem / dhcp. Po zavedení jednoduše nedostane platné datum, chvíli to trvá (10 až 45 minut)
  • Udělá to automaticky, po několika minutách. Ujistěte se, že jste nastavili použití hlavních hodin v Národním úřadu pro standardy, time.nist.gov, jak je popsáno zde: raspberrypi.stackexchange.com/questions/68811/…
  • Zdá se, že ne jeden na tuto otázku dosud uspokojivě odpověděl – tj. jak synchronizovat čas pomocí NTP po spuštění (tj. bez restartu).

Odpovědět

Poté při hledání okolí tato metoda fungovala pro mě. Jak víte, Raspberry Pi 3 má ve výchozím nastavení zakázáno NTP. Pouhým zadáním této položky bude povolena podpora NTP:

sudo timedatectl set-ntp True 

Zkontrolujte výsledek pomocí timedatectl status

V případě varování možná budete muset spustit sudo timedatectl set-local-rtc true.

Komentáře

  • Díky, nakonec mi to pomohlo a navzdory předchozím odpovědím se zdá být správným způsobem.
  • To je nejlepší odpověď, hodně mi pomohla. Můžete použít ‚ sudo ‚, abyste se vyhnuli zadávání hesla (užitečné pro skripty, které ho spouští). Jaký je účel příkazu seconds? set-local-rtc

Odpověď

Proveďte apt-get install ntpdate .

ntpdate se spustí, když se vyvolá ethernetové rozhraní, a nastaví čas ze serveru ntp (viz /etc/default/ntpdate).

Pokud je spuštěn ntpd, program ntpdate nic neudělá, ale ntpdate bude spuštěn před ntpd při spuštění – toto by mělo fungovat, aby se nastavil čas při spuštění, pokud existuje ethernetové připojení.

Komentáře

  • stock Raspbian to vše již bude mít.
  • @scruss důl nebyl ‚ t. (02.02.2013, sípavý rasbian)
  • Můj také ne, musel to udělat ručně.
  • Pokud je nastaven správně, provede to automaticky – i když to může trvat několik minut.
  • Linux raspberrypi 4.14.30-v7+ #1102 SMP Mon Mar 26 16:45:49 BST 2018 armv7l GNU/Linux neměl jsem to ‚.

Odpovědět

Pokud jsou vaše hodiny pryč, možná budete muset vynutit synchronizaci ntp pomocí:

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

komentářů

  • Vrací chybu “ sudo: ntpd: příkaz nebyl nalezen “
  • ntpd musí být nainstalován k použití příkazu
  • Je nainstalován , nejsem tak ignorant 🙂
  • Můžete prosím navštívit raspberrypi.stackexchange.com/questions/47542/… ? Zveřejnil jsem tam podrobnosti.
  • Toto bylo absolutně řešení mého problému, ale zjistil jsem, že je to dočasné, dokud jsem nerestartoval. Nakonec jsem při vypnutí zachytil chybu, že nemohl ‚ t aktualizovat hwclock, protože hw hodiny měly budoucí datum (netuším, jak se to stalo). Řešením však byla síla aktualizace hwclock. To přinutilo aktualizaci k falešným hardwarovým hodinám a poté při spuštění byl čas alespoň blízký aktuálnímu, takže ntp to mohl dělat ‚ s normálně.

Odpověď

Pokud nastavíte časové pásmo v raspi-config, Raspberry Pi automaticky aktualizuje čas při spuštění, pokud je připojen k internetu.

  1. sudo raspi-config
  2. Vyberte Internationalisation Options
  3. Vyberte I2 Change Timezone
  4. Vyberte svou geografickou oblast
  5. Vyberte nejbližší město
  6. Vyberte Finish
  7. Vyberte Yes a restartujte nyní

Komentáře

  • toto pro mě fungovalo dobře
  • I2 Change Timezone možnost ‚ už neexistuje
  • Existuje, alespoň v Raspbian Buster.
  • “ Možnosti internacionalizace je nyní nazýváno “ Možnosti lokalizace “
  • “ nejbližší město “ není správný způsob. musíte vybrat město, kam patří vaše časové pásmo, které může být nejbližší nebo ne …

Odpověď

Zobrazit příspěvek ve fóru Čas se nesynchronizuje na Pi 3 a s oficiálním hardwarovým klíčem .

ntpd vydává pakety IP / UDP s ToS pole nastaveno na 0xc0. To je tedy docela podobné dalšímu problému, který mám (a mnoho dalších) s Raspberry Pi3 při provozu přes interní rozhraní Wi-Fi.

Jako alternativní řešení přidejte příkaz

/sbin/iptables -t mangle -I POSTROUTING 1 -o wlan0 -p udp --dport 123 -j TOS --set-tos 0x00 

do souboru

/etc/rc.local 

před řádkem exit 0. Poté restartujte a zkontrolujte.

Komentáře

  • Měl jsem stejný problém, jako když jsem nainstaloval RPi3, který jsem dostal pro XMas, a vyřešili jste můj problém. Skvělé !!!

Odpověď

Tato otázka je zjevně “ recycled “ z nějakého důvodu, a proto se zdá vhodné recyklovat i některé staré odpovědi 🙂

Rokem je nyní rok 2021 …

Tato otázka byla položena v roce 2013. ntpd byl software pro měření času obsažený v v té době distribuce Raspbian (wheezy) . To se však změnilo s stretch distribucí v roce 2017, kdy systemd-timesyncd nahradil ntpd. Důvody této změny a některé technické kompromisy byly popsány v této staré odpovědi pro ty, kteří se o takové věci zajímají.

S ohledem na zde uvedenou otázku je pravděpodobně nejdůležitějším bodem v současném prostředí (post- systemd) je toto: Pokud se rozhodnete nainstalovat ntpd do vaší současné distribuce Raspbian, víte, že systemd-timesyncd udělá “ správnou věc „! Zkontroluje přítomnost dalších démonů NTP a podle toho upraví jeho chování; to prostě funguje . Vše si můžete přečíst zadáním na příkazovém řádku:

$ systemctl cat systemd-timesyncd 

Všimněte si několika posledních řádků:

# don „t run timesyncd if we have another NTP daemon installed
ConditionFileIsExecutable =! / usr / sbin / ntpd
ConditionFileIsExecutable =! / usr / sbin / openntpd
ConditionFileIsExecutable =! / Usr / sbin / chronyd
ConditionFileIsExecutable =! / Usr / sbin / VBoxService

Jinými slovy: zkontroluje, zda ve vašem systému běží některá z těchto alternativních časových služeb, a pokud ano, zdvořile se jim odkáže za poskytnutí vašich časových služeb.

“ vynutit “ ntpd aktualizaci po spuštění ?!

Toto byl OP otázka. Odpověď (v roce 2021) nebyla změněna: Nemělo by to být nutné dělat na žádném systému RPi – pokud někdo nezměnil výchozí konfiguraci ! Můžete to ověřit takto:

 $ timedatectl Local time: Wed 2021-01-13 00:25:33 GMT Universal time: Wed 2021-01-13 00:25:33 UTC RTC time: n/a Time zone: Europe/London (GMT, +0000) System clock synchronized: yes NTP service: active RTC in local TZ: no  

Poznamenejte si dvě položky:

  1. System clock synchronized: yes
  2. NTP service: active

Položka 1. říká, že vaše systémové hodiny jsou synchronizovány s jakýmkoli výchozím zdrojem času, a položka 2. je téměř true v tom, že RPi standardně používá SNTP protokol namísto NTP ( REF ); tj. to znamená, že RPi má zdroj času a využívá jej.

Myslím si, že je vše potřebné pro up-to- datum odpovědi pro rok 2021 , kromě tohoto: přečtěte si man timedatectl další informace o jeho schopnostech nebo má-li TLDR slušné shrnutí.

Komentáře

  • Synchronizace systémových hodin: ne
  • @Arrow_Raider: Váš ‚ bod je ???

Odpověď

Čas by už měl být aktualizován. Server NTPD by měl začít hned po odkládacím souboru a před SSHD.

Zkontrolujte svůj soubor /etc/ntp.conf a ujistěte se, že je nakonfigurovaný.

Měl by obsahovat alespoň jeden server. Pro svůj server používám time.nrc.ca.

Ruční stránka pro ntp.conf je zde: http://linux.die.net/man/5/ntp.conf

Odpověď

Rasberry Pi mého syna by neaktualizoval čas z krabice a po pokusu všechny výše uvedené návrhy jsem mohl nechat aktualizovat ručně, ale ne automaticky. Nakonec, když jsem bez úspěchu hledal i jinde, zjistil jsem, že ntp.conf soubor, který byl dodán s Rasberry Pi měl komentovány následující řádky:

#restrict 127.0.0.1 #restrict ::1 

Použil jsem

sudo nano /etc/ntp.conf 

v terminálu a upravte soubor ntp conf tak, aby nyní byl:

# Local users may interrogate the ntp server more closely. restrict 127.0.0.1 restrict ::1 

To nám problém vyřešilo. Aktualizuje se pomocí WiFi i ethernetového kabelu. Nevím, jestli by se to aktualizovalo pomocí WiFi bez změny výše navrženého rc.local, protože v době, kdy jsem našel výše uvedené řešení, jsem již tuto změnu provedl a nevrátil jsem ji.

Odpověď

Našel jsem aplikaci timedatectl, která mi pomohla, když jsem měl podobný problém. Je to ve výchozím nastavení nainstalován a „–help“ poskytuje docela dobrý a jednoduchý přehled o tom, jak tento nástroj používat.

Poznámka: ujistěte se, že je vaše časové pásmo správně nastaveno, což tento nástroj také dokáže.

Odpověď

K vyřešení problému nemusíte používat ntp. K dispozici je skript, který načte datum ze serveru a stačí nastavit datum, které bude výsledkem tohoto skriptu (vaše Raspberry Pi musí být připojeno k internetu). Potom musíte tento příkaz spustit při spuštění.

Krok 1: Načíst datum ze serveru.

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

Krok 2: Spusťte příkaz při spuštění přidáním do souboru /etc/rc.local (fungovalo na Ubuntu 16.04).

sudo gedit /etc/rc.local 

KREDITY:

1- https://askubuntu.com/a/655528/572294

2- https://askubuntu.com/a/1199/572294

Komentáře

  • Možná nebudete muset používat ntp ale měli byste. Je ‚ lepší, rychlejší, přesnější a průmyslový standard. Pokud existují dobré standardy, nevymýšlejte si ‚ své vlastní divné věci.
  • Nepomáhá to ‚ pokud váš RasPi běží 24/7.

Odpověď

Měl jsem podobný problém s nesynchronizací Pi . Žádné z těchto řešení nefungovalo. Ukázalo se, že moje síťové prostředí blokovalo port NTP (123). Řešení pro mě bylo

sudo apt install htpdate 

převzato z: https://www.raspberrypi.org/forums/viewtopic.php?t=222236

Což místo toho aktualizuje hodiny systému prostřednictvím volání HTTP.

Odpověď

Toto je přístup, který jsem nakonec zvolil. Zdálo se, že mnoho z těchto odpovědí naznačuje věci, které jsem si při pohledu na můj raspianský systém nekontroloval:

$ cat /etc/os-release PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)" NAME="Raspbian GNU/Linux" VERSION_ID="9" VERSION="9 (stretch)" ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs" 

Neměl jsem nic, co by se objevilo v protokolech že timedatectl dělá cokoli, nebo že se ntp synchronizuje ve stavu NIC nebo že NTPD byl dokonce nainstalován / nakonfigurován.

Nakonec jsem to jen přidal do svého /etc/rc.local:

$ cat /etc/rc.local logger "Beginning force syncing NTP..." service ntp stop ntpd -gq service ntp start logger "Finished force syncing NTP..." 

a nainstaloval ntp:

$ sudo apt-get install ntp 

Výsledkem čehož je /var/log/syslog:

Aug 5 09:10:20 pi-hole ntp[526]: Starting NTP server: ntpd. Aug 5 09:10:20 pi-hole ntpd[555]: proto: precision = 1.458 usec (-19) Aug 5 09:10:20 pi-hole ntpd[555]: Listen and drop on 0 v6wildcard [::]:123 Aug 5 09:10:20 pi-hole ntpd[555]: Listen and drop on 1 v4wildcard 0.0.0.0:123 Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 2 lo 127.0.0.1:123 Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 3 eth0 192.168.1.85:123 Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 4 lo [::1]:123 Aug 5 09:10:20 pi-hole ntpd[555]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123 Aug 5 09:10:20 pi-hole ntpd[555]: Listening on routing socket on fd #22 for interface updates Aug 5 09:10:21 pi-hole ntpd[555]: ntpd exiting on signal 15 (Terminated) Aug 5 09:10:21 pi-hole ntp[661]: Stopping NTP server: ntpd. Aug 5 09:10:21 pi-hole ntpd[674]: ntpd [email protected] Sat Mar 10 18:03:33 UTC 2018 (1): Starting Aug 5 09:10:21 pi-hole ntpd[674]: Command line: ntpd -gq Aug 5 09:10:21 pi-hole ntpd[674]: proto: precision = 0.625 usec (-21) Aug 5 09:10:21 pi-hole ntpd[674]: Listen and drop on 0 v6wildcard [::]:123 Aug 5 09:10:21 pi-hole ntpd[674]: Listen and drop on 1 v4wildcard 0.0.0.0:123 Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 2 lo 127.0.0.1:123 Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 3 eth0 192.168.1.85:123 Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 4 lo [::1]:123 Aug 5 09:10:21 pi-hole ntpd[674]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123 Aug 5 09:10:21 pi-hole ntpd[674]: Listening on routing socket on fd #22 for interface updates Aug 5 09:10:34 pi-hole ntpd[674]: Soliciting pool server 198.98.57.16 Aug 5 09:10:35 pi-hole ntpd[674]: Soliciting pool server 74.82.59.149 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 23.131.160.7 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 52.37.26.163 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 204.2.134.163 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 96.126.100.203 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 199.223.248.101 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 66.228.42.59 Aug 5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 208.75.89.4 Aug 5 09:10:37 pi-hole ntpd[674]: Soliciting pool server 204.2.134.164 Aug 5 09:10:37 pi-hole ntpd[674]: Soliciting pool server 104.236.116.147 Aug 5 09:10:38 pi-hole ntpd[674]: Soliciting pool server 204.9.54.119 Aug 5 09:10:48 pi-hole ntpd[674]: ntpd: time set +6.769186 s Aug 5 09:10:49 pi-hole ntpd[853]: ntpd [email protected] Sat Mar 10 18:03:33 UTC 2018 (1): Starting Aug 5 09:10:49 pi-hole ntpd[853]: Command line: /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 111:114 Aug 5 09:10:49 pi-hole ntp[844]: Starting NTP server: ntpd. Aug 5 09:10:49 pi-hole ntpd[856]: proto: precision = 0.625 usec (-21) Aug 5 09:10:49 pi-hole ntpd[856]: Listen and drop on 0 v6wildcard [::]:123 Aug 5 09:10:49 pi-hole ntpd[856]: Listen and drop on 1 v4wildcard 0.0.0.0:123 Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 2 lo 127.0.0.1:123 Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 3 eth0 192.168.1.85:123 Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 4 lo [::1]:123 Aug 5 09:10:49 pi-hole ntpd[856]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123 Aug 5 09:10:49 pi-hole ntpd[856]: Listening on routing socket on fd #22 for interface updates Aug 5 09:10:49 pi-hole root: Finished force syncing NTP... 

Komentáře

  • nefunguje ‚ nefunguje na minimální raspbian: Failed to start ntp.service: Unit ntp.service not found. A ntpd neexistuje ‚. Pi rozhodně nakonec získá čas. (Dívám se do toho ‚ protože moje HTTPS kadeře selžou bez -k při spuštění před tím)
  • @StevenLu – I ‚ Aktualizuji A ‚ er tak, aby zahrnoval i instalaci ntp.
  • @StevenLu – apt-get install ntp

Odpověď

K synchronizaci času bez instalace dalších balíčků používám na výchozím obrázku následující:

timedatectl set-local-rtc 0 timedatectl set-ntp 1 timedatectl status 

Odpověď

Našel jsem to někde v interwebech. Zdá se, že funguje na Buster:

sudo timedatectl set-ntp false && sudo timedatectl set-time "$(date --iso-8601=seconds | cut -d "+" -f1 | tr T " ")" && sudo timedatectl set-ntp true 

Nejsem si jistý, zda je mezilehlý příkaz (set-time) opravdu potřeba.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *