¿De dónde saca tiempo la Raspberry Pi?


44

No tengo que configurar el reloj (además de la zona horaria) en la Raspberry Pi. ¿De dónde viene el tiempo? ¿Sobre qué tan exacto es?


Las nuevas instalaciones tienen tiempo de recuperación de una variedad de fuentes. Para obtener detalles y la razón por la que debe cambiarlo a time.nist.gov, consulte estas preguntas y respuestas: raspberrypi.stackexchange.com/questions/68811/…
SDsolar

Respuestas:


45

Raspbian obtiene la hora de un servidor NTP (un "servidor de hora").

Desenchufe su Raspberry Pi por completo, desconecte el cable de red e inicie Raspberry Pi nuevamente. Verá que la fecha y la hora son incorrectas.

Si desea / necesita que la fecha y la hora no se restablezcan sin estar conectado a Internet, necesitará un reloj de tiempo real (RTC), por ejemplo, algo como esto , que mantendrá la hora actualizada, utilizando una batería correr un reloj Así es, también, cómo su computadora mantiene el tiempo cuando no está siendo alimentado.

ACTUALIZACIÓN Sólo una nota que el reloj RTC anterior no es la única manera de mantener el tiempo exacto entre las pérdidas de energía. También puede usar un módulo GPS y conectarlo a los pines GPIO.

Precisión Es bastante precisa, aunque si la hora de su reloj está bastante apagada. Puede tomar hasta 3 horas para corregirse, ya que los cambios del servidor se aplican gradualmente a su reloj local. La estabilidad de la red tiene el mayor impacto en la precisión, ya que una red impredecible (algo más inalámbrico, como 3G ) hará que sea muy difícil ser preciso. En pocas palabras: la precisión es bastante buena, la diferencia de tiempo entre su computadora y el tiempo real (desde el servidor NTP) es normalmente inferior a 100 ms .


1
buena respuesta. gracias por el enlace sobre el reloj de hardware
Scoop

1
Buena respuesta; podría mejorarse mencionando la precisión del protocolo NTP.
Alex Chamberlain

@AlexChamberlain Gracias por el aviso, iba a agregarlo pero se me olvidó por completo. Lo he agregado ahora.
Vincent P

Mientras mi Pi está conectada a la red, me doy cuenta de que el tiempo se ha reducido en 30 minutos. ¿El ntpd está habilitado de forma predeterminada o debo hacerlo manualmente?
andig

Tal vez sí, hasta Raspberry Pi 3. Compré uno hace dos meses y la actualización de tiempo de NTP está atornillada, al menos en la Raspbian Jessie oficial. Abrí tres hilos con ese problema y todos no tienen idea. Tuve que comprar un módulo de hardware para mantener el tiempo para resolver el problema.
Pigmalión

21

La respuesta de Morgan me dio la pista que necesitaba para resolver el problema.

  1. Vaya a http://support.ntp.org/bin/view/Servers/NTPPoolServers
    Seleccione su región, luego su país y se mostrará una lista de servidores.

  2. Edite su archivo /etc/ntp.conf, p. Ej.

    sudo vim /etc/ntp.conf

    Reemplace la lista de servidores con la que encontró en la página web. p.ej

    servidor 0.dk.pool.ntp.org iburst
    servidor 1.dk.pool.ntp.org iburst
    servidor 2.dk.pool.ntp.org iburst
    servidor 3.dk.pool.ntp.org iburst

    Guardar y Salir.

  3. Reinicia el demonio ntp.

    sudo /etc/init.d/ntp restart

  4. Verifique que la fecha sea correcta.

    fecha
    jue 20 jun 13:39:20 CEST 2013

En uno de mis servidores la fecha fue cambiada inmediatamente. En el otro tuve que esperar un par de minutos.


2
Si se encuentra en el Reino Unido (u otro país), puede cambiar el código de país de dos letras para que se adapte a .eg server 0.uk.pool.ntp.org iburst
Pierz el

El paso 4 no funcionó para mí hasta después de unos 15 minutos. O tal vez porque corrí ntpq -p. Estoy usando: "Raspbian GNU / Linux 7 (wheezy)" y "Linux raspberrypi 4.1.7+ # 817 PREEMPT sáb 19 de septiembre 15:25:36 BST 2015 armv6l GNU / Linux"
Peter Mortensen

Quizás hwclocko fake-hwclockesté interfiriendo (pero la parte "/etc/rc.conf" está desactualizada)
Peter Mortensen


