Добавить в корзинуПозвонить
Найти в Дзене
Toxblh

Совершенно спонтанная заметка, но, может, кому-то пригодится

Итак, у нас есть руль от logitech и Euro Truck Simulator 2. Предположим, что вы уже поставили и настроили Oversteer, но вот беда - при запуске игры все ваши настройки сбрасываются. Искали решение, чтоб постоянно не запускать Oversteer руками после запуска игры? Их есть у меня. Итак, после часа эксперементов и чтения логов я понял следующую мансу: Steam запускает игры в своём runtime-окружении, подменяя системные библиотеки. Из-за этого flatpak не может найти нужные библиотеки и падает с ошибкой вида: version `CURL_GNUTLS_4' not found Решение — очистить окружение Steam перед запуском flatpak через env -i, передав только необходимые переменные. Магия вот тут: %command% & sleep 30 && env -i HOME=$HOME DISPLAY=$DISPLAY DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS PATH=/usr/bin:/bin LD_PRELOAD="" /usr/bin/flatpak run io.github.berarma.Oversteer -p "my" Здесь %command% запускает игру в фоне, через 30 секунд Oversteer применяет профиль (у меня он называеется my) в чистом окружении б

Совершенно спонтанная заметка, но, может, кому-то пригодится.

Итак, у нас есть руль от logitech и Euro Truck Simulator 2. Предположим, что вы уже поставили и настроили Oversteer, но вот беда - при запуске игры все ваши настройки сбрасываются. Искали решение, чтоб постоянно не запускать Oversteer руками после запуска игры? Их есть у меня.

Итак, после часа эксперементов и чтения логов я понял следующую мансу: Steam запускает игры в своём runtime-окружении, подменяя системные библиотеки. Из-за этого flatpak не может найти нужные библиотеки и падает с ошибкой вида:

version `CURL_GNUTLS_4' not found

Решение — очистить окружение Steam перед запуском flatpak через env -i, передав только необходимые переменные. Магия вот тут:

%command% & sleep 30 && env -i HOME=$HOME DISPLAY=$DISPLAY DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS PATH=/usr/bin:/bin LD_PRELOAD="" /usr/bin/flatpak run io.github.berarma.Oversteer -p "my"

Здесь %command% запускает игру в фоне, через 30 секунд Oversteer применяет профиль (у меня он называеется my) в чистом окружении без вмешательства Steam runtime. Задержка нужна чтобы дать игре время полностью инициализировать руль.

Если логировать это дело дальше, то всплывёт

ERROR: ld.so: object '/home/mikanight/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

Эта ошибка возникает потому что Steam пытается подгрузить свой Game Overlay (тот самый оверлей с Shift+Tab) в виде 32-битной библиотеки (ELFCLASS32), но процесс Oversteer — 64-битный (ELFCLASS64). Они просто несовместимы по разрядности.

Ignored в конце сообщения — ключевое. Это не наша ошибка и не краш, тут вам в терминале объясняют, что ошибка проигнорирована и работа продолжается. На Oversteer это никак не влияет — ему оверлей Steam и не нужен.