Discussion:
[OpenIndiana-discuss] No audio on Ryzen system
Gary Mills
2018-07-06 15:49:49 UTC
Permalink
I'm running OI-hipster on a system with an ASUS PRIME B350M-A
motherboard and an AMD Ryzen 3 1200 Quad-Core Processor. The device
driver shows two audio hardware devices, both with drivers:

Audio Advanced Micro Devices, Inc. [AMD/ATI] Caicos HDMI Audio [Radeon
HD 6450 / 7450/8450/8490 OEM / R5 230/235/235X OEM] audiohd

Audio Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh)
HD Audio Controller audiohd

I also have an add-on video card, that shows up this way:

Video Advanced Micro Devices, Inc. [AMD/ATI] Caicos PRO
[Radeon HD 7450] vgatext

I have my speakers plugged into the light green jack on the back of
the computer, but I get no sound from them. I suspect that OI is
using the wrong audio hardware device. I have this device link:

lrwxrwxrwx 1 root root 7 Sep 20 2017 /dev/audio -> sound/0

That corresponds to the Caicos HDMI Audio device. There are actually
two devices with single-letter names:

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

The second one corresponds to the HD Audio Controller audio device.

What's the best way to get sound working on this system?
--
-Gary Mills- -refurb- -Winnipeg, Manitoba, Canada-
Aurélien Larcher
2018-07-06 16:17:14 UTC
Permalink
Probably fix the Pulseaudio OSS backend or merge Alexander's PR to
default libmatemixer to OSS.
Post by Gary Mills
I'm running OI-hipster on a system with an ASUS PRIME B350M-A
motherboard and an AMD Ryzen 3 1200 Quad-Core Processor. The device
Audio Advanced Micro Devices, Inc. [AMD/ATI] Caicos HDMI Audio [Radeon
HD 6450 / 7450/8450/8490 OEM / R5 230/235/235X OEM] audiohd
Audio Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh)
HD Audio Controller audiohd
Video Advanced Micro Devices, Inc. [AMD/ATI] Caicos PRO
[Radeon HD 7450] vgatext
I have my speakers plugged into the light green jack on the back of
the computer, but I get no sound from them. I suspect that OI is
lrwxrwxrwx 1 root root 7 Sep 20 2017 /dev/audio -> sound/0
That corresponds to the Caicos HDMI Audio device. There are actually
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
The second one corresponds to the HD Audio Controller audio device.
What's the best way to get sound working on this system?
--
-Gary Mills- -refurb- -Winnipeg, Manitoba, Canada-
_______________________________________________
openindiana-discuss mailing list
https://openindiana.org/mailman/listinfo/openindiana-discuss
--
---
Praise the Caffeine embeddings
Gary Mills
2018-07-12 01:53:46 UTC
Permalink
Post by Aurélien Larcher
Probably fix the Pulseaudio OSS backend or merge Alexander's PR to
default libmatemixer to OSS.
The problem seems to be that this system has two audio devices.
Here's how they appear in the device driver utility:

Audio Advanced Micro Devices, Inc. [AMD/ATI] Caicos HDMI Audio [Radeon
HD 6450 / 7450/8450/8490 OEM / R5 230/235/235X OEM] audiohd

Audio Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh)
HD Audio Controller audiohd

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.

I verified that the new environment variable showed up in
mate-terminal, and also with `pargs -e' that it appeared in the
environment list of mate-volume-control-applet and the pulseaudio
daemon.

This command now gives me sound:

$ audioplay /usr/share/audio/samples/au/gong.au

This one displays the correct device:

$ audioctl show-device
Device: /dev/sound/audiohd:1mixer
Name = audiohd#1
Config = onboard1 (a)
HW Info = Unknown HD codec: 0x10ec0887

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. I read about a patch for pulseaudio
that fixed this problem. I don't know if the volume control applet
has an equivalent patch.

PS: I see three mixer devices in /dev . Two appear to be hardware
devices. The third appears to be software.
--
-Gary Mills- -refurb- -Winnipeg, Manitoba, Canada-
Gary Mills
2018-07-13 13:46:29 UTC
Permalink
Post by Gary Mills
Post by Aurélien Larcher
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,
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.
[...]
Post by Gary Mills
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-
Gary Mills
2018-08-13 23:40:02 UTC
Permalink
Post by Aurélien Larcher
Probably fix the Pulseaudio OSS backend or merge Alexander's PR to
default libmatemixer to OSS.
I chose to fix pulseaudio. See Bug #9732 for details.
--
-Gary Mills- -refurb- -Winnipeg, Manitoba, Canada-
Continue reading on narkive:
Loading...