Y después de un apagado de 5 minutos, tenía 5 minutos de retraso ( ntpq -pno hizo la diferencia).
Peter Mortensen

14

Si tiene el fake-hwclockpaquete , también hará un truco para guardar la marca de tiempo para evitar que se reinicie el reloj. Eso no adelantará el tiempo mientras el dispositivo está apagado, por lo que se retrasará. El reloj interno también se moverá un poco mientras está encendido.

Si tiene una conexión a Internet (o lan con un servidor) y ejecuta ntp (ntpd / ntpdate), puede obtener el tiempo a través de la red, como señalan otras respuestas. Cuando está sincronizado, es realmente bastante preciso. Los servidores en línea también le darán el consenso "hora mundial".


acerca interesante fake-hwclock. ¿Por qué alguien querría congelar el reloj cuando la máquina está apagada? No puedo pensar en un caso de uso para eso. ¿Esta ahí?
Scoop

2
@Scoop Debido a que la alternativa es olvidar el tiempo, se reiniciará. Esto hará que cualquier marca de tiempo grabada parezca ser del futuro, etc. "Congelar" el reloj asegura que el tiempo siga avanzando, incluso si el conteo está apagado :)
XTL

1
Tener ntp u otra forma de configurar el reloj, por supuesto, seguirá funcionando y fake-hwclock solo se ejecuta en el arranque y apagado.
XTL

1
para fake-hwclockArch Linux, use archplusplus.co.uk/post/40202081414/…
levinalex

2
Este paquete ahora parece estar instalado por defecto en Raspbian ahora.
Pierz

11

El Raspberry Pi no tiene un reloj de tiempo real (RTC) integrado para la rentabilidad: vea la pregunta "¿Por qué no hay reloj de tiempo real (RTC)?" en las preguntas frecuentes oficiales . Significa que cuando desconecta la Raspberry Pi, pierde su tiempo. Cuando lo vuelve a encender, el tiempo se inicializa al 1 de enero de 1970 (también conocido como época de Unix ).

La Raspberry Pi establece su tiempo en la red con NTP , un protocolo para la sincronización del reloj entre computadoras. Este protocolo se usa ampliamente en Internet para garantizar que las computadoras tengan el mismo tiempo y es altamente confiable ya que algunas máquinas se dedican al cálculo del tiempo con relojes atómicos .

ntpdes un demonio (un software en segundo plano) que lanzó un tiempo de arranque y es responsable de sincronizar el tiempo usando el protocolo NTP. ntpdse puede configurar con el archivo /etc/ntp.conf. Por ejemplo, aquí es donde puede configurar los servidores para solicitar la hora.


¿No recuerda la última vez? Apagué un Raspberry Pi hace una semana y dateahora muestra esa fecha de una semana más, creo, algunas horas adicionales desde el tiempo de actividad ayer y hoy (después de algunos reinicios ayer y hoy). (Raspbian, correspondiente a mediados de 2015).
Peter Mortensen

Ejecute cat /etc/fake-hwclock.datay verá la última vez que fake-hwclockguardó el tiempo (obviamente, en el momento del apagado). fake-hwclockse usa en el RPi para imitar un reloj real. Creo que arrancaste tu RPi sin acceso a Internet o sin haber ntpdcomenzado a actualizar la hora. ¿Puedes confirmar eso?
Morgan Courbet

5

Raspbian Stretch: NTP no está instalado por defecto

Parece que hubo un pequeño cambio con Raspbian Stretch. En resumen, ntp ya no está instalado. Correr dpkg -l | grep ntpno devuelve nada.

Aparentemente, Stretch abandonó la ntpaplicación a favor de systemd. Consulte la man timesyncdentrada para obtener información específica sobre la configuración. timesyncdtodavía usa servidores ntp para actualizar la hora. Si desea configurar estos servidores manualmente, puede hacerlo en el /etc/systemd/timesyncd.confarchivo.


1
Después de hacer la edición, reinicie el servicio sudo systemctl restart timesyncdy luego revise los registros mediante journalctl -u timesyncd -ffirewalls corporativos que a veces bloquean el puerto. En tales casos, utilice la URL del servidor ntp corporativo proporcionado.
typelogic

Creo que el nombre correcto del demonio es systemd-timesyncd, por lo que el comando para reiniciar seríasystemctl restart systemd-timesyncd
chb

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.