• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[solved] Was genau macht alsaconf

TheMaLo

Newbie
Hallo!

Ich hab nun nach einigem Mühen den Sound zum laufen gebracht.
Mein Problem was ich noch habe: Ich muss nach jedem Neustart als root 'alsaconf' ausführen und X restarten damit ich als Ottonormaluser Sound habe. Nach 'alsacof' darf kann root Sound benutzen und nach dem X restart jeder Benutzer.

Nun würd ich aber natürlich gerne so haben, das ich das nicht immer und immer wieder machen muss. Was genau also macht alsaconf und wie könnte ich das Nachbauen?

Bei Alsaconf wird kurz vor dem Testsound noch gezeigt
Loading...
Starting Sound driver snd-via82xx
o.ä.

Nur ein einfaches modprobe ohne alsaconf reicht leider nicht. Was ist sonst noch zu tun?

MFG
MaLo
 
A

Anonymous

Gast
Was genau also macht alsaconf

alsaconf ist ein Script, also wenn du es ganz genau wissen willst, dann darfst du gerne mal da unter /usr/sbin/alsaconf reinschauen, ist also ziemlich komplex und wohl nicht in 10 Minuten annähernd zu verstehen.

Ansonsten konfiguriert alsaconf eine alsataugliche Soundkarte für dein System komplett neu. Das macht es meiner Meinung nach recht gut und zuverlässig. Bei dir scheint es jetzt aber so zu sein, das diese Konfiguration im System nicht lange überlebt, und zumindestens Teile davon eventuell wieder vergessen oder überschrieben werden.
Alsaconf ist Bestandteil des Alsapaketes und versteht sich wohl nicht 100%tig mit allen "Konfigurationserfindungen" der Distributoren.

Ich würde mal vorschlagen, schau mal in diese Standartkonfigurationen rein, ( bei SuSE zb in Yast) und wenn dort eine Soundkarte konfiguriert sein sollte, dann diese Soundkarten Konfiguration dort löschen bevor du mit alsaconf neu konfigurierst.

Sollte das nicht das Problem sein, dann währe es sicher nicht schlecht mal zu versuchen, zu ermitteln wo nun das Problem versteckt sein könnte. Dazu mal zum Zeitpunkt wo der Sound nicht geht als root folgende Befehle abgeben und das Ergebniss als eine Textdatei abspeichern.
cat /dev/sndstat
lsmod
cat /etc/asound.state

Danach den Sound aktivieren und die gleichen Befehle noch mal absetzen und mal mit diff suchen wo sich was geändert hat.
Eventuell sollte man da sehen in welcher Richtung man weitersuchen kann.

robi
 
OP
T

TheMaLo

Newbie
Ok, hab den Vergleich gemacht. Das hier kam bei raus:

/dev/sndstat existiert weder vor noch nach der manuellen Konfiguration.

Die Ausgaben von cat /etc/asound.state sind identisch.

lsmod hat folgende Unterschiede:

Code:
snd_via82xx            28096  0 
snd_ac97_codec         90876  1 snd_via82xx
snd_ac97_bus            2432  1 snd_ac97_codec
snd_pcm                93064  2 snd_via82xx,snd_ac97_codec
snd_timer              24452  1 snd_pcm
snd_mpu401_uart         7296  1 snd_via82xx
snd_rawmidi            24864  1 snd_mpu401_uart
snd_seq_device          8588  1 snd_rawmidi
snd                    60420  7 snd_via82xx,snd_ac97_codec,snd_pcm,snd_timer,snd_mpu401_uart,snd_rawmidi,snd_seq_device

sind bei Aufruf vor alsaconf angegeben und das hier steht nach dem Ausführen von alsaconf (also wenns klappt) am Anfang:

Code:
snd_pcm_oss            59168  0 
snd_mixer_oss          18944  1 snd_pcm_oss
snd_seq                51984  0 
snd_via82xx            28096  0 
snd_ac97_codec         90876  1 snd_via82xx
snd_ac97_bus            2432  1 snd_ac97_codec
snd_pcm                93064  3 snd_pcm_oss,snd_via82xx,snd_ac97_codec
snd_timer              24452  2 snd_seq,snd_pcm
snd_mpu401_uart         7296  1 snd_via82xx
snd_rawmidi            24864  1 snd_mpu401_uart
snd_seq_device          8588  2 snd_seq,snd_rawmidi
snd                    60420  10 snd_pcm_oss,snd_mixer_oss,snd_seq,snd_via82xx,snd_ac97_codec,snd_pcm,snd_timer,snd_mpu401_uart,snd_rawmidi,snd_seq_device
 
A

Anonymous

