PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Alsa Versionen > 0.9 & SuSE 9.0



m.o.o.
03.04.04, 22:11
Hi!
Wenn man SuSE 9.0 verwendet, und z.B. den Kernel 2.6.4 installiert, dann wundert man sich vielleicht, warum man beim booten folgende Meldung erhält:


The running ALSA driver looks obsolete. Stop ALSA now.

. Der Grund ist der folgende: das rcalsasound script liest aus der Datei "/proc/asound/version" die Alsa-Version.
Dummerweise ist beim Kernel 2.6.4 eine Alsa-Version > 0.9 da -> das Skript denkt, es ist eine ältere Version als 0.9 (es sucht nur nach Versionen == 0.9). Deshalb versucht es auch Alsa wieder zu stoppen.

Man muss die Zeile


if head -n 1 /proc/asound/version | grep -q '0\.9'; then

in dem Skript "/usr/sbin/rcalsasound" (bei mir Zeile 149) zu


if head -n 1 /proc/asound/version | grep -q '1.' || head -n 1 /proc/asound/version | grep -q '0\.9'; then

umändern, dann funktioniert wieder alles ordungsgemäß.
Mit der neuen Zeile sucht es erst nach Versionen > 1 (was vorher nicht gemacht wurde). Wenn dies erfolglos war, sucht es nach einer Version == 0.9. Wenn dieses wiederum erfolglos war, beendet es Alsa.

MfG

Florian

TheChief
04.04.04, 21:30
Auf so ne Tipp warte ich schon sehnsüchtig ;)
War schon fast am verzweifeln mit meinem Alsa.
Aber leider hat mir dein Tipp hier auch nicht wirklich weiter geholfen.
Nachdem ich die von dir vorgeschlagene Änderung vorgenommen haben, meldet mir das Script:


/usr/sbin/rcalsasound: line 151: syntax error near unexpected token `else'
/usr/sbin/rcalsasound: line 151: ` else'

Ich hab mich dann zwar mit meinen allgemeinen Programmierkenntnissen da ran gewagt und bissl rumprobiert, bin aber zu keinem Ergebnis gekommen. Da ich von diesen Scripten nicht wirklich Ahnung hab, hab ich etwas verglichen. Was mir dabei auffiel, ist, dass bei jeder IF-Abfrage, außer bei eben dieser Versions-Prüfung, die Bedingung in eckigen Klammern gefasst und mit einem Semikolon abgeschlossen ist. Wenn ich das aber entsprechend anpasse, meckert er über die eckigen Klammern.
Naja, wie auch immer, ich werd dann ma weiter Alsa immer über Yast2 starten :ugly:

Greetz,

Ginsengelf
05.04.04, 16:14
Moin, ich habe die Zeilen einfach kalt lächelnd auskommentiert, das tat's auch.

Ginsengelf

TheChief
05.04.04, 20:44
Ok, mit dieser Holzhammer-Methode klappts bei mir auch *g*

m.o.o.
06.04.04, 00:48
Hi, ich poste mal die ganze start()-Funktion:


function start() {
#
# insert all sound modules
#
module_loaded=0
c=""
drivers=`get_drivers`
for i in $drivers; do
if [ $i != off ]; then
if [ x$c = x ]; then
echo -n ": "
c=1
fi
echo -n " ${i##snd-}"
probe_module $i && module_loaded=1
fi
done
rc_status -v -r
test $module_loaded -eq 0 && return
# check ALSA driver version 0.9
if head -n 1 /proc/asound/version | grep -q '1.' || head -n 1 /proc/asound/version | grep -q '0\.9'; then
:
else
echo -n "The running ALSA driver looks obsolete. Stop ALSA now."
stop
rc_failed 1
rc_status -v
return
fi
#
# insert 32bit ioctl wrapper if exists
#
/sbin/modprobe snd-ioctl32 >/dev/null 2>&1
#
# rest of start action...
#
load_sequencer
restore_mixer
load_carddeps $drivers
}
.
Vielleicht habt ihr den : vergessen?


MfG

Florian