Eu tenho a tarefa de executar nosso software somente para Windows em uma distribuição Linux. Então, decidi usar o vinho no Ubuntu 18.04. O Ubuntu é de uma net-install, então eu praticamente não tenho nada além do X11, openbox, e eu configuro tudo através do xterm.
No Windows, nosso software recebe o tempo do nosso equipamento (executado no IRIG-B do satélite GPS) e altera a hora do sistema, para que a hora do computador e a hora do equipamento estejam sincronizadas. O software verifica e tenta isso a cada 5 minutos.
Deixei o software rodando em vinho no fim de semana com wine "path"
sem separar o processo do xterm e quando voltei notei que tinha recebido um monte dessas mensagens no xterm, a cada 5 minutos ou mais:
err:ntdll:NtSetSystemTime Cannot set time to Mon Jun 18 09:49:19 2018
, time adjustment -3153: Operation not permitted
Então eu verifico a fonte de vinho de NtSetSystemTime
e vejo que é um wrapper para settimeofday
. Então eu olho man page de settimeofday
e ele diz que requer CAP_SYS_TIME
. Então, eu setcap
com cap_sys_time+ep
para wine-stable
, wineserver
e o software executável, mas isso não funciona.
Eu tentei uma combinação de +ep
, +ei
e +eip
, mas isso também não funciona. Desativei o NTP usando timedatectl set-ntp 0
e tentei ativar e desativar set-local-rtc
.
Eu também tentei alterar a hora do sistema para cerca de 10 minutos para ver se ela mudaria, mas isso também não revelou nada.
Eu fiquei sem coisas para tentar. o que estou perdendo? Eu só preciso conseguir que o software mude a hora do sistema.