Почему mangohud не работает с wine?

Вопрос или проблема

Я не могу заставить mangohud работать на играх, которые я запускаю через wine

Вот команда, которую я использовал:

mangohud wine <.exe_file>

Я также пробовал:

mangohud --dlsym wine deadcells

Вот вывод, который он выдает:

ERROR: ld.so: object 'libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object 'libMangoHud.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object 'libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object 'libMangoHud.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
002c:fixme:winediag:LdrInitializeThunk wine-staging 6.12 is a testing version containing experimental patches.
002c:fixme:winediag:LdrInitializeThunk Please mention your exact version when filing bug reports on winehq.org.
0034:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0034:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
006c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
006c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0074:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0074:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
INTEL-MESA: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0

006c:fixme:seh:virtual_unwind calling personality routine in system library not supported yet
006c:fixme:seh:virtual_unwind calling personality routine in system library not supported yet
006c:fixme:seh:virtual_unwind calling personality routine in system library not supported yet
006c:fixme:seh:virtual_unwind calling personality routine in system library not supported yet
006c:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
006c:err:winediag:nodrv_CreateWindow Unknown error (998).
006c:err:systray:initialize_systray Could not create tray window
0094:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0094:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
002c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
002c:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0024:err:environ:run_wineboot boot event wait timed out
0024:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
0024:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
00f0:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
00f0:fixme:font:get_name_record_codepage encoding 20 not handled, platform 1.
^C0104:err:sync:RtlpWaitForCriticalSection section 7BC69360 "dlls/ntdll/loader.c: loader_section" wait timed out in thread 0104, blocked by 0024, retrying (60 sec)
00f8:err:sync:RtlpWaitForCriticalSection section 000000007BC6B540 "dlls/ntdll/loader.c: loader_section" wait timed out in thread 00f8, blocked by 0034, retrying (60 sec)
0100:err:sync:RtlpWaitForCriticalSection section 000000007BC6B540 "dlls/ntdll/loader.c: loader_section" wait timed out in thread 0100, blocked by 002c, retrying (60 sec)

В моем случае это была именно эта проблема.

sudo pacman -S lib32-mangohud

В Ubuntu должен быть пакет для этого, и, возможно, он с таким же названием.

Обновлено для Ubuntu:

Согласно документации MangoHUD, лучше установить его так:

sudo apt install mangohud mangohud:i386

Ответ или решение

MangoHud – это полезный инструмент, который позволяет геймерам получать разнообразную информацию о производительности их систем, такую как количество кадров в секунду, загрузка процессора, потребление видеопамяти и другие метрики. Он особенно популярен среди пользователей Linux благодаря своей возможности предоставлять эту информацию как для нативных игр, так и для игр, запускаемых через Wine, который позволяет запускать приложения Windows в среде Linux.

Теория

Основная проблема, с которой вы столкнулись, связана с тем, что MangoHud не работает с Wine. Это проявляется через сообщения об ошибках, которые информируют о том, что библиотеки libMangoHud_dlsym.so и libMangoHud.so не могут быть предзагружены. Эти сообщения говорят о том, что MangoHud пытается использовать библиотеки, которые отсутствуют или неправильно установлены в вашей системе.

Пример

Как видно из вашего командного вывода, MangoHud генерирует ошибки, касающиеся LD_PRELOAD. Это указывает на то, что исполняемая среда не может найти нужные библиотеки MangoHud. В большинстве случаев это связано с тем, что на вашей системе отсутствуют 32-битные версии этих библиотек, которые необходимы для корректной работы с 32-битными приложениями, такими как Wine.

Команды, которые вы использовали:

mangohud wine <.exe_file>
mangohud --dlsym wine deadcells

Обе команды ведут к ошибкам из-за отсутствия необходимых библиотек, как видно из вашего вывода ошибок:

ERROR: ld.so: object 'libMangoHud_dlsym.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.

Эти ошибки обычно связаны с тем, что MangoHud не установлен или не настроен должным образом для работы с 32-битными программами.

Применение

Для того чтобы MangoHud мог успешно работать с Wine, вам необходимо установить 32-битные версии необходимых библиотек MangoHud. Это можно сделать, следуя следующим шагам:

  1. Проверьте, установлены ли необходимые 32-битные библиотеки. На дистрибутивах, таких как Arch Linux, это можно сделать с помощью команды:

    sudo pacman -S lib32-mangohud
  2. Для пользователей Ubuntu и других дистрибутивов на базе Debian. Убедитесь, что у вас установлены как стандартные, так и 32-битные библиотеки MangoHud:

    sudo apt install mangohud mangohud:i386
  3. Убедитесь, что у вас установлены все зависимости для Wine и MangoHud. Это может включать пакеты, такие как lib32-vulkan-icd-loader для Vulkan-совместимых игр.

  4. Проверьте настройки вашего LD_PRELOAD. Убедитесь, что он правильно указывает на нахождение 32-битных библиотек. В настройках конфигурации может потребоваться добавить путь до нужных библиотек.

  5. Перезапустите ваши игры и убедитесь, что ошибка устранена. Если проблема сохраняется, проверьте лог Wine, чтобы понять, может ли там быть другая причина проблемы.

Заключение

Проблемы с работой MangoHud в связке с Wine часто связаны с неправильной установкой или конфигурацией нужных библиотек. Убедившись, что все необходимые 32-битные библиотеки установлены и корректно сконфигурированны, вы сможете получить все преимущества использования MangoHud на Linux системе. Регулярно проверяйте документацию для вашей конкретной версии ОС и Wine, так как обновления и изменения могут вносить коррективы в текущие настройки и зависимости.

Оцените материал
Добавить комментарий

Капча загружается...