
Tengo una máquina ODROID-C2 en la que ejecuto Arch Linux. Cuando ejecuto journalctl -b
, puedo ver que inicialmente la hora no es correcta:
-- Logs begin at Thu 2020-02-13 20:01:10 GMT, end at Fri 2020-03-20 17:20:14 GMT. --
Feb 13 20:01:15 moby kernel: Initializing cgroup subsys cpuset
Feb 13 20:01:15 moby kernel: Initializing cgroup subsys cpu
Feb 13 20:01:15 moby kernel: Initializing cgroup subsys cpuacct
Feb 13 20:01:15 moby kernel: Linux version 3.16.81-1-ARCH (builduser@
Posteriormente, durante el proceso de arranque, se actualiza la hora:
Feb 13 20:01:26 moby dbus-daemon[246]: [system] Activating via systemd: service name='org.freedesktop.hostname1' unit='dbus-org.freedesktop.hostname1.service' requested by ':1.0' (uid=981 pid=203 comm="/usr/lib/systemd/systemd-networkd ")
Feb 13 20:01:26 moby systemd[1]: Starting Hostname Service...
Mar 20 17:12:59 moby systemd-timesyncd[234]: Initial synchronization to time server 85.199.214.99:123 (0.arch.pool.ntp.org).
Mar 20 17:13:02 moby kernel: audit_printk_skb: 36 callbacks suppressed
1 pregunta:Me gustaría que la hora fuera (casi) correcta desde el principio. ¿Hay alguna manera de hacer esto con un ODROID-C2? Tengo entendido que se requiere una batería para que esto funcione y no creo que un ODROID-C2 la tenga. Actualizar:Aparentemente, eso no es algo que se pueda hacer fácilmente.
Lo más importante es que quiero asegurarme de que los servicios solo se inicien una vez que se corrija la hora, ya que puede confundir a los temporizadores, etc. Leí que se puede hacer lo siguiente para lograrlo potencialmente:
- Correr:
systemctl enable systemd-time-wait-sync.service
- Poner:
After=time-sync.target
en el archivo de servicio.
2. Pregunta:¿Es eso correcto?
Estoy muy confundido porque no creo que esto sea lo que está pasando. Tengo el siguiente archivo de servicio:
[Unit]
Description=Run check-updates.service every Friday at 8pm
After=time-sync.target
[Timer]
OnCalendar=Fri 20:00
Persistent=true
[Install]
WantedBy=timers.target
Pero puedo leer lo siguiente para journalctl -b
:
Feb 13 20:01:25 moby systemd[262]: check-updates.timer: Not using persistent file timestamp Fri 2020-03-20 17:01:56 GMT as it is in the future.
Feb 13 20:01:25 moby systemd[262]: Started Run check-updates.service every Friday at 8pm.
que es claramente antes de que la hora se haya actualizado a la hora correcta.
3. Pregunta:¿Cómo puedo depurar aún más esto?
Respuesta1
Puede que esto no sea algo que puedas hacer sin el reloj del BIOS. No estoy familiarizado con ODROID-C2 pero he trabajado en otros dispositivos integrados.
Dado que el sistema comenzará a registrar tan pronto como aparezca el kernel, la salida de journalctl tendrá marcas de fecha de lo que obtenga del reloj del hardware del sistema hasta que pueda corregir la hora. Dado que su dispositivo no tiene batería, no puede conservar la fecha. Su sistema pasará malos momentos hasta que la red se active y obtenga tiempo del servidor NTP.
Puede haber otra forma, pero lo dudo sin que el BIOS proporcione tiempo en el inicio del hardware.