Die Woche war ich mal wieder auf einer kleinen LAN Party. An sich nichts besonderes. Man halte sich jedoch vor Augen dass ich keine einzige Windows-Installation mehr habe und folglich mit einer Linux Only Box anzutraben pflege.

Die Woche war also wieder einmal eine Art kleine Premiere. Mit neuen 512MB DDR-Ram (Kingston), NVIDIA FX5900XT (v6111), Athlon 2000 XP+, Linux 2.4.27, ALSA 1.0.6a, WineX frisch aus dem CVS, 30GB Spiele auf der aktuellsten Version und das Gehäuse frisch poliert war ich ganz gut vorbereitet.

Gespielt wurde Quake3[1], CounterStrike[2][3] und Unreal Tournament 2003[4]. Mit einer Maximal-Auflösung von 1600×1200 mit maximalen Details und teilweise gleichzeitig als Server arbeitend lief die Box ausgesprochen rund und zickte nicht ein einziges mal. Ich bin ausgesprochen zufrieden mit der Leistung des Systems und vertrete weiterhin die Meinung dass man als Spieler auch unter Linux auf seine Kosten kommen kann.

[1][4] Native Linux
[2] WineX/Cedega
[3] CounterStrike spiele ich seit der 6.5 nicht mehr, da ich das Spiel im Grunde nicht leiden kann. Auf kleinen LAN Partys zählt aber jeder einzelne Spieler. Wenn man sich hier nicht gemeinsam auf ein Spiel einigen kann sollte man IHMO daheim bleiben.

In einem Chat wieder auf den Gedanken gebracht kramte ich meine Jagged Alliance 2 CDs wieder aus dem Schrank. Eines der wenigen Spiele, welches bereits vor Jahren auf Linux portiert wurde. Kaufen kann man den Linux Port zum Beispiel auf Linuxland.de.

Leider steigt das Spiel auch seit einigen Jahren auf einer aktuellen Installation mit einem Segmentation Fault unmittelbar nach dem Start wieder aus. Grund hierfür ist wohl die Verlinkung auf nicht statische Bibliotheken, welche sich im Lauf der Jahre verändert haben, und nicht mehr mit den ursprünglichen Funktionsaufrufen klar kommen.

Eine Lösung dazu fand ich hier. Der verbesserte Installer legt im Zielverzeichnis mitunter ein kleines Script mit der Bezeichnung ja2start an, welches auf eine statische libX11.so.6.2 im Installationsverzeichnis zeigt.

Damit ausgerüstet kann Arulco ein weiteres mal befreit werden 🙂

Die letzten Tage habe ich es getan – ich habe meine gute alte SuSE Linux 8.2, welche ich bis heute manuell immer auf den neusten Stand gehalten habe, platt gemacht. Während dieser langen Zeit habe ich nur sehr selten auf YaST zurück gegriffen und so ziemlich alles selbst kompiliert und installiert. Zwar habe ich in durch das manuelle (und unqualifizierte) Patchen eine ganze Menge über Linux gelernt, doch verlor ich mit der Zeit auch den Überblick über das System. Das Packagemanagement (RPM) konnte ich wegen meiner eigenen Pfuscherei ohnehin rasch nicht mehr recht nutzen.

Nachdem ich auf meinem Laptop ausgezeichnete Erfahrungen mit Lunar-Linux gemacht hatte, entschloss ich mich dieses nun ebenfalls auf meinen Arbeits- und Spielerechner zu installieren. Diese sourcenbasierende Distribution verfolgt ein ähnliches Prinzip wie Gentoo Linux. Nach insgesamt drei Tagen Kompilierzeit für das komplette System und dem XOrg X-Server samt KDE war der Rechner wieder voll einsatzbereit. Da ich bereits im Vorfeld mein /home Laufwerk seperatisierte, konnte ich ohne lange Konfiguration sofort nach der Fertigstellung der Installation wie gewohnt weiterarbeiten.

Ein größeres Problem gab es allerdings. Nach der Installation von XOrg und den Linux NVidia Grafikkartentreibern trat folgendes Problem auf, welches den Start des XServers verhinderte:

Symbol noPanoramiXExtension from
module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved!

