Вопрос или проблема
Я не могу заставить 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. Это можно сделать, следуя следующим шагам:
-
Проверьте, установлены ли необходимые 32-битные библиотеки. На дистрибутивах, таких как Arch Linux, это можно сделать с помощью команды:
sudo pacman -S lib32-mangohud
-
Для пользователей Ubuntu и других дистрибутивов на базе Debian. Убедитесь, что у вас установлены как стандартные, так и 32-битные библиотеки MangoHud:
sudo apt install mangohud mangohud:i386
-
Убедитесь, что у вас установлены все зависимости для Wine и MangoHud. Это может включать пакеты, такие как
lib32-vulkan-icd-loader
для Vulkan-совместимых игр. -
Проверьте настройки вашего LD_PRELOAD. Убедитесь, что он правильно указывает на нахождение 32-битных библиотек. В настройках конфигурации может потребоваться добавить путь до нужных библиотек.
-
Перезапустите ваши игры и убедитесь, что ошибка устранена. Если проблема сохраняется, проверьте лог Wine, чтобы понять, может ли там быть другая причина проблемы.
Заключение
Проблемы с работой MangoHud в связке с Wine часто связаны с неправильной установкой или конфигурацией нужных библиотек. Убедившись, что все необходимые 32-битные библиотеки установлены и корректно сконфигурированны, вы сможете получить все преимущества использования MangoHud на Linux системе. Регулярно проверяйте документацию для вашей конкретной версии ОС и Wine, так как обновления и изменения могут вносить коррективы в текущие настройки и зависимости.