Como configurar um relógio RTC no Ubuntu Core?

0

Eu tenho um Raspberry Pi 3 que registra dados no tempo, então eu preciso de um relógio RTC

Eu anexei dtoverlay=i2c-rtc,ds3231 ao config.txt.

hwclock.service seria perfeito, mas é mascarado e não consigo desmascará-lo.

hwclock -s funciona bem, mas quando eu tento executar a partir de um snap confinado eu recebo isso (o controle de tempo está conectado):

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 $@

E 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

Funciona bem no devmode

    
por ed10vi 29.06.2017 / 13:52

1 resposta

0

Sei que isso é uma resposta demorada, mas imaginei que compartilharia minha solução. Parece que você pode "recriar" o serviço hwclock e obter o resultado desejado, da seguinte maneira:

Para desmascarar um serviço, o arquivo de definição correspondente precisa estar presente em /etc/systemd/system . Felizmente, no Ubuntu Core este diretório é mapeado para /writable/system-data/etc/systemd/system - então nesse diretório gravável você pode criar um arquivo chamado hwclock.service com o seguinte conteúdo (ajustado se desejado):

[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

Você pode desmascarar e ativar o serviço normalmente:

sudo systemctl unmask hwclock
sudo systemctl enable hwclock
    
por Svet 30.12.2017 / 02:40