Mit diesem Problem ließ mich selbst Google im Stich. Nicht ein einziger Hit. Schlussendlich konnte mir jmhodges weiterhelfen, indem er mir den entscheidenden Tipp gab XOrg noch einmal mit Xinerama Unterstützung zu kompilieren. Er beschreibt das ganze etwas ausführlicher in seinem Webblog.

Heute habe ich mich einmal näher mit GnuPG auseinander gesetzt. Zirias war so nett sich mehrere Stunden mit mir herum zu schlagen, bis ich neben der Theorie auch die Praxis verstand.

Nach dem Erstellen meines Schlüsselpaars, zuerst auf der Konsole und anschließend mit KGPG, hatte ich so meine Probleme KMail das ganze auch beizubringen. Erstens ist KMail wohl nur in der Lage die PGP-Signatur Inline zu senden, was für einige Empfänger sicherlich ein Ärgernis ist. Zweitens kann KMail von Haus aus kein PGP/MIME, was wieder für mich ein Ärgernis ist, da ich KMail ansonsten für ein ausgesprochen gutes Programm halte.

Diese Seite beschreibt wie man zumindest den zweiten Missestand beheben kann. Nach einigen Kompilier- und Konfigurierorgien hat dann auch alles wunderbar funktioniert. Bleibt nur noch ein Bug mit der Entschlüsselung, der unter einigen Umständen aufzutreten scheint. Zu diesem Thema habe ich hier etwas auf einer SuSE Mailingliste gefunden. Das ist zwar keine Lösung, aber zumindest einmal ein Workaround.

Meinen nagelneuen public-PGP gibt es dann gleich hier: duke.famkos.net/pub.txt
Fingerprint: 0798 0D57 1F98 0675 731D AD06 81FB 7AD8 AD53 FE47

Letzte Woche war der inzwischen recht bekannte Linuxtag in Karlsruhe. Natürlich war ich ebenfalls da und habe mir über zwei Tage hinweg ein ganz gutes Bild machen können. Regelmäßige Besucher werden kaum einen Unterschied festgestellt haben, außer dass wir 2005 die 10-Jahre Premiere haben werden. Der einzige Stand, der dieses Jahr wohl offensichtlich fehlte, dürfte der des XFree86 Projekts gewesen sein. Dafür dieses Jahr mit von der Partie ein recht kleiner Stand von Microsoft. Hier wollte man offensichtlich in erster Linie einmal die Reaktion der Besucher einschätzen. Ein trauriger XP- sowie ein Office 2003-Wimpel zierten die sonst nackten Wände. Wer sich näher am Stand interessiert zeigt, wurde auf die nun frei verfügbaren Unix Tools für WindowsXP aufmerksam gemacht, welche ähnlich wie cygwin (jedoch auf Kernelmodulebene) arbeiten. Mehr findet sich unter der üblichen Internetadresse.

Interessante Beiträge gab es auf den verschiedenen Foren, Lesungen und Diskussionen. Beängstigend war die erstaunlich niedrige Besucheranzahl einer Podiumsdiskussion zum Thema Softwarepatente.

Mit Zivilisation, also Internet, war man buchstäblich an jeder Ecke versorgt. So gab es nicht nur die üblichen Sun Surf-Workstations am Sun-Stand, sondern auch noch ein zweites Internetcafé der Karlsruher-LUG direkt im Konferenzgebäude.

Auch bei mir ist es mal wieder soweit. Über das Wochenende möchte ich alle Maschinen im Haus aktualisiert haben. Begonnen habe ich mit dem Router, welcher einen neuen 2.4.26er bekommen hat. Hier war dann auch gleich ein Update der iptables, um auch weiterhin mein Lieblingstool Firewall Jay zur Konfiguration dieser nutzen zu können, fällig. Als Dreingabe gabs auch gleich den neusten Indianer, da mir in letzter Zeit ein paar sehr seltsame Logeinträge aufgefallen sind.

