Logo
Polish BunnyTrack server Powered by "Skecz" v1.3.7 by VenoX

Log In




No account?
Sign up

Topic: Instalacja natywna UT na Linux
18.08.2017 09:31
Administrator

VenoX

Gender: Male
Replies: 65
Obrazek

1. Ściągnij odpowiedni instalator (zależnie czy do wersji oryginalnej lub goty)
2. Nadaj uprawnienia do uruchomienia: chmod +x ut_instalator.run (zamiast ut_instalator wklej nazwę Twojego instalatora)
3. Zainstaluj wymagane biblioteki:
- libglib1.2ldbl_1.2.10-19build1_i386.deb
> Wymaga: gcc-8-base:i386 libc6:i386 libgcc1:i386 libidn2-0:i386 libunistring2:i386
- libgtk1.2-common_1.2.10-18.1build2_all.deb
- libgtk1.2_1.2.10-18.1build2_i386.deb
> Wymaga: libbsd0:i386 libx11-6:i386 libxau6:i386 libxcb1:i386 libxdmcp6:i386 libxext6:i386 libxi6:i386

Ważna uwaga - trzeba instalować we wskazanej kolejności. Być może będziesz mieć problem podczas instalacji ostatniego pakietu z powodu niespełnionych zależności. Jeśli tak się stanie, to trzeba odinstalować przedostatni pakiet, czyli libgtk1.2-common_1.2.10-18.1build2_all.deb i zmodyfikować go. Dobrze by było utworzyć folder roboczy:

mkdir mod

A następnie wypakować paczkę .deb

dpkg-deb -R libgtk1.2-common_1.2.10-18.1build2_all.deb mod

Po tym trzeba zedytować plik w lokalizacji /mod/DEBIAN/control np. edytorem nano

cd mod
cd DEBIAN
nano control

W dowolnym miejscu w otwartym pliku dodaj linijkę:

Multi-Arch: foreign

Zapisz plik, przejdź do poprzedniego katalogu

cd ../..

I spakuj modyfikacje do .deb

dpkg-deb -b mod libgtk1.2-common_1.2.10-18.1build2_all_fix.deb

Zainstaluj nowo utworzony plik libgtk1.2-common_1.2.10-18.1build2_all_fix.deb, a następnie zainstaluj libgtk1.2_1.2.10-18.1build2_i386.deb - teraz powinien się zainstalować bez przeszkód, a instalator UT poprawnie się włączy.

Proszę zwrócić uwagę na to, z którego konta uruchamiany jest instalator. W przypadku konta "root", instalator domyślnie uruchomi się w trybie tekstowym. Co więcej, mogą pojawić się problemy z działaniem gry (problem z uprawnieniami, gdy gra będzie używana przez zwykłego użytkownika, a została zainstalowana z konta "root"). Zalecane jest uruchomienie instalatora z poziomu zwykłego użytkownika, nie roota!

Obrazek

Obrazek

W przypadku wystąpienia nieopisanych problemów, by wiedzieć, co się dzieje podczas uruchamiania, może się przydać poniższa komenda:

export LD_DEBUG=libs

Domyślnie gra korzysta z dwóch lokalizacji. Pierwszą jest wybrany do instalacji gry katalog (domyślnie: "/usr/local/games/ut"). Druga lokalizacja gry znajduje się w katalogu bieżącego użytkownika (/home/użytkownik), w którym to znajduje się: ".loki/ut". W tym przypadku pełna ścieżka to: "/home/użytkownik/.loki/ut". W drugiej lokalizacji zapisywane są m.in. pliki konfiguracyjne gry, a także wszelkie pliki, które są pobierane przez grę podczas łączenia się z serwerem. Jeżeli nie chcesz korzystać z tej drugiej lokalizacji (ujednolicić wszelkie pliki gry w jednym katalogu, wybranym przy instalacji gry), należy grę zawsze uruchamiać z argumentem "-nohomedir". W tym celu można zmodyfikować następujący plik (ścieżka domyślna):

/usr/local/games/ut/ut

I do CMD_ARGS dopisać: -nohomedir

# Additional commandline options for mods etc.
CMD_ARGS="-nohomedir"


Korzystając z bibliotek, odpowiednio zmodyfikowanych plików startowych oraz wpisów pochodzących z plików konfiguracyjnych UT, przy założeniu, że UT uruchamiane jest poprawnie, można sprawić, aby praktycznie każda gra oparta na silniku Unreal Engine 1 mogła zostać uruchomiona na systemie linux. Przykład w pełni działającej gry Tactical Ops pokazano poniżej.

Obrazek
11.03.2018 22:54
Administrator

VenoX

Gender: Male
Replies: 65
W przypadku problemu z uruchomieniem instalatora:

error while loading shared libraries: libgtk-1.2.so.0: wrong ELF class: ELFCLASS32

Proszę przed komendą uruchamiającą instalator spróbować dodać: linux32



W przypadku tego typu błędu:

error while loading shared libraries: libSM.so.6: cannot open shared object file: No such file or directory

Zainstaluj pakiet: libsm6:i386


W przypadku, jeżeli instalator "nie widzi" płyty w napędzie, proszę spróbować uruchomić tę komendę i następnie ponownie zainstalować grę:

mount -t iso9660 -o ro /dev/cdrom /media/cdrom

W katalogu /media powinien znajdować się obiekt o nazwie "cdrom" lub innej, do której, po wejściu, widoczna będzie zawartość płyty z grą.


Jeżeli w grze nie ma dźwięku, a w konsoli pojawia się informacja:

Bound to ALAudio.so
open /dev/dsp: No such file or directory
Audio initialization failed.

Trzeba uruchomić komendę: modprobe snd-pcm-oss

