Как настроить часы RTC в Ubuntu Core?
У меня есть 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
Отлично работает в devmode
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