如何在 Ubuntu Core 中设置 RTC 时钟?

如何在 Ubuntu Core 中设置 RTC 时钟?

我有一台 Raspberry Pi 3,可以及时记录数据,因此我需要一个 RTC 时钟

我已附加dtoverlay=i2c-rtc,ds3231到 config.txt。

hwclock.service是完美的,但是它被掩盖了,我无法取消掩盖。

hwclock -s工作正常,但是当我尝试从受限的快照执行时,我得到了这个(时间控制已连接):

ed10vi86@localhost:~$ sudo hwclock.hwclock-test -s --debug
hwclock from util-linux 2.27.1
Using the /dev interface to the clock.
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
/dev/rtc does not have interrupt functions. Waiting in loop for time from /dev/rtc to change
...got clock tick
Time read from Hardware Clock: 2017/06/29 10:49:54
Hw clock time : 2017/06/29 10:49:54 = 1498733394 seconds since 1969
Time since last adjustment is 1498733394 seconds
Calculated Hardware Clock drift is 0.000000 seconds
Calling settimeofday:
    tv.tv_sec = 1498733394, tv.tv_usec = 0
    tz.tz_minuteswest = -120
/snap/hwclock/x1/hwclock-test: line 2:  1656 Bad system call         hwclock $@

以及 snappy-debug.security scanlog:

= Seccomp =
Time: Jun 29 12:49:54
Log: auid=1000 uid=0 gid=0 ses=1 pid=1656 comm="hwclock" exe="/sbin/hwclock" sig=31 arch=40000028 79(settimeofday) compat=0 ip=0x76f0c246 code=0x0
Syscall: settimeofday

在开发模式下运行良好

答案1

我知道这有点延迟响应,但我想我会分享我的解决方案。似乎您可以“重新创建”服务hwclock并获得所需的结果,如下所示:

为了揭露服务,相应的定义文件需要存在于 中/etc/systemd/system。幸运的是,在 Ubuntu Core 中,此目录被映射到/writable/system-data/etc/systemd/system- 因此,您可以在该可写目录中创建一个名为 的文件,hwclock.service其中包含以下内容(如果需要,可以进行调整):

[Unit]
Description=Hardware clock synchronization
[Service]
Type=oneshot
ExecStart=/sbin/hwclock --hctosys --utc --adjfile=/writable/system-data/etc/adjtime
ExecStop=/sbin/hwclock --systohc --utc --adjfile=/writable/system-data/etc/adjtime
[Install]
WantedBy=multi-user.target

然后您可以正常取消屏蔽并启用该服务:

sudo systemctl unmask hwclock
sudo systemctl enable hwclock

相关内容