SuperTuxKart 0.6.2

xeno74

Well-Known Member
logo.png


Stk061-2.jpg


Hallo Forum,

hat es jemand schon geschafft, SuperTuxKart unter FreeBSD zu kompilieren?

Bei mir lief das Kompilieren problemlos durch. Beim Starten verabschiedet sich STK mit Signal 12.

Es gibt aber eine Lösung ;)

Wenn Ihr euren 3D-Grafiktreiber eingerichtet habt, dann installiert Wine :)

Dann ladet euch die Windows-Version von STK runter und klickt dann mit der rechten Maustaste auf das Installationsprogramm von STK. Dann führt Ihr die Installation durch. Und siehe da, es funktioniert doch :)

Ich würde aber gerne STK als FreeBSD-Version spielen.

Hat jemand Lust zum Kompilieren?

STK-Webseite:

http://supertuxkart.sourceforge.net

Kompilierungs-FAQ:

<LINK>

Viele Grüße,

Xeno
 

xeno74

Well-Known Member
Das kuriose ist, dass unsere Maskottchen schon als Kartfahrer dabei sind. Aber STK scheinbar nicht unter BSD läuft.

index.php


Puffy.PNG


Es wäre wirklich super, wenn ich mit dem BSD-Fahrern unter FreeBSD gegen Tux antreten könnte :)
 

xeno74

Well-Known Member
Kompilierung:

1. Über die Ports-Sammlung folgende Ports installieren:

sdl12, plib, libogg, libvorbis, openal und freeglut

2. SuperTuxKart-Sourcen runterladen:

supertuxkart-0.6.2-src.tar.bz2

3. SuperTuxKart entpacken:

Code:
tar jxvf upertuxkart-0.6.2-src.tar.bz2

4. Variablen setzen und exportieren:

Code:
export CXXFLAGS="-I/usr/local/include"

und

Code:
export LDFLAGS="-L/usr/local/lib"

5.

Code:
./configure

6.

Code:
make

7.

Code:
cd src

8.

file supertuxkart

Ausgabe:

Code:
supertuxkart: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 7.2 (702103), dynamically linked (uses shared libs), FreeBSD-style, not stripped

9.

SuperTuxKart starten:

Code:
./supertuxkart

Fehler unter KDE 3.5.10:

Code:
FATAL: SSG: OpenGL will not accept a downsized version ?!?

Unter dem TWM funktioniert SuperTuxKart :)
 
Zuletzt bearbeitet:

xeno74

Well-Known Member
Screenshot von STK unter FreeBSD 7.2 (TWM):



Warum funktioniert STK nur unter dem TWM?

Ich bekomme immer diese Fehlermeldung:

Code:
FATAL: SSG: OpenGL will not accept a downsized version ?!?

Was bedeutet dieser Fehler und wie kann ich diesen beheben?
 

xeno74

Well-Known Member
Geschafft!!!! :) :D



Es lag an der PLIB-Installation :)

Folgendes habe ich gemacht um das o.g. Problem zu lösen:

1.

Code:
cd /usr/ports/x11-toolkits/plib

2.

Code:
make deinstall

3.

Code:
cd /usr/ports/distfiles/

4.

Code:
tar zxvf plib-1.8.5.tar.gz

5.

Code:
rm plib-1.8.5.tar.gz

6.

Code:
cd plib-1.8.5/src/ssg

7.

Code:
vi ssgLoadTexture.cxx

Und jetzt kommt der Bug-Fix:

xsize und ysize-Grenzwert heruntergesetzt

Code:
if ( xsize < 4 && ysize < 4 )
      {
        ulSetError ( UL_FATAL,
           "SSG: OpenGL will not accept a downsized version ?!?" ) ;
      }

8.

PLIB neu kompiliert:

Code:
./autogen.sh

9.

Code:
export CFLAGS="-I/usr/local/include"
export LDFLAGS="-L/usr/local/lib"

10.

Code:
./configure --prefix=/usr/local

11.

Code:
make

12.

Code:
make install

Und SuperTuxKart läuft wunderbar unter FreeBSD 7.2 (KDE 3.5.10)

Viel Spass beim Ausprobieren :)
 
Zuletzt bearbeitet:

martin

Well-Known Member
bei der ganzen Mühe die du dir damit gemacht hast xeno, fehlt eigentlich nur noch eines....ab in die ports damit!!! :rolleyes:
 

xeno74