Gast
Es sind 3 Soundmodule dazugekommen.
Jetzt müsstest du mal testen, ob du diese manuell nachladen kannst und ob es dann geht.
als root
Code:
/sbin/modprobe snd-pcm-oss
/sbin/modprobe snd-mixer-oss
/sbin/modprobe snd-seq

sollte das funktionieren, dann mal in der /etc/sysconfig/sound nachschauen was da unter
Code:
LOAD_SEQUENCER=
LOAD_OSS_EMUL_MODULES=
steht, und mal probehalber beider auf "yes" stellen und
mit
Code:
/etc/rc.d/alsasound stop 
/etc/rc.d/alsasound start
die Soundunterstützung neu starten.

robi
 
OP
T

TheMaLo

Newbie
Also die 3 sachen modproben dann funzts.

Aber in /etc/.... sind beie Einträge auf yes... was nun?
 
A

Anonymous

Gast
TheMaLo schrieb:
Leider kann ich dir da jetzt nicht viel weiterhelfen, ich habe eine ganz andere SuSE-Version drauf, und in punkto Sound auch einiges am Kernel geändert, bei mir wird das so wie ich beschrieben habe, über /etc/rc.d/alsasound gesteuert, allerdings habe ich auch eine andere Soundkarte und es funktioniert bei mir auch ohne das diese Module geladen sind, bzw. diese und andere fehlende Soundmodule werden automatisch nachgeladen sobald ich versuche "Krach" zu machen.

Notfalls, wenn du keine andere Möglichkeit findest, dann diese 3 Ladebefehle in einem kleinem Script am Ende des Bootvorganges starten.
(hinter alsasound und hwscan aber vor xdm )
Hilfe dafür gibts hier:
[HOWTO] runlevel scripte - selber erstellen
http://www.linux-club.de/viewtopic.php?t=16069
und hier:
http://www.linux-club.de/viewtopic.php?t=41111


robi
 
OP
T

TheMaLo

Newbie
So ich hab mir so ein Script namens snd gebaut... wenn ich das hier manuell mache funktionierts:
Code:
rcsnd start
rcalsasound restart

Ich hab das snd-Script auch so eingestellt das es automatisch gestartet werden sollte (vor alsasound), aber das funktioniert nicht. Keine Ahnung warum, wie find ich das raus?
 
A

Anonymous

Gast
TheMaLo schrieb:
Ich hab das snd-Script auch so eingestellt das es automatisch gestartet werden sollte (vor alsasound), aber das funktioniert nicht. Keine Ahnung warum, wie find ich das raus?

Wenn du ein script geschrieben hast, in dem diese 3 Module geladen werden, dann muss dieses definitiv hinter alsasound gestartet werden, da es auf Resourcen und Module zurückgreift, die erst mit alsasound geladen werden (zB modul snd) und sonst unbekannt sind und somit ein laden der Module verhindern. Ein nachfolgender Reset von alsasound, ist aber meiner Meinung nach, nicht notwendig.
( ist vielleicht in meiner obrigen Beschreibung nicht richtig rübergekommen )

robi
 
OP
T

TheMaLo

Newbie
Also ich hab in mein Startscript nun reingeschrieben es brauch alsa vorher... lief nicht. Dann hab ich in den ausführen-teil (also das was beim starten gemacht wird) noch ein rcalsasound restart eingebaut.. es klahapt :)

Damit wär das Problem hier gelöst, danke
 

MrBacon

Newbie
hallo! Hatte das selbe problem! (wirklich eins zu eins! Also ist es wahrscheinlich ein bug oder die Treiber sind nicht vollständig!)
Habe mir ein script geschrieben:

Code:
#! /bin/sh
# /etc/init.d/alsaneu
### BEGIN INIT INFO
# Provides:       alsaneu
# Required-Start: $alsasound
# X-UnitedLinux-Should-Start: 
# Required-Stop:
# Default-Start:  3 5
# Default-Stop:   0 1 2 6
# Description:    Starts Alsa right
### END INIT INFO

case "$1" in
  start)
	/sbin/modprobe snd_pcm_oss           
	/sbin/modprobe snd_mixer_oss        
	/sbin/modprobe snd_seq             
	/sbin/modprobe snd_via82xx        
	/sbin/modprobe gameport          
	/sbin/modprobe snd_ac97_codec   
	/sbin/modprobe snd_ac97_bus    
	/sbin/modprobe snd_pcm        
	/sbin/modprobe snd_timer      
	/sbin/modprobe snd_page_alloc    
	/sbin/modprobe snd_mpu401_uart  
	/sbin/modprobe snd_rawmidi    
	/sbin/modprobe snd_seq_device  
	/sbin/modprobe snd
	echo "Gestartet"
	;;
   stop)
	echo "Gestopt"
	;;  
   restart)
	echo "Restartet"
	$0 start
	;;
   *)
	echo "Usage: $0 {start|stop|restart}"
	exit 1
