Вопрос или проблема
PCSX2 — это самая высокая версия, которую может запустить старый процессор, из-за отсутствия инструкций, необходимых для более высоких версий (ssse4 и т.д., поэтому на некоторых сайтах неверно указаны рекомендации по процессору).
Без проблем, на официальном сайте PCSX2 предлагается версия V1.6 в формате appimage (только).
На той же машине “pcsx2-v1.6.0-linux-AppImage-32bit.AppImage” хорошо работает на Ubuntu 20.04.
Но не на Ubuntu 24.04 (свежая установка), с тем же BIOS и настройками. Драйвер для моей gtx770 одинаков для обеих систем.
Вот на Ubuntu 24.04:
:~$ glxinfo | grep 'version'
server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
OpenGL core profile version string: 4.6.0 NVIDIA 470.256.02
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL version string: 4.6.0 NVIDIA 470.256.02
OpenGL shading language version string: 4.60 NVIDIA
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 470.256.02
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
GL_EXT_shader_implicit_conversions, GL_EXT_shader_integer_mix,
Вывод терминала:
$ ./pcsx2-v1.6.0-linux-AppImage-32bit.AppImage
00:09:56: Warning: Mismatch between the program and library build versions detected.
The library used 3.0 (wchar_t,compiler with C++ ABI 1011,wx containers,compatible with 2.8),
and your program used 3.0 (wchar_t,compiler with C++ ABI 1014,wx containers,compatible with 2.8).
Interface is initializing. Entering Pcsx2App::OnInit!
Applying operating system default language...
SetLanguage: 'French' [fr_FR] is not supported by the operating system
Command line parsing...
Command line parsed!
Releasing host memory maps for virtual systems...
Консоль PCSX2:
PCSX2 1.6.0-20200505220805- compiled on May 14 2020
Savestate version: 0x9a0e0000
Host Machine Init:
Operating System = Linux 6.8.0-52-generic x86_64
Physical RAM = 7925 MB
CPU name = AMD Phenom(tm) II X4 945 Processor
Vendor/Model = AuthenticAMD (stepping 03)
CPU speed = 3.837 ghz (4 logical threads)
x86PType = Standard OEM
x86Flags = 178bfbff 00802009
x86EFlags = efd3fbff
x86 Features Detected:
SSE2.. SSE3
SSE4a
SetLanguage: 'French' [fr_FR] is not supported by the operating system
Installing POSIX SIGSEGV handler...
Reserving memory for recompilers...
Loading plugins from /tmp/.mount_pcsx2-xaxmDS/usr/lib32/pcsx2...
Bound GS: libGSdx.so [GSdx (GCC 10.1.0 SSE2/SSE2) 1.2.0]
Bound PAD: libonepad.so [OnePAD 20200505220805 2.0.0]
Bound SPU2: libSPU2null.so [SPU2null 0.8.0]
Bound CDVD: libCDVDnull.so [CDVDnull Driver 20200505220805 0.6.0]
Bound USB: libUSBnull-0.7.0.so [USBnull Driver 20200505220805 0.7.0]
Bound FW: libFWnull-0.7.0.so [FWnull Driver 20200505220805 0.7.0]
Bound DEV9: libdev9null-0.5.0.so [DEV9null Driver 20200505220805 0.5.0]
Plugins loaded successfully.
(GameDB) 9858 games on record (loaded in 184ms)
HLE Notice: ELF does not have a path.
Initializing plugins...
Init GS
Init PAD
Init SPU2
Init CDVD
Init USB
Init FW
Init DEV9
Plugins initialized successfully.
Patches: No CRC found, using 00000000 instead.
Opening plugins...
Opening GS
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Failed to create the opengl context. Check your drivers support openGL 3.3. Hint: opensource drivers don't
Closing plugins...
Closing GS
Plugins closed successfully.
Shutting down plugins...
Plugins shutdown successfully.
(p) GS plugin failed to open!(thread:MTGS)(thread:EE Core)
Разработчики PCSX2 не могут помочь со старой версией. Я также знаю, что PCSX2 может сказать “компьютер может иметь недостаточные ресурсы”, когда просто есть ошибка в пути к файлу, в GNU.
Поэтому я спрашиваю, почему это не работает в 24.04 и как решить это? (вместо того чтобы пытаться его скомпилировать)
Flatpack не достаточно старый.
Snap должен меня спасти (потому что он с 2019 года, если сайт snapcraft не ошибается), но он просто не запускается!
:~$ snap run pcsx2-tabetai
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
update-mime-database.real: error while loading shared libraries: libpcre.so.3: cannot open shared object file: No such file or directory
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
gtk-update-icon-cache: error while loading shared libraries: libpcre.so.3: cannot open shared object file: No such file or directory
WARNING: icon cache generation failed for /home/x24/snap/pcsx2-tabetai/303/.local/share/icons/Adwaita
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
gtk-update-icon-cache: error while loading shared libraries: libpcre.so.3: cannot open shared object file: No such file or directory
WARNING: icon cache generation failed for /home/x24/snap/pcsx2-tabetai/303/.local/share/icons/DMZ-Black
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
gtk-update-icon-cache: error while loading shared libraries: libpcre.so.3: cannot open shared object file: No such file or directory
WARNING: icon cache generation failed for /home/x24/snap/pcsx2-tabetai/303/.local/share/icons/DMZ-White
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
gtk-update-icon-cache: error while loading shared libraries: libpcre.so.3: cannot open shared object file: No such file or directory
WARNING: icon cache generation failed for /home/x24/snap/pcsx2-tabetai/303/.local/share/icons/Humanity
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
gtk-update-icon-cache: error while loading shared libraries: libpcre.so.3: cannot open shared object file: No such file or directory
WARNING: icon cache generation failed for /home/x24/snap/pcsx2-tabetai/303/.local/share/icons/Humanity-Dark
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
gtk-update-icon-cache: error while loading shared libraries: libpcre.so.3: cannot open shared object file: No such file or directory
WARNING: icon cache generation failed for /home/x24/snap/pcsx2-tabetai/303/.local/share/icons/LoginIcons
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
gtk-update-icon-cache: error while loading shared libraries: libpcre.so.3: cannot open shared object file: No such file or directory
WARNING: icon cache generation failed for /home/x24/snap/pcsx2-tabetai/303/.local/share/icons/hicolor
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
gtk-update-icon-cache: error while loading shared libraries: libpcre.so.3: cannot open shared object file: No such file or directory
WARNING: icon cache generation failed for /home/x24/snap/pcsx2-tabetai/303/.local/share/icons/ubuntu-mono-dark
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
gtk-update-icon-cache: error while loading shared libraries: libpcre.so.3: cannot open shared object file: No such file or directory
WARNING: icon cache generation failed for /home/x24/snap/pcsx2-tabetai/303/.local/share/icons/ubuntu-mono-light
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/snap/pcsx2-tabetai/303/lib/bindtextdomain.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
/snap/pcsx2-tabetai/303/bin/desktop-launch: line 544: /snap/pcsx2-tabetai/303/usr/lib/x86_64-linux-gnu/libgtk2.0-0/gtk-query-immodules-2.0: No such file or directory
/snap/pcsx2-tabetai/303/bin/PCSX2: error while loading shared libraries: libpcre.so.3: cannot open shared object file: No such file or directory
Ответ или решение
Проблема с запуском PCSX2 версии 1.6.0 на Ubuntu 24.04, на том же оборудовании, на котором она успешно работает на Ubuntu 20.04, может быть связана с несколькими факторами, связанными с обновлениями в операционной системе, драйверами и библиотеками. Чтобы лучше понять ситуацию и предложить возможные решения, следует рассмотреть несколько теоретических аспектов, на реальных примерах проблемных мест, и применить полученные знания для практического решения.
Теория
-
Совместимость с библиотеками: Обновления в системных библиотеках между версиями Ubuntu могут вызывать несоответствия, особенно если зависит от специфических версий. В приведенном журнале видно, что существует проблема с поддержкой OpenGL, не найден подходящий
fbConfig
или визуальный формат, что указывает на несовместимость драйвера OpenGL. -
Обновления драйверов: Обновления в графических драйверах системы могут приводить к измененному поведению приложений, зависимых от графических библиотек. Драйвера NVIDIA, используемые в системе, хотя и одной версии, могут иметь разные зависимости и конфигурационные параметры в разных версиях ОС.
-
Совместимость архитектуры: Проблемы с контролем версий архитектуры, как в случае 32-битовой сборки приложения, могут возникать из-за несоответствия библиотек, так как современные дистрибутивы постепенно уходят от поддержки 32-битных приложений и библиотек.
-
AppImage и Flatpak/Snap: Форматы дистрибуции приложений, такие как AppImage, Flatpak и Snap, обеспечивают определенный уровень изоляции от системных библиотек. Однако, как видно из журналов, они тоже могут испытывать проблемы с зависимостями и версиями библиотек, не найденных на платформе.
Пример
Из реального примера мы можем видеть, что при запуске AppImage возникает ошибка создания OpenGL контекста — это указывает на невозможность правильно инициализировать графический интерфейс. Подобные ошибки обычно обусловлены измененными или отсутствующими компонентами в обновленных библиотеках или неисправностями в версии драйвера.
В то же время при попытке запуска через Snap возникают многочисленные ошибки связывания LD, указывающие на проблему с библиотеками, такими как libpcre.so.3
. Эти ошибки могут сигнализировать о несоответствиях архитектуры и неудачных загрузках библиотек, необходимых для их инициализации.
Применение
-
Проверка графических драйверов: Убедитесь, что драйверы NVIDIA правильно установлены и конфигурированы. Можете попробовать переустановить их или даже откатить до более старых версий, если это возможно. Полезно также удостовериться, что OpenGL поддерживается корректно установленной версией драйвера.
-
Установка недостающих библиотек: Для устранения ошибок с
LD_PRELOAD
, попробуйте дополнительно установить необходимые 32-битные библиотеки, которые могут всё ещё присутствовать в пакетных репозиториях Ubuntu (например,libpcre
).sudo apt-get install libpcre3:i386
-
Изменение языка системы или настройки языковой поддержки: Спути инициализации "SetLanguage" при необходимости, попробуйте изменить или специфицировать языковые настройки, чтобы избежать чем-то вызванной ошибки несоответствия языка, как из журнала (например,
SetLanguage: 'French' [fr_FR] is not supported
). -
Изолированное окружение: Используйте изолированные среды, такие как Docker, для запуска приложений со старым набором зависимостей. Это поможет осуществить запуск на более новых версиях ОС. Создайте Docker-контейнер с Ubuntu 20.04 и попробуйте установить PCSX2, используя привычный стек зависимостей.
-
Пересборка из исходников: В крайнем случае, когда он неоднократно не работает, настоятельно рекомендуется попробовать собрать PCSX2 из исходников, при этом будут учтены актуальные зависимости и библиотеки.
-
Обратитесь за поддержкой: Если необходимые библиотеки не могут быть найдены или исправлены, возможно искренние пользователи соучаствуют в таких форумах, как реддит или особо посвященные каналы поддержки сообщества PCSX2.
Позже, подытожив информацию, можно прийти к выводу, что использование более старых программных решений на новых системах может потребовать дополнительных шагов по адаптации и изучению уникальных точек зависимости, которые могут оказаться критическими.