[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