У меня есть малина 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
Я знаю, что это отложенный ответ, но я решил поделиться своим решением. Кажется, что вы можете «воссоздать» сервис 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
Я знаю, что это отложенный ответ, но я решил поделиться своим решением. Кажется, что вы можете «воссоздать» сервис 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