[Pkg-pulseaudio-devel] Bug#522177: pulseaudio: on EWS88MT (Via ice1712) this is caused by IEC958 profiles

Arno Schuring aelschuring at hotmail.com
Tue May 12 23:51:50 UTC 2009


Subject: pulseaudio: no sound because of IEC958 profiles
Package: pulseaudio
Version: 0.9.15-1
Severity: normal

Short version: check the "Configuration" tab in pavucontrol!
Long version:

I got bitten today by this as well, after installation of 0.9.15-1
(0.9.14 worked without problems): no error messages, no indication that
anything is wrong, and still no sound. In fact, pavumeter happily shows
output as if music is playing, and in paman I can see streams appearing
and disappearing as they should. I even installed pavucontrol from
unstable (the one in testing has broken dependencies) to check for muted
steams as Julien mentioned above, but they are not muted. Also tried
commenting out the *-restore modules, had no effect.

I have solved my problem after much trial and error, I hope that this
will help others too.

Check the rightmost tab in pavucontrol, and see if there are any options
on that tab relating to IEC958 (also known as S/PDIF, digital audio).
Try to select an option that does NOT mention iec958, and you might get
your sound back. It might also be the case that the only option without
iec958 is "Off". If that is true, you're in my boat. Welcome! Try the
following:
- open /etc/pulse/default.pa, and
DISABLE module-hal-detect.so
ADD load-module module-alsa-sink sink_name=i_love_pulse_out device=hw:0

The ice1712-based cards have a 10-channel audio interface, so my actual
load-module line is a bit more complicated than the above. I haven't
tested the above line, you may have to adapt it for your own needs.

Now, as to why this is necessary: Pulseaudio tries to get different
configuration profiles from the ALSA information (seen with pulseaudio
-vv). In my case, there are none. Pulseaudio will log lines like:

D: alsa-util.c: Checking for playback on analog-stereo (front)
D: alsa-util.c: Trying front:0 with SND_PCM_NO_AUTO_FORMAT ...
D: alsa-util.c: Trying front:0 without SND_PCM_NO_AUTO_FORMAT ...
D: alsa-util.c: Trying plug:front:0 with SND_PCM_NO_AUTO_FORMAT ...
D: alsa-util.c: Trying plug:front:0 without SND_PCM_NO_AUTO_FORMAT ...
I: alsa-util.c: Failed to set hardware parameters on plug:front:0:
Invalid argument

However, it does find configuration profiles for the digital inputs and
outputs:

D: alsa-util.c: Checking for playback on iec958-stereo (iec958)
D: alsa-util.c: Trying iec958:0 with SND_PCM_NO_AUTO_FORMAT ...
[...]
D: alsa-util.c: Checking for capture on iec958-stereo (iec958)
D: alsa-util.c: Trying iec958:0 with SND_PCM_NO_AUTO_FORMAT ...
I: module-alsa-card.c: Found output profile 'Output Digital Stereo
(IEC958) + Input Digital Stereo (IEC958)'


And as a result, the only profiles available will be the digital ones.
By specifying a manual load-module line, you prevent PA from going on a
fishing trip for configuration profiles, and by commenting out the
hal-detect module, you prevent PA from trying to open the same device
twice (once via the config file, once via HAL autodetection).


Hope this helps anyone. As for this bug, maybe pulseaudio should try to
guess a profile if it can't get a useful response from ALSA. Or fall
back to not using profiles at all.


Regards,
Arno






More information about the Pkg-pulseaudio-devel mailing list