Well-Known Member
bei der ganzen Mühe die du dir damit gemacht hast xeno, fehlt eigentlich nur noch eines....ab in die ports damit!!! :rolleyes:

Ich habe leider keine Ahnung von der Erstellung von Ports. Ich wollte jetzt so eine Art AppBundle bauen (Ähnlich PBI). Dieses Bundle enthält alle wichtigen Bibliotheken und beinträchtigt nicht das System. Einfach runterladen, entpacken und zocken :)
 

xeno74

Well-Known Member
Hallo Forum :)

Ich möchte gerne das erste SuperTuxKart-AppBundle für FreeBSD 7.2 veröffentlichen. Dafür brauche ich eure Hilfe.

Bitte testet das folgende Test-AppBundle:

supertuxkart-0.6.2-freebsd-7.2-i386.tar.gz

Ihr könnt STK mit ./run_game.sh starten. Bitte postet mir eure Fehlermeldungen (Fehlende Libs etc.), damit ich dass Paket verbessern kann.

Viel Spass beim Testen,

Xeno
 

Kamikaze

Warrior of Sunlight
Ich glaube ich baue am Wochenende einen Port nach deiner Anleitung. Mit einem AppBundle können die meisten Leute, denke ich, nichts anfangen.
 

dark_angel

Well-Known Member
Hab's gerade bei mir getestet. Läuft leider nicht. :(

Code:
Chris@Laptop$ ./run_game.sh
Data files will be fetched from: '.'
Config file '/home/Chris/.supertuxkart/config' does not exist, it will be created.
fcntl: Device not configured
Highscores will be saved in '/home/Chris/.supertuxkart/highscore.data'.
Bad system call (core dumped)
Chris@Laptop$ uname -a
FreeBSD Laptop 7.2-STABLE FreeBSD 7.2-STABLE #2: Sun Aug  2 12:50:55 CEST 2009     root@Laptop:/usr/obj/usr/src/sys/LAPTOP  i386
Chris@Laptop$
 

soul_rebel

ist immer auf der flucht

xeno74

Well-Known Member
Ich glaube ich baue am Wochenende einen Port nach deiner Anleitung. Mit einem AppBundle können die meisten Leute, denke ich, nichts anfangen.

Hey super :) Damit STK läuft, muss die PLIB modifiziert werden (siehe oben). Müssen wir dem PLIB-Port-Maintainer Bescheid geben wegen der Code-Änderung? Oder können wir die PLIB irgendwie in STK integrieren? Zur Zeit ist die PLIB statisch in das STK-Binary einkompiliert. Wir bräuchten nur während der Kompilierungsphase die veränderte PLIB. Später wird diese nicht mehr benötigt :)

Ich freue mich sehr, dass STK in die Ports-Sammlung kommt.
Wie gesagt, es ist schon kurios, dass die BSD-Maskottchen als Kartfahrer mit dabei sind und STK unter den BSD-Betriebssystemen nicht verfügbar ist.
 

xeno74

Well-Known Member
Hab's gerade bei mir getestet. Läuft leider nicht. :(

Code:
Chris@Laptop$ ./run_game.sh
Data files will be fetched from: '.'
Config file '/home/Chris/.supertuxkart/config' does not exist, it will be created.
fcntl: Device not configured
Highscores will be saved in '/home/Chris/.supertuxkart/highscore.data'.
Bad system call (core dumped)
Chris@Laptop$ uname -a
FreeBSD Laptop 7.2-STABLE FreeBSD 7.2-STABLE #2: Sun Aug  2 12:50:55 CEST 2009     root@Laptop:/usr/obj/usr/src/sys/LAPTOP  i386
Chris@Laptop$

Vielen Dank für das Testen :) Es fehlen noch Bibliotheken. Mal schauen, was ich machen kann. Ich bin jetzt aber auch mehr für einen Port in der FreeBSD-Portsammlung.
 

xeno74

Well-Known Member
E

ex-user_4198

Guest
Ich hab mal vor ein paar Monaten Super Tux Kart auf FBSD zu kompilieren. Ging aber nicht mit meinen bescheidenen Kentnissen über makefiles, gcc etc. was man halt so zum bauen braucht.
Finde ich toll wenn Leute die Portscollection bereichnern. :)
 

xeno74

Well-Known Member
Ich hab mal vor ein paar Monaten Super Tux Kart auf FBSD zu kompilieren. Ging aber nicht mit meinen bescheidenen Kentnissen über makefiles, gcc etc. was man halt so zum bauen braucht.
Finde ich toll wenn Leute die Portscollection bereichnern. :)