Direkt im Anschluss kam mein Desktop- und Spielerechner dran. Hier schnurrt nun der neuste 2.6.7er. Ein kleines Problem mit den nvidia-Treibern konnte glücklicherweise verhältnismäßig schnell gelöst werden. Übrigens habe ich hier inzwischen über 20Gigabyte Spiele installiert und damit ein ernstes Sucht-Problem. Gut, dass mir noch niemand gesagt hat, dass man unter Linux gar nicht spielen können soll 😉

Damit wären meine beiden wichtigsten Maschinen auf dem neusten Stand, die anderen müssen bis morgen Nacht warten 😀

In letzter Zeit lese ich sehr oft im Bezug auf das Thema “Spiel X läuft nur ohne Sound”. Hier wird beständig geraten den aRts von KDE kurzerhand zu killen. Ja natürlich läuft das dann, aber wozu läuft dieser aRts den dann überhaupt, wenn man ihn immer erst killen muss?

Zur Info: aRts ist /kein/ unnötiges Stück Software. Der Soundserver ermöglicht es allen Anwendungen gleichzeitig Sound auf euren Lautsprechern auszugeben. Klingt langweilig? Na und was macht ihr wenn euch jemand sagt ihr sollt verschiedene 0en und 1sen zusammen mischen und den Mischwert wohlklingend ausgeben? Den genau damit wird die Soundkarte gefüttert, 0 und 1.

Weiter gehts. Wir wollen aRts behalten und trotzdem spielen oder auch andere Anwendungen welche aRts nicht von Haus aus unterstützen über aRts spucken lassen. Dazu gibt es verschiedene Möglichkeiten. Die gängigste, um so etwas mal kurzerhand einzurichten, ist das Zusatzprogramm “artsdsp”. Das Programm kann (leider nur Binaries!) praktisch zwingen sich an den Soundserver anzuhängen indem es die Ausgaben auf /dev/dsp abfängt und umleitet. Programme werden im Stil “artsdsp <programm> <parameter>” gestartet. Probieren wir unsere neuen Kenntnisse einmal aus:
Code:

beko@lion:~> artsdsp quake3
artsdsp works only for binaries
beko@lion:~> artsdsp ut2003
artsdsp works only for binaries

Sucks, hm? Die meisten Spiele starten über ein Startscript. Schauen wir uns einmal das Startscript von Quake3 näher an:

beko@lion:~> which quake3
/usr/local/bin/quake3
beko@lion:~> vi /usr/local/bin/quake3

#!/bin/sh
# Needed to make symlinks/shortcuts work.
# the binaries must run with correct working directory
  cd "/usr/local/games/quake3/"
  artsdsp -m ./quake3.x86 $*
  exit $?

Die relevante Zeile ist dabei artsdsp -m ./quake3.x86 $*. Wie wir sehen wird nun die eigentliche Binary mit dem Zusatzkommando artsdsp aufgerufen. E voila, wir haben Sound über aRts in Quake3. Wiederholen wir das Spiel bei ut2003.

# Let's boogie!
if [ -x "${UT2003_DATA_PATH}/ut2003-bin" ]
then
        cd "${UT2003_DATA_PATH}/"
#       exec ./ut2003-bin $*
        artsdsp -m ./ut2003-bin $*
fi
echo "Couldn't run Unreal Tournament 2003 (ut2003-bin). Is UT2003_DATA_PATH set?"
exit 1

# end of ut2003 ...

Das ut2003 Startscript ist etwas länger. Die relevante Zeile ist jedoch ganz unten: artsdsp -m ./ut2003-bin $*. Ich habe die Original-Zeile lediglich auskommentiert, statt die zu verändern. Same shit here. Der Parameter -m bedeutet laut Manpage folgendes:

-m, --mmap                emulate memory mapping (i.e. for quake)

Alles klar? Nach dem Schema und mit ein wenig Bastelei kann man nahezu jedes Programm überreden über aRts zu spucken. Sollte der Sound etwas laggen, sprich erst mit Verzögerung ertönen, mache dich bitte ans nächste Kapitel und lerne wie man aRts konfiguriert 😉

Ich hoffe das ist dem ein oder anderen eine Hilfe 😉 Tötet nicht ständig eure armen Soundserver, sie sind da um euch zu helfen! So bekommt ihr sogar mitten in einer Runde UT mit wenn ihr eine neue Mail bekommt (“Sie haben Post” :P)