시스템 시간 업데이트 후 장치 부팅

시스템 시간 업데이트 후 장치 부팅

Arch Linux를 실행하는 ODROID-C2 시스템이 있습니다. 을 실행하면 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에는 배터리가 없는 것 같아요. 고쳐 쓰다:분명히 이것은 쉬운 일이 아닙니다.

게다가 타이머 등이 ​​엉망이 될 수 있으므로 시간을 수정한 후에만 서비스를 시작하고 싶습니다. 이를 달성하기 위해 다음을 수행할 수 있다는 것을 읽었습니다.

  1. 달리기:systemctl enable systemd-time-wait-sync.service
  2. Put: 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

BIOS 시계가 없으면 불가능할 수도 있습니다. 저는 ODROID-C2에 익숙하지 않지만 다른 임베디드 장치에 대해 작업한 적이 있습니다.

커널이 부팅되자마자 시스템이 로깅을 시작하므로, Journalctl 출력에는 올바른 시간을 얻을 수 있을 때까지 시스템 하드웨어 시계에서 가져온 모든 날짜 스탬프가 포함됩니다. 기기에 배터리가 없으므로 날짜를 저장할 수 없습니다. 네트워크가 복원되고 NTP 서버에서 시간을 검색할 때까지 시스템에 문제가 발생합니다.

다른 방법이 있을 수도 있지만 하드웨어 초기화 중에 BIOS가 시간을 제공하지 않는 것 같습니다.

관련 정보