
Eu tenho uma máquina ODROID-C2 na qual estou executando o Arch Linux. Quando executo journalctl -b
, posso ver que inicialmente a hora está errada:
-- 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 o processo de inicialização, a hora é atualizada:
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. Pergunta:Eu gostaria que o tempo estivesse (quase) correto desde o início. Existe alguma maneira de fazer isso com um ODROID-C2? Entendo que é necessária uma bateria para que isso funcione e não acho que um ODROID-C2 tenha isso. Atualizar:Aparentemente, isso não é algo que possa ser feito facilmente.
Mais importante ainda, quero ter certeza de que os serviços só serão iniciados quando o horário for corrigido, pois isso pode confundir os temporizadores, etc. Li que o seguinte pode ser feito para conseguir isso:
- Correr:
systemctl enable systemd-time-wait-sync.service
- Coloque:
After=time-sync.target
no arquivo de serviço.
2. Pergunta:Isso está correto?
Estou muito confuso porque não acho que seja isso que esteja acontecendo. Eu tenho o seguinte arquivo de serviço:
[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
Mas posso ler o seguinte 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.
o que é claramente antes de a hora ser atualizada para a hora correta.
3. Pergunta:Como posso depurar ainda mais isso?
Responder1
Isso pode não ser algo que você possa fazer sem o relógio do BIOS. Não estou familiarizado com o ODROID-C2, mas trabalhei em alguns outros dispositivos incorporados.
Como o sistema começará a registrar assim que o kernel for ativado, a saída do journalctl terá carimbos de data de tudo o que obtiver do relógio do hardware do sistema até que possa corrigir a hora. Como o seu dispositivo não possui bateria, ele não pode persistir a data. Seu sistema passará por momentos difíceis até que a rede seja ativada e obtenha tempo do servidor NTP.
Pode haver outra maneira, mas duvido que o BIOS não forneça tempo na inicialização do hardware.