Proszę upewnić się, że w folderze /dev znajduje się obiekt "dsp". W przypadku, jeżeli występuje nazwa na przykład "dsp1", proszę zmienić nazwę obiektu na "dsp".

Może również wyświetlić się taka informacja:

Bound to ALAudio.so
open /dev/dsp: Device or resource busy
Audio initialization failed.

W takim przypadku należy upewnić się, że na komputerze aktualnie nie są odtwarzane dźwięki.


Jeśli podczas grania widoczne jest szarpanie obrazu, to znaczy, pozioma linia tak jakby oddziela dwa fragmenty obrazu tak, że obraz sprawia wrażenie, jakby przeskakiwał, należy wówczas w ustawieniach nvidia (sterownik zamkniętoźródłowy, NVIDIA X Server Settings) wejść w sekcję "X Server Display Configuration", następnie kliknąć przycisk "Advanced..." i zaznaczyć opcję "Force Full Composition Pipeline". Aktywowanie tej opcji powinno pomóc z problemem szarpania obrazu.


Jednym z problemów natywnej wersji UT na linux jest brak możliwości minimalizacji gry w klasyczny sposób. Można sobie z nim jednak łatwo poradzić, przełączając tryb wideo gry, z pełnoekranowego na okienkowy. W trybie okienkowym można już bez przeszkód grę całkowicie zminimalizować, tak, aby mogła chodzić w tle.

Obrazek


W przypadku, jeżeli mimo wszystko w grze nie ma dźwięku, nie pomagają dotychczasowe sposoby naprawy problemu, można spróbować uruchomić grę poprzez program "padsp":

padsp ./ut-bin

Jeżeli od razu po uruchomieniu pojawia się tego typu informacja:

ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsedsp.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.

Należy w takim przypadku zainstalować pakiety: libpulse0:i386 oraz libpulsedsp:i386. Następnie trzeba wprowadzić zmiany w pliku startowym padsp. W tym celu można skopiować dotychczasowy pod nową nazwą na przykład "padsp32":

cp /usr/bin/padsp /usr/bin/padsp32

Po skopiowaniu pliku należy zedytować "padsp32", odnaleźć linię:

LD_PRELOAD="/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsedsp.so"

A następnie zamienić ją na poniższą:

LD_PRELOAD="/usr/lib/i386-linux-gnu/pulseaudio/libpulsedsp.so"

Po zapisaniu tak zmodyfikowanego pliku można spróbować włączyć grę:

padsp32 ./ut-bin

Problem z brakiem dźwięku dzięki temu powinien zostać rozwiązany. Dźwięk powinien odtwarzać się nawet wtedy, gdy na komputerze aktualnie odtwarzane są inne dźwięki. Może jednak się zdarzyć, że odtwarzany dźwięk jest o sekundę opóźniony. Najprościej ten problem naprawić poprzez modyfikację wpisu w pliku konfiguracyjnym UT, z:

AudioDevice=ALAudio.ALAudioSubsystem

Na:

AudioDevice=Audio.GenericAudioSubsystem


Jedną z modyfikacji, którą można wprowadzić, jest utworzenie dowiązania symbolicznego "libSDL-1.1.so.0" w katalogu /System odnoszącego się do biblioteki w lokalizacji /usr/lib/i386-linux-gnu/libSDL-1.2.so.0. Może się zdarzyć, że docelowy plik nie istnieje, dlatego należy we własnym zakresie doinstalować pakiet: libsdl1.2debian:i386. Po instalacji wystarczy utworzyć dowiązanie symboliczne (w przypadku, jeżeli gra znajduje się w /usr/local/games/ut):

ln -s /usr/lib/i386-linux-gnu/libSDL-1.2.so.0 /usr/local/games/ut/System/libSDL-1.1.so.0


Do odtwarzania muzyki gra wykorzystuje bibliotekę libmikmod. Dostarczona wersja jest dość przestarzała, a generowany dźwięk może nie być zadowalający. Bardzo zalecane jest wgranie do /System biblioteki dostępnej poniżej:

http://forum.gameclan.pl/Download/libmikmod.so.2

------------

Błędy nierozwiązane:

1) 6555: ./libSDL-1.1.so.0: error: symbol lookup error: undefined symbol: glXChooseVisual (fatal)
Błąd generowany przez grę: Could not load OpenGL library

Initializing OpenGLDrv...
binding libGL.so.1
6555: find library=libGL.so.1 [0]; searching
6555: search path=./tls/i686/sse2:./tls/i686:./tls/sse2:./tls:./i686/sse2:./i686:./sse2:.:/usr/local/lib (RPATH from file ./ut-bin)
6555: trying file=./tls/i686/sse2/libGL.so.1
6555: trying file=./tls/i686/libGL.so.1
6555: trying file=./tls/sse2/libGL.so.1
6555: trying file=./tls/libGL.so.1
6555: trying file=./i686/sse2/libGL.so.1
6555: trying file=./i686/libGL.so.1
6555: trying file=./sse2/libGL.so.1
6555: trying file=./libGL.so.1
6555: trying file=/usr/local/lib/libGL.so.1
6555: search cache=/etc/ld.so.cache
6555: search path=/lib/i386-linux-gnu:/usr/lib/i386-linux-gnu:/lib:/usr/lib (system search path)
6555: trying file=/lib/i386-linux-gnu/libGL.so.1
6555: trying file=/usr/lib/i386-linux-gnu/libGL.so.1
6555: trying file=/lib/libGL.so.1
6555: trying file=/usr/lib/libGL.so.1
6555:
6555: ./libSDL-1.1.so.0: error: symbol lookup error: undefined symbol: glXChooseVisual (fatal)