Autor Wątek: [SOLVED]Baldurs Gate i libssl  (Przeczytany 703 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Premislaus

  • SUSE User
  • *
  • Wiadomości: 61
[SOLVED]Baldurs Gate i libssl
« dnia: Czerwiec 19, 2018, 03:55:30 pm »
Kupiłem kiedyś Baldurs Gate, niedawno zainstalowałem i nie jestem w stanie uruchomić gry. Przejrzałem już chyba wszystkie wątki na Google. Pierwotnie program pluł się o trzy biblioteki. Do dwóch zrobiłem symlinki i jest chyba OK, ale libssl nie działa. Zainstalowałem wersję 32-bitową i dalej nic. Pobrałem bibliotekę z Ubuntu, wziąłem liba ze steam runtime i utworzyłem w katalogu gry folder lib, i dalej nic.

https://www.gogwiki.com/wiki/Infinity_Engine#Game_fails_to_start_and_prints_.22error_while_loading_shared_libraries.22

Próbowałem wpisywać LD_PRELOAD i LD_LIBRARY_PATH do skryptu gry, wreszcie do własnego skryptu (znalazłem gdzieś na sieci i zmieniłem ścieżki na odpowiadające porządkowi na moim dysku). Próbowałem załadować grę z biblioteką z konsoli i wciąż gra zwraca coś takiego:

Running Baldur's Gate Enhanced Edition
./BaldursGate: /usr/lib/libssl.so.1.0.0: version `OPENSSL_1.0.1' not found (required by ./BaldursGate)

Znalazłem gdzieś w sieci, że GOG czy Beamdog (autorzy portu) usunęli dostarczanie bibliotek wraz z grą, gdyż rodziło to problemy i  przez to chyba katalog lib (w folderze z grą) nie działa.

Pozostaje mi tylko nadpisać liba w /usr/lib/ wersją z Ubuntu (myślę, że może zadziałać), kupić grę jeszcze raz, ale na Steam (uruchamiam z parametrem ładowania bibliotek systemowych), zainstalować windowsowego builda na Wine.

Tak wygląda oryginalny skrypt uruchamiający grę:

#!/bin/bash
# GOG.com (www.gog.com)
# Baldurs Gate Enhanced Edition

# Initialization
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd "${CURRENT_DIR}"
source support/gog_com.shlib

# Game info
GAME_NAME="$(get_gameinfo 1)"
VERSION="$(get_gameinfo 2)"
VERSION_DEV="$(get_gameinfo 3)"

# Actions
run_game() {
 echo "Running ${GAME_NAME}"
 cd game
 ./"BaldursGate"
}

default() {
  run_game
}

# Options
define_option "-s" "--start" "start ${GAME_NAME}" "run_game" "$@"

# Defaults
standard_options "$@"


ldd zwraca:

premislaus@linux-aklu:~/GOG Games/Baldurs Gate Enhanced Edition/game> ldd BaldursGate
./BaldursGate: /usr/lib/libssl.so.1.0.0: version `OPENSSL_1.0.1' not found (required by ./BaldursGate)
        linux-gate.so.1 (0xf7fd4000)
        libjson.so.0 => /usr/lib/libjson.so.0 (0xf7f68000)
        libopenal.so.1 => /usr/lib/libopenal.so.1 (0xf7ea8000)
        libGL.so.1 => /usr/lib/libGL.so.1 (0xf7e40000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xf7e20000)
        librt.so.1 => /lib/librt.so.1 (0xf7e10000)
        libssl.so.1.0.0 => /usr/lib/libssl.so.1.0.0 (0xf7da0000)
        libcrypto.so.1.0.0 => /usr/lib/libcrypto.so.1.0.0 (0xf7b88000)
        libexpat.so.1 => /usr/lib/libexpat.so.1 (0xf7b48000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0xf79f0000)
        libdl.so.2 => /lib/libdl.so.2 (0xf79e8000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xf7860000)
        libm.so.6 => /lib/libm.so.6 (0xf7758000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xf7738000)
        libc.so.6 => /lib/libc.so.6 (0xf7550000)
        /lib/ld-linux.so.2 (0xf7fa8000)
        libGLX.so.0 => /usr/lib/libGLX.so.0 (0xf7528000)
        libGLdispatch.so.0 => /usr/lib/libGLdispatch.so.0 (0xf74c8000)
        libz.so.1 => /lib/libz.so.1 (0xf74a8000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0xf7478000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0xf7470000)
« Ostatnia zmiana: Czerwiec 20, 2018, 05:12:51 pm wysłana przez Premislaus »

gryzon96

  • SUSE Power User
  • **
  • Wiadomości: 184
Odp: Baldurs Gate i libssl
« Odpowiedź #1 dnia: Czerwiec 20, 2018, 04:54:59 pm »
Walczyłem kiedyś z podobnym błędem. Nie mam niestety Baldur's Gate żeby spróbować,ale jeśli dobrze pamiętam to linkowałem do systemowej wersji biblioteki. U ciebie jednak ldd znajduje ścieżkę do biblioteki.
Próbowałeś odpalać grę spoza skryptu? Spróbuj poprzez LD_PRELOAD załadować steam runetime coś mniej więcej
/home/username/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/
/home/username/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/
I wynik z konsoli czy coś się zmieni

Premislaus

  • SUSE User
  • *
  • Wiadomości: 61
Odp: Baldurs Gate i libssl
« Odpowiedź #2 dnia: Czerwiec 20, 2018, 05:03:59 pm »
Walczyłem kiedyś z podobnym błędem. Nie mam niestety Baldur's Gate żeby spróbować,ale jeśli dobrze pamiętam to linkowałem do systemowej wersji biblioteki. U ciebie jednak ldd znajduje ścieżkę do biblioteki.
Próbowałeś odpalać grę spoza skryptu? Spróbuj poprzez LD_PRELOAD załadować steam runetime coś mniej więcej
/home/username/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/
/home/username/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/
I wynik z konsoli czy coś się zmieni

Tak to wygląda w jednym i drugim przypadku:

LD_PRELOAD="/home/premislaus/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/" ./BaldursGate
ERROR: ld.so: object '/home/premislaus/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
./BaldursGate: /usr/lib/libssl.so.1.0.0: version `OPENSSL_1.0.1' not found (required by ./BaldursGate)

Jeżeli odpalę spoza skryptu to wciąż mu nie pasuje libssl.

Napisałem do Bemdog i GOG, zobaczymy co odpowiedzą.

Internet jest niezbyt pomocny w tej kwestii...

Premislaus

  • SUSE User
  • *
  • Wiadomości: 61
Odp: [SOLVED]Baldurs Gate i libssl
« Odpowiedź #3 dnia: Czerwiec 20, 2018, 05:15:22 pm »
Rozwiązałem problem.

1. Trzeba pobrać libssl w wersji z Ubuntu. Następnie umieszczamy libssl i libcrypto w katalogu z binarką gry.
2. Wklepujemy w konsoli LD_PRELOAD="./libssl.so.1.0.0 ./libcrypto.so.1.0.0"  ./BaldursGate
 
Jak na to wpadłem? Nie wiedziałem czy dobrze używam LD_PRELOAD i zacząłem szukać instrukcji, brakowało tej kropki przed slashem.

BTW, by odpalić Dawn of War II na Steamie to w opcjach uruchamiania muszę umieścić - LD_LIBRARY_PATH="/usr/lib:$LD_LIBRARY_PATH" %command% . Jest to strasznie lipne. Na Ubuntu to też nie działa zbyt dobrze. Kiedyś nabyłem za parę złotych Terrarię, by obczaić, ale nie spodobało mi się (wolę Minecrafta). Tam gra miała problemy z pozycją okna i kursorem, była niegrywalna. Dopiero na openSUSE zadziałała.
« Ostatnia zmiana: Czerwiec 20, 2018, 06:09:46 pm wysłana przez Premislaus »