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
 
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 :)
 
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:
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?
 
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:
bei der ganzen Mühe die du dir damit gemacht hast xeno, fehlt eigentlich nur noch eines....ab in die ports damit!!! :rolleyes:
 
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 :)
 
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
 
Ich glaube ich baue am Wochenende einen Port nach deiner Anleitung. Mit einem AppBundle können die meisten Leute, denke ich, nichts anfangen.
 
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$
 
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.
 
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.
 
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 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.
 
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
 
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 ;)
 
"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.
 
"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.
 
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:
Zurück
Oben