Мне было поручено запустить наше программное обеспечение только для Windows в дистрибутиве Linux. Поэтому я решил запустить его на Wine в Ubuntu 18.04. Ubuntu из сетевой установки, так что у меня почти ничего нет, кроме X11, openbox, и я все настраиваю через xterm.

В Windows наше программное обеспечение получает время от нашего оборудования (работает на IRIG-B от спутникового GPS) и изменяет системное время, чтобы синхронизировать время компьютера и время оборудования. Программное обеспечение проверяет и пытается это каждые 5 минут.

Я оставил программное обеспечение, работающее на Wine, на выходных с wine "path" не отключая процесс от xterm, и когда я вернулся, я заметил, что получаю кучу этих сообщений в xterm, каждые 5 минут или около того:

err:ntdll:NtSetSystemTime Cannot set time to Mon Jun 18 09:49:19 2018
, time adjustment -3153: Operation not permitted

Поэтому я проверяю источник вина NtSetSystemTime и вижу, что это оболочка для settimeofday . Поэтому я смотрю man-страницу settimeofday и там говорится, что для этого требуется CAP_SYS_TIME . Поэтому я setcap cap_sys_time+ep для wine-stable , wineserver и исполняемого программного обеспечения, но это не работает.

Я пробовал комбинацию +ep , +ei и +eip , но это тоже не работает. Я выключил NTP с помощью timedatectl set-ntp 0 и попытался включить и выключить set-local-rtc .

Я также попытался изменить системное время примерно на 10 минут, чтобы посмотреть, изменит ли это его, но это тоже ничего не раскрыло.

У меня кончились вещи, чтобы попробовать. Что мне не хватает? Мне просто нужно, чтобы программа смогла изменить системное время.

1 ответ1

0

Я понял. Покопавшись в поисках новых вещей, связанных с вином, я понял, что на самом деле в /usr/lib/wine есть еще куча вещей, связанных с вином .

Несмотря на то, which wine возвращает /usr/bin/wine который ссылается на /usr/bin/wine-stable , вы действительно хотите установить /setcap /usr/lib/wine/wine .

В общем, это сработало для меня:

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

Я проверил их все, выяснил, кому из них не нужна кепка, и пришел к выводу, что только эта действительно нужна кепка.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .