setcap cap_sys_time não funciona para vinho

0

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.

    
por skwear 25.06.2018 / 20:56

1 resposta

0

Eu percebi isso. Depois de procurar por mais coisas relacionadas ao vinho, percebi que há muito mais coisas relacionadas ao vinho em /usr/lib/wine .

Mesmo que which wine retorne /usr/bin/wine , que é um link simbólico para /usr/bin/wine-stable , o que você realmente deseja setcap é /usr/lib/wine/wine .

Então tudo isso funcionou para mim:

sudo setcap cap_sys_time+ep /usr/lib/wine/wine

Eu testei todos eles, e descobri quais não precisavam de limite, e concluí que apenas aquele realmente precisa de limite.

    
por 26.06.2018 / 00:06