[Eisfair] ALSA anstatt OSS -> HILFE!
Peter Bäumer
peter at baeumer.dd-dns.de
Do Sep 25 18:42:37 CEST 2014
Glück Auf! Newsgroup,
ich lote geradeaus wie das mit dem Sound unter Linux funz, speziell was
alles für ALSA nötig ist.
Den Quellcode für Alsa habe mir von
http://www.alsa-project.org/main/index.php/Download
heruntergeladen und durch den Compiler geschickt.
Die alsa-driver (sind beim Kernel dabei, 2.6er -> die Version 1.0.21 und
der 3.2er -> V. 1.0.24) und pyalsa habe ich erst mal außen vor gelassen.
Was geht:
Beim 2.6er Kernel:
alsaconf --> pci Karten werden erkannt und die Module werden geladen :)
(/etc/modprobe.d/50-sound.conf wird angelegt)
isa Soundkarten sind bei mir ausgestorben und konnten
deshalb nicht getestet werden.
Das Skript alsaconf nicht nicht für das erkennen von
USB-Soundkarten ausgelegt :(
alsamixer --> Die entsprechenden Lautstärkenregler für die Soundkarte
sind vorhanden und weitere Regler können über asound.conf
konfiguriert werden, z.B. für den mpd oder mpg123.
aoss --> aoss funzt auch, das Skript ermöglicht Programmen die
eigentlich nur Klang über OSS wider geben ihn
über alsa zuleiten.
Die Programme speaker-test aplay verrichten auch ihren dienst wie
erwartet. Die Restlichen Programme habe ich noch nicht getestet, hier
hapert es daran das ich nicht weiß wofür die sind und wie es aussieht
muss wenn sie funktionieren.
Was nicht geht hängt mit dem 3.2er Kernel zusammen
alsaconf --> erkennt den 3.2er Kernel als "alten Kernel" und legt
die Datei /etc/modprobe.conf an, das gibt aber gemecker von
modprobe. Das Skript müsste angepasst werden für
den 3.2er Kernel. PCI Karten werden erkannt
und Treiber werden geladen.
Die abfrage aplay -L ergibt zwar ein Ergebnis:
null
Discard all samples (playback) or generate zero samples (capture)
aber nur "null" wird angezeigt, alle Regler von der Soundkarte fehlen.
Die Module für Sound sind alle geladen.
lsmod|grep snd
snd_mixer_oss 10010 0
snd_hda_codec_realtek 134206 1
snd_hda_intel 16514 0
snd_hda_codec 44239 2 snd_hda_codec_realtek,snd_hda_intel
snd_pcm 47848 2 snd_hda_intel,snd_hda_codec
snd_timer 11975 1 snd_pcm
snd 34753 6 snd_mixer_oss,snd_hda_codec_realtek,
snd_hda_intel,snd_hda_codec,
snd_pcm,snd_timer
snd_page_alloc 4817 2 snd_hda_intel,snd_pcm
soundcore 3385 1 snd
und auch die Soundkarte ist von Kernel erkannt worden:
cat /proc/asound/cards
0 [Intel ]: HDA-Intel - HDA Intel
HDA Intel at 0xfbe70000 irq 22
Aber
alsamixer
cannot open mixer: No such device
sowie
aplay -l
aplay: device_list:268: no soundcards found...
weigern sich ihren Dienst unter dem 3.2er Kernel zu tun :(
Das Abspielen von mp3 Dateien mit mpg123 direkt, also Soundquelle -->
ALSA-Treiber --> Hardware, funktioniert - aber nur sehr leise.
Ich hab keinen Plan wie so das so ist und ich habe keinen Ansatz für
eine Lösung für das Problem.
Googel spuckt einiges zu den Meldungen von alsamixer und aplay -l aus
aber ich habe nicht verwertbares gefunden :(
Was ich gefunden habe ist von wo die Fehlermeldung von aplay kommt:
Quellcode aplay.c zielen 257 bis 270
static void device_list(void)
{
snd_ctl_t *handle;
int card, err, dev, idx;
snd_ctl_card_info_t *info;
snd_pcm_info_t *pcminfo;
snd_ctl_card_info_alloca(&info);
snd_pcm_info_alloca(&pcminfo);
card = -1;
if (snd_card_next(&card) < 0 || card < 0) {
error(_("no soundcards found..."));
return;
}
.
.
.
Da mein C nicht besonders ist, kann ich hier nur erkennen das "card" zu
wenig Inhalt hat. Interessant wäre zu wissen von wo die Informationen
herkommen sollen die in "card" gestopft werden sollen.
Das da, so meine Vermutung, der Hase im Pfeffer liegt.
Hat Irgendjemand eine Idee wieso alsamixer und aplay keine Info beim
3.2er Kernel über die Soundkarte bekommt?
Muss beim Kompilieren des ALSA-Quellcodes beim 3.2er irgendetwas anderes
beim ./configure mit angegeben werden?
Wäre für Hilfe sehr dankbar.
MfG
Peter Bäumer
Mehr Informationen über die Mailingliste Eisfair