Ich freue mich wie schon geschrieben, auch auf eine Aufnahme in der Portscollection.
 

xeno74

Well-Known Member
Bad system call (core dumped)

So, ich habe noch ein paar Versuche unternommen. Bei mir funktioniert STK einwandfrei. Kein Ruckeln, Absturz usw.
Das kompilierte STK inkl. Libs funktioniert aber nicht auf anderen FreeBSD-Rechnern (Bad system call). Auch das Ausführen über den GDB brachte kein Erfolg. Ein Backtrace ergab, dass STK irgendwo bei der SDL-Initialisierung abgestürzt ist. Ich bin einfach ratlos und weiß nicht mehr weiter. Wenn ich wüsste welche Libs noch fehlen, dann würde ich diese hinzufügen. Aber ich weiß es halt nicht. Ein Bad system call ist nicht gerade aussagekräftig :( Damit bin ich aus dem Rennen :(

Wer also gerne STK zocken möchte, der muss es zur Zeit selbst kompilieren. Einfach meine Anleitung (siehe oben) durcharbeiten und schon habt Ihr auch STK auf eurem Rechner.

Viele Grüße,

Xeno
 

soul_rebel

ist immer auf der flucht
Wenn ich wüsste welche Libs noch fehlen, dann würde ich diese hinzufügen. Aber ich weiß es halt nicht. Ein Bad system call ist nicht gerade aussagekräftig :( Damit bin ich aus dem Rennen :(
Mit ldd findest du die verwendeten Libs raus. Aber an deiner Stelle würde ich mich echt an einen Port machen, weil wenn jeder das nachbasteln muss ist ja auch doof ;)
 

Yamagi

Possessed With Psi Powers
Teammitglied
"Bad System Call" bedeutet, dass das Programm irgendwas an den Kernel geschickt hat, was er nicht verstehen kann. Es bedeutet nicht, das eine Lib fehlt. Der nächste logische Schritt wäre, dass man mit truss(1) mal schaut, was genau da an Syscalls durch die Gegend fliegt.
 

xeno74

Well-Known Member
"Bad System Call" bedeutet, dass das Programm irgendwas an den Kernel geschickt hat, was er nicht verstehen kann. Es bedeutet nicht, das eine Lib fehlt. Der nächste logische Schritt wäre, dass man mit truss(1) mal schaut, was genau da an Syscalls durch die Gegend fliegt.

Ich habe mit truss das folgende STK-Paket gestartet, dass bei mir ja funktioniert:

supertuxkart-0.6.2-freebsd-7.2-i386.tar.gz

Ergebnis:

record.txt

Das heißt, dass wir jetzt schon mal einen Record von einem funktionierenden STK haben :) Könnte jetzt jemand truss auf das o.g. Paket anwenden, bei dem dass nicht funktioniert? Dann könnten wir vergleichen.
 

xeno74

Well-Known Member
Ich habe noch etwas herausgefunden. Es gibt eine unglückliche Abhängigkeit im STK-Binary.

ldd supertuxkart

Code:
libGLU.so.1 => /usr/local/lib/libGLU.so.1 (0x286a8000)

STK hat eine Abhängigkeit zur libGLU.so.1

Dies ist nicht so tragisch, wenn die libGLU.so.1 eine nicht direkte Abhängigkeit zu meiner Nvidia-Grafikkarte hätte :(

ldd libGLU.so.1

Code:
libnvidia-tls.so.1 => /usr/PCBSD/local/lib/libnvidia-tls.so.1 (0x281ac000)

Diese libGLU.so.1 mit dieser Abhängigkeit ist in meinem o.g. Paket enthalten :(

Da ist es verständlich, dass ein Nvidia-Kernelmodul-Aufruf den Kernel auf BSD-Systemen zu einem Bad system call führt ;)

Ich habe dann diese Abhängigkeit mit folgender Änderung im Configure-Script entfernt:

Code:
if test "$ac_res" != no; then
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
  have_glut_lib=no
fi

Und habe im Linker-Kommando

Code:
-lglut

entfernt. Dadurch besteht jetzt keine Abhängigkeit zum Nvidia-Kernelmodul :) Ich baue jetzt ein neues Paket, dass ich dann später zum Download anbiete.
 
Zuletzt bearbeitet:

xeno74

Well-Known Member
Oben