esac

einmal als Shellscript in der /etc/init.d

und dann noch in der /etc/init.d/rc5.d
einen hardlink mit S13NAME rein und schon ist alles in ordnung :)
 
OP
T

TheMaLo

Newbie
Nuja.. nu brauch ichs ned mehr ;) klappt ja.

Bekomme vllt Weihnachten nen Lappi... dann gehen die Probs wieder los und dann holsch dein Script ;)
 

MrBacon

Newbie
komischerweise setzt mein suse immer mein script an S01 also als erstes gestartet obwohl eine abhängigkeit durch alsasound gegeben ist!
Aber egal er startet alles richtig => auch bei mir funzts! Zwar durch umwege aber es geht :)
Jetzt bin ich mit linux zufrieden!
 
OP
T

TheMaLo

Newbie
Das bin ich seit dem ich kwrite entdeckt hab :D

Seit dem programmiere ich extrem und meine windoff partition verfault (bzw mein kleiner Brider haut sie nach und nach in Stücke :p)

So... nun hab ich ein schnönes funktionierendes konfiguriertes Linux. Wird zeit ne neue Herausforderung zu finden.
 

soso

Newbie
hallo!
hab auch so ein ähnliches problem!
bin noch nicht so der linux-könner deswegen bitte ich hier um hilfe!

meine lsmod ausgabe vorher (nur die ersten paar zeilen! dann is eh alles gleich):

Code:
Module                  Size  Used by
udf                    83716  0
snd_trident            42916  0
gameport               14600  2 snd_trident
snd_ac97_codec         91004  1 snd_trident
snd_ac97_bus            2432  1 snd_ac97_codec
snd_pcm                93064  2 snd_trident,snd_ac97_codec
snd_timer              24452  1 snd_pcm
snd_page_alloc         10632  2 snd_trident,snd_pcm
snd_util_mem            4992  1 snd_trident
snd_mpu401_uart         7296  1 snd_trident
snd_rawmidi            24864  1 snd_mpu401_uart
snd_seq_device          8588  2 snd_trident,snd_rawmidi
snd                    60420  8 snd_trident,snd_ac97_codec,snd_pcm,snd_timer,snd_util_mem,snd_mpu401_uart,snd_rawmidi,snd_seq_device


und nachher (nur die ersten paar zeilen! dann is eh alles gleich):

Code:
Module                  Size  Used by
snd_pcm_oss            59168  0
snd_mixer_oss          18944  1 snd_pcm_oss
snd_trident_synth      12416  1
snd_seq_instr           7936  1 snd_trident_synth
snd_seq_midi_emul       7040  1 snd_trident_synth
snd_ainstr_simple       2816  1 snd_trident_synth
snd_seq                51984  4 snd_trident_synth,snd_seq_instr,snd_seq_midi_emu
l
snd_trident            42916  1 snd_trident_synth
snd_ac97_codec         91004  1 snd_trident
snd_ac97_bus            2432  1 snd_ac97_codec
snd_pcm                93064  3 snd_pcm_oss,snd_trident,snd_ac97_codec
snd_timer              24452  2 snd_seq,snd_pcm
snd_util_mem            4992  1 snd_trident
snd_mpu401_uart         7296  1 snd_trident
snd_rawmidi            24864  1 snd_mpu401_uart
snd_seq_device          8588  4 snd_trident_synth,snd_seq,snd_trident,snd_rawmid
i
snd                    60420  13 snd_pcm_oss,snd_mixer_oss,snd_seq_instr,snd_seq
_midi_emul,snd_seq,snd_trident,snd_ac97_codec,snd_pcm,snd_timer,snd_util_mem,snd
_mpu401_uart,snd_rawmidi,snd_seq_device
udf                    83716  0
gameport               14600  2 snd_trident
snd_page_alloc         10632  3 snd_trident_synth,snd_trident,snd_pcm


was muss ich jetzt machen?

bitte um hilfe!

danke!
 
OP
T

TheMaLo

Newbie
Zuerst Alsaconf neustarten und dann X so liefs bei mir. ch hab mir aber inzwichen (weil mir das bei jedem Neustart zu umsändlich war) ein init script gebaut (seeeehr schlampig :p) mit dem das beim hochfahren gemacht wird. Klappt einwandfrei muss ich sagen.
 

soso

Newbie
joa, wie bau ich mir so ein init script?
egal ob schlampig oder nicht :D ich will nur das es geht!

glg
 
Oben