[OpenIndiana-discuss] No audio on Ryzen system

Gary Mills gary_mills at fastmail.fm
Fri Jul 13 13:46:29 UTC 2018


On Wed, Jul 11, 2018 at 08:53:46PM -0500, Gary Mills wrote:
> On Fri, Jul 06, 2018 at 06:17:14PM +0200, Aurélien Larcher wrote:
> > Probably fix the Pulseaudio OSS backend or merge Alexander's PR to
> > default libmatemixer to OSS.
> 
> The HDMI device, instance zero, is on the video card.  The other,
> instance one, is on the motherboard.  They show up this way in /dev:
> 
> lrwxrwxrwx   1 root     root           7 Sep 20  2017 /dev/audio -> sound/0
> lrwxrwxrwx   1 root     root           9 Sep 20  2017 /dev/sound/0 -> audiohd:0
> lrwxrwxrwx   1 root     root           9 Sep 20  2017 /dev/sound/1 -> audiohd:1
> 
> I've been investigating this problem since last week.  The solution
> seems to be putting AUDIODEV=/dev/sound/1 into the desktop
> environment.  I put that into my .profile and exported it from there,
> and then logged out and in again.
[...]
> However, there's still no audio from desktop applications.  I suspect
> that pulseaudio and mate-volume-control-applet are both ignoring the
> AUDIODEV environment variable.

It seems that I unfairly maligned pulseaudio.  It does have code, in
src/modules/module-detect.c, that detects the AUDIODEV environment
variable and makes use of it to load the module-solaris module.
However, I identified three problems in pulseaudio that may contribute
to the original error that I noticed.

First of all, the symbols HAVE_OSS_OUTPUT and HAVE_SOLARIS are both
defined during the build of module-detect.so .  The code there assumes
that only one of them is defined.  Consequently, this module loads
both module-oss and module-solaris.  I verified this conclusion by
running `strings' against module-detect.so .  The output shows
/dev/audio plus /dev/sndstat, /dev/dsp, /dev/dsp%u.0, and /dev/dsp%u .
Something is broken in the configuration of pulseaudio.

Second, something that changes ownership of audio devices is still
running when pulseaudio starts.  With full logging from pulseaudio,
these messages appear:

    Jul 12 19:36:56 qtpie pulseaudio[26675]: [ID 295310 user.warning] [solaris] module-solaris.c: open /dev/sound/1 failed (Permission denied)
    Jul 12 19:37:20 qtpie pulseaudio[29760]: [ID 295310 user.info] [(null)] module-solaris.c: device opened in O_RDWR mode.

It does seem to retry the open, but still this failure should not be
happening.  After a desktop login completes, these are the devices:

    $ ll -L /dev/sound/1
    crw-------   1 mills    staff     30, 19 Dec 27  1986 /dev/sound/1
    $ ll -L /dev/sound/0
    crw-------   1 mills    staff     30,  3 Dec 27  1986 /dev/sound/0

After I've logged out from the desktop, they look like this:

    $ ll -L /dev/sound/?
    crw-------   1 lightdm  lightdm   30,  3 Dec 27  1986 /dev/sound/0
    crw-------   1 lightdm  lightdm   30, 19 Dec 27  1986 /dev/sound/1

Something must change their ownership in the background, during the
desktop login.

Finally, the pulseaudio daemon process keeps running after a desktop
logout, even though all the other processes started by the login have
terminated.  Here's an example:

     UID   PID  PPID   C    STIME TTY         TIME CMD
   mills  2707     1   0   Jul 04 ?           9:30 /usr/bin/pulseaudio --start --log-target=syslog

It seems to be reused on the next desktop login.  The problem with
this behavior is that configuration changes have no effect.  It may
require an explicit `kill -15' to terminate that process.  That does
work from a remote terminal session.


-- 
-Gary Mills-		-refurb-		-Winnipeg, Manitoba, Canada-



More information about the openindiana-discuss mailing list