PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sound unter ET gelöst mit "würgaround" :)



333fps
11.01.06, 14:20
Wer Probleme hat mit der Soundausgabe von Enemy Territory, dem kann durch folgendes Startscript abgeholfen werden. Funzt zumindest hier mit der SuSE 10 perfekt (das Problem war, das der Sound nur ging, wenn ET als root gestartet wurde) ;):



#!/bin/sh

if test $UID -ne 0; then
exec sudo $0 $*
fi

sudo chown fischer.audio -R /proc/asound/card0/pcm0p/oss
sudo echo "et.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss

cd /usr/local/games/enemy-territory/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
exec ./et.x86 "$@"


user "fischer" natürlich durch eigenen Usernamen ersetzen. Und in /etc/sudoers folgende 2 Einträge machen:



fischer ALL=NOPASSWD: /usr/local/bin/et-start
fischer ALL=NOPASSWD: /proc/asound/card0/pcm0p/oss


edit: ach ja, die Gruppe "audio" muss natürlich zum user hinzugefügt werden..

ciruZ
12.01.06, 20:56
Der Trick wird doch sogar in der offiziellen README von ET erwähnt, wenn ich mich recht erinnere? Und das ist kein SuSE-Problem, sondern ein ALSA-Problem :).

333fps
13.01.06, 09:06
Der Trick wird doch sogar in der offiziellen README von ET erwähnt, wenn ich mich recht erinnere? Und das ist kein SuSE-Problem, sondern ein ALSA-Problem :).

seufz, lies bitte meinen ganzen Beitrag und verstehe ihn - so steht das unter Garantie bestimmt nicht in der offiziellen README

tuXist-j0ker
13.01.06, 10:21
hätte es nicht einfach gereicht deinen user der gruppe audio zu zuordnen ?

das sollte nämlich bei udev reichen

333fps
13.01.06, 10:47
An sich ja, wenn die Default-Permissions für /proc/asound/* auch eine Gruppe "audio" enthalten würde. Per Default hatte das ganze verzeichnis mit unterordnern aber: "root.root" als vorbelegung..

Die allseits bekannte Fehlermeldung lautete beim Start von et als user:


/usr/local/bin/et: line 5: /proc/asound/card0/pcm0p/oss: Keine Berechtigung

ciruZ
13.01.06, 13:59
so steht das unter Garantie bestimmt nicht in der offiziellen README
Ja, so steht er da auch net, sondern dort steht die saubere lösung: sysctl verwenden / nach proc echon.
Als Root einmal setzen, fertig. Ein User _SOLL_ gar keinen Zugriff darauf haben aus Sicherheitsgründen.
Vor allem überschreibst du die Datei jedesmal, wenn du das Spiel startest, was nicht so gedacht ist. Du müsstest >> statt > verwenden. Aber dann würdest du bei jedem Spielstart eine Zeile hinzufügen. Wie du siehst ist die richtige Lösung über sysctl / echo nach proc mit >> als root beim hochfahren (wozu gibts /etc/rc.local oder /etc/sysctl.conf?)

333fps
13.01.06, 14:27
Auf die idee bin ich auch schon gekommen. So einfach ist das net unter SuSE 10. Ich versuch dir das mal zu erklären: Denn sobald du "SuSEconfig" ausführst, werden immer alle bzw. betreffende permissions neu gesetzt.

Und zwar durch: /sbin/conf.d/SuSEconfig.permissions in deren Inhalt sich dann wieder neue Konfigdateien befinden: /etc/sysconfig/security und etc/sysconfig/suseconfig. Das ist mir zu müßig und hätte außerdem den Nachteil, dass gemachte Änderungen an original-SuSE-Dateien bei einem neuen Update wieder falsch gesetzt würden.

Und überhaupt, was soll da für ein Sicherheitsrisiko für die Gruppe "audio" sein?

Aber hauptsache es funzt bei mir jetzt. Soll ja nur ein Tipp von mir gewesen sein, falls jemand hier SuSE 10 und ET mit einer AC97 verwendet. Wenn es bei dir geht, dann ist doch alles i. O.? :)

ciruZ
13.01.06, 19:01
Nun, die Rechte sind gar nicht dein Problem, da du die gar nicht ändern brauchst / sollst.
Editier einfach deine /etc/sysctl.conf bzw. /etc/rc.local, um die Zeile beim hochfahren in die Datei in /proc hinzuzufügen (nicht überschreiben!) und fertig.