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.

Während Microsofts Patent auf das FAT-Dateisystem erneut geprüft wird reicht IBM einen Patentantrag zur Abfrage des Caps-Lock Fehlerstatus ein. Wir kennen das noch alle von unserem guten alten Amiga. Stürzte die Kiste ab blinkte uns die eingebaute LED freundlich an. Und verwendet Linux das nicht ebenfalls z.B. bei einer Kernel-Panic? Wie war das nochmal mit diesen älteren HP-Kisten?

Ist die ESC-Taste eigentlich noch frei?

Aber wir, die EU, wollen ja auch Softwarepatente. Das erinnert mich daran, dass ich heute nur sehr wenig bezüglich der gestrigen Wahlergebnisse im Radio zu hören bekam. Scheinbar ist die frisch angelaufene FussballWM um einiges wichtiger als die neue Sitzeverteilung Deutschlands in der EU.

Positives gibt es wenigstens von der Musikfront. Wie heute auf rundy.de zu lesen war steigt Universal aus dem Kopierschutz aus. Besser spät als nie – die Frage ist nun inwiefern die nun folgende Schadensbegrenzung Erfolg haben wird und ob die restlichen großen Labels mitziehen werden. Wenigstens kann ich mir bei meinem Lieblingslabel Drakkar sicher sein. Wie eine Anfrage meinerseits vor einigen Tagen ergab, hat man hier nie auf einen Kopierschutz gesetzt. Dies sei auch künftig nicht geplant, wie mir versichert wurde.

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)