
У меня есть машина ODROID-C2, на которой я запускаю Arch Linux. Когда я запускаю journalctl -b
, я вижу, что изначально время неправильное:
-- 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@
Позже, во время процесса загрузки, время обновляется:
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. Вопрос:Я хотел бы, чтобы время было (близко к) правильному с самого начала. Есть ли способ сделать это с ODROID-C2? Насколько я понимаю, для этого требуется батарея, но я не думаю, что у ODROID-C2 она есть. Обновлять:Видимо, это не так-то просто сделать.
Самое главное, я хочу убедиться, что службы запускаются только после корректировки времени, так как это может сбить с толку таймеры и т. д. Я читал, что для достижения этой цели можно сделать следующее:
- Бегать:
systemctl enable systemd-time-wait-sync.service
- Поместить:
After=time-sync.target
в служебное досье.
2. Вопрос:Это верно?
Я очень сбит с толку, потому что я не думаю, что это то, что происходит. У меня есть следующий файл службы:
[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
Но я могу прочитать следующее 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.
что явно произошло до того, как время было обновлено до правильного.
3. Вопрос:Как мне это еще отладить?
решение1
Это может быть не то, что вы можете сделать без часов биоса. Я не знаком с ODROID-C2, но работал с некоторыми другими встроенными устройствами.
Поскольку система начнет вести журнал сразу после загрузки ядра, вывод journalctl будет содержать отметки даты, которые она получает от системных аппаратных часов, пока не сможет скорректировать время. Поскольку у вашего устройства нет батареи, оно не может сохранять дату. Ваша система будет иметь плохие времена, пока сеть не заработает и не получит время от NTP-сервера.
Возможно, есть другой способ, но я сомневаюсь, что он возможен без BIOS, выделяющего время на инициализацию оборудования.