Project

General

Profile

Bug #13186

Regression: MATE Desktop Volume slider stopped working after git commit #6093

Added by Geoff Weiss 2 months ago. Updated about 2 months ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
Difficulty:
Medium
Tags:

Description

After the recent change for pulse to support an oss device that isn't the first one, the main MATE volume control no longer changes the volume. This happens on both a system where pulse audio worked prior to this pulse change and on a system which needed to this patch (prior to this patch, there was no audio, after patch, audio work, but no volume control with master slider.

I can confirm that on the system where audio worked prior to this change, I can change the volume on the Applications tab of the Sound Preferences (find the running application and change the volume slider for that application). This is a work-around as long as OI applications have been ported to use pulse instead of OSS.

It should be noted that the behavior I see on OI now matches the behavior of Solaris 11.4.

I am using MATE 1.24.1.

#1

Updated by Andreas Wacknitz 2 months ago

In order to investigate further we need more information. Eg., can you tell us more about your hardware?
Are there more than one instance of the audio device? If so, which one is being used?

This: http://jamesdeagle.blogspot.com/2017/09/openindiana-hipster-console-workaround.html blog post provides a script for changing the volume on instance 0 (you can adapt it for other instances):

read a
audioctl set-control -d /dev/sound/audiohd:0mixer volume $a
audioctl set-control -d /dev/sound/audiohd:0mixer headphones $a:$a
audioctl set-control -d /dev/sound/audiohd:0mixer speaker $a:$a

Does this work for you?

#2

Updated by Gary Mills 2 months ago

There are two mouse-driven audio controls on OI's Mate desktop. Last time I checked, they both worked. If you are reporting trouble with one, please let us know which one. The more detailed your description is, the easier it will be for us to solve the problem.

You can also help us by doing some debugging of pulseaudio on your hardware. First of all, check if you have AUDIODEV set in the environment. Here's how:

$ env | grep AUDIODEV
AUDIODEV=/dev/sound/1

Make this change in /etc/pulse/daemon.conf to enable debugging:

< ; log-level = notice
---
> log-level = debug

Also, make this change in /etc/syslog.conf:

< *.err;kern.debug;daemon.info;mail.crit                /var/adm/messages
---
> *.err;user.debug;kern.debug;daemon.info;mail.crit     /var/adm/messages

And make it take effect, like this, as root:

# pgrep syslogd
NNNN
# kill -HUP NNNN

You have to log out and log in again to restart the pulseaudio deamon. After that, all the pulseaudio messages should appear in /var/adm/messages .

#3

Updated by Gary Mills 2 months ago

One thing about pulseaudio that I forgot to mention is that it stores information in each user's home directory. If you look in your .pulse directory, you will see several gdm database files. It uses this information to set many things, volume control for example, so that it behaves the same on each login. Old information can confuse pulseaudio. If necessary, you can rename the .pulse directory. On the next logout and login, pulseaudio will create a new directory and new databases. They might work better. If not, you can undo your change.

#4

Updated by Geoff Weiss 2 months ago

I will go through everything listed here on each system, but there will be a several day gap between systems.

Since the time I opened this ticket, I updated a third OI system and the problems I saw on the first two systems did not occur on the third (everything worked as usual on the third system). I suspect that if I GUI logout, then blow away the ~/.audioctl and ~/.config/pulse directories, and then reboot, the problem may be resolved. But, I want to go through all the steps outlined here just to see if I can get better understanding of the different layers.

I will provide updates in the upcoming days.

#5

Updated by Geoff Weiss about 2 months ago

On the both systems with problems, I can do the following to set volume levels:

audioctl set-control -d audiohd#0 volume 50
audioctl set-control -d audiohd#0 volume 100

All of the troubleshooting from this point onwards is only on the system which MATE's volume controls worked before getting the update last week.

I can change the volume with this control as well:
audioctl set-control -d audiohd#0 front 50
audioctl set-control -d audiohd#0 front 100

The complete list of controls on my audio device:
audioctl show-control -d audiohd#0
CONTROL VALUE
volume 100
speaker 75:75
headphones 75:75
mic 50:50
front 100:100
monitor-gain 0:0
loopback off
record-source mic

My audio device from ddu is listed as "6 Series/C200 Series Chipset Family High Definition Audio Controller" from the vendor Intel Corporation.

The audio does not change if I move the slider up and down with the volume control in the MATE panel (click on speaker icon in MATE top panel) nor does it change the volume with the "Output Volume" at the top of the Sound Preferences (accessed by right clicking on the speaker icon in the MATE top panel). I do not believe there are any other volume controls with MATE.

I enable the requested debugging in pulse and syslog.conf. When I move the slider in the volume control in the panel, this is a snippet from what shows up in the logs:

Oct 1 00:15:15 oibox pulseaudio3128: [ID 295310 user.debug] [(null)] oss-util.c: got value 0x00004242 from volume
Oct 1 00:15:15 oibox pulseaudio3128: [ID 295310 user.debug] [(null)] sink.c: The reference volume of sink oss_output.dsp0 changed from front-left: 43909 / 67%, front-right: 43909 / 67% to front-left: 43253 / 66%, front-right: 43253 / 66%.
Oct 1 00:15:15 oibox pulseaudio3128: [ID 295310 user.debug] [(null)] oss-util.c: got value 0x00004242 from volume
Oct 1 00:15:15 oibox pulseaudio3128: [ID 295310 user.info] [(null)] module-device-restore.c: Storing volume/mute for device+port sink:oss_output.dsp0:null.
Oct 1 00:15:15 oibox pulseaudio3128: [ID 295310 user.debug] [(null)] oss-util.c: got value 0x00004242 from volume
Oct 1 00:15:15 oibox pulseaudio3128: [ID 295310 user.debug] [(null)] protocol-native.c: Client changes volume of sink oss_output.dsp0.
Oct 1 00:15:15 oibox pulseaudio3128: [ID 295310 user.debug] [(null)] sink.c: The reference volume of sink oss_output.dsp0 changed from front-left: 43253 / 66%, front-right: 43253 / 66% to front-left: 39321 / 60%, front-right: 39321 / 60%.
Oct 1 00:15:15 oibox pulseaudio3128: [ID 295310 user.debug] [(null)] oss-util.c: set value 0x0000003b on volume
Oct 1 00:15:15 oibox pulseaudio3128: [ID 295310 user.debug] [(null)] oss-util.c: got value 0x00003b3b from volume
Oct 1 00:15:15 oibox pulseaudio3128: [ID 295310 user.debug] [(null)] sink.c: The reference volume of sink oss_output.dsp0 changed from front-left: 39321 / 60%, front-right: 39321 / 60% to front-left: 38666 / 59%, front-right: 38666 / 59%.
Oct 1 00:15:15 oibox pulseaudio3128: [ID 295310 user.debug] [(null)] core-subscribe.c: Dropped redundant event due to change event.
Oct 1 00:15:15 oibox pulseaudio3128: [ID 295310 user.info] [(null)] module-device-restore.c: Storing volume/mute for device+port sink:oss_output.dsp0:null.
Oct 1 00:15:15 oibox pulseaudio3128: [ID 295310 user.debug] [(null)] oss-util.c: got value 0x00003b3b from volume
Oct 1 00:15:15 oibox pulseaudio3128: [ID 295310 user.debug] [(null)] protocol-native.c: Client changes volume of sink oss_output.dsp0.
Oct 1 00:15:15 oibox pulseaudio3128: [ID 295310 user.debug] [(null)] sink.c: The reference volume of sink oss_output.dsp0 changed from front-left: 38666 / 59%, front-right: 38666 / 59% to front-left: 38631 / 59%, front-right: 38631 / 59%.
Oct 1 00:15:15 oibox pulseaudio3128: [ID 295310 user.debug] [(null)] oss-util.c: set value 0x0000003a on volume
Oct 1 00:15:15 oibox pulseaudio3128: [ID 295310 user.debug] [(null)] oss-util.c: got value 0x00003a3a from volume
Oct 1 00:15:15 oibox pulseaudio3128: [ID 295310 user.debug] [(null)] sink.c: The reference volume of sink oss_output.dsp0 changed from front-left: 38631 / 59%, front-right: 38631 / 59% to front-left: 38010 / 58%, front-right: 38010 / 58%.
Oct 1 00:15:15 oibox pulseaudio3128: [ID 295310 user.debug] [(null)] core-subscribe.c: Dropped redundant event due to change event.
Oct 1 00:15:15 oibox pulseaudio3128: [ID 295310 user.info] [(null)] module-device-restore.c: Storing volume/mute for device+port sink:oss_output.dsp0:null.
Oct 1 00:15:15 oibox pulseaudio3128: [ID 295310 user.debug] [(null)] protocol-native.c: Client changes volume of sink oss_output.dsp0.
Oct 1 00:15:15 oibox pulseaudio3128: [ID 295310 user.debug] [(null)] sink.c: The reference volume of sink oss_output.dsp0 changed from front-left: 38010 / 58%, front-right: 38010 / 58% to front-left: 38666 / 59%, front-right: 38666 / 59%.

I followed the steps I outlined to rename .audioctl and .config/pulse. The behavior remains the same.

#6

Updated by Geoff Weiss about 2 months ago

I forget to note that I do not have the AUDIODEV environment variable set.

Geoff

#7

Updated by Gary Mills about 2 months ago

This is certainly peculiar behavior. It seems that there is a communications error between the Mate Sound Preferences application (the one you access from the System menu) and pulseaudio. For example, pulseaudio may be ignoring some mixer controls, and only using others. They behave normally for me.

What could be different between your systems and mine? I tested the new pulseaudio package on two systems, one intel with one audio device, and the other ryzen with two audio devices. The intel system used an ASUS PRIME B360M-A motherboard with an Intel Core i3-9100 CPU. The audio device was a Realtek ALC887 HD Audio CODEC. The ryzen system used an ASUS PRIME B350M-A motherboard with an AMD Ryzen 3 1200 CPU. The audio device was a Realtek ALC887-VD2 HD Audio CODEC. Both of them used the audiohd driver.

For the intel system, scanpci -v showed the PCI connection to the audio device this way:

pci bus 0x0000 cardnum 0x1f function 0x03: vendor 0x8086 device 0xa348
 Intel Corporation Cannon Lake PCH cAVS
 CardVendor 0x1043 card 0x86c7 (ASUSTeK Computer Inc., Card unknown)
  STATUS    0x0010  COMMAND 0x0146
  CLASS     0x04 0x03 0x00  REVISION 0x10
  BIST      0x00  HEADER 0x00  LATENCY 0x20  CACHE 0x10
  BASE0     0x0000000093210000 SIZE 16384  MEM64
  BASE4     0x0000000093000000 SIZE 1048576  MEM64
  MAX_LAT   0x00  MIN_GNT 0x00  INT_PIN 0x01  INT_LINE 0x0b

For the ryzen system, it was like this:

pci bus 0x000a cardnum 0x00 function 0x03: vendor 0x1022 device 0x1457
 Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) HD Audio Controller
 CardVendor 0x1043 card 0x86c7 (ASUSTeK Computer Inc., Card unknown)
  STATUS    0x0010  COMMAND 0x0047
  CLASS     0x04 0x03 0x00  REVISION 0x00
  BIST      0x00  HEADER 0x80  LATENCY 0x00  CACHE 0x10
  BASE0     0xfce00000 SIZE 32768  MEM
  MAX_LAT   0x00  MIN_GNT 0x00  INT_PIN 0x03  INT_LINE 0x05

As you can see, the audio hardware on both systems was quite similar.

#8

Updated by Gary Mills about 2 months ago

I updated both my test systems to the current OI version, just to be sure that the pulseaudio package from OI behaved the same as the package I had developed. The compiler might have been different, for example. They behaved exactly the same. The volume control slider (the one you get by clicking on the speaker icon in the top bar) worked correctly on both systems. As far as I can tell, there's no difference between the packages.

In cases where the slider doesn't work, there must be some difference between those systems and mine.

#9

Updated by Gary Mills about 2 months ago

I reviewed the syslog debugging messages posted above. I got the same messages on both of my test systems. The volume slider works there. For example, I got these messages:

Oct  5 08:44:06 intel pulseaudio[4047]: [ID 295310 user.debug] [(null)] oss-util.c: set value 0x00000042 on volume
Oct  5 08:44:06 intel pulseaudio[4047]: [ID 295310 user.debug] [(null)] oss-util.c: got value 0x00004242 from volume

The only difference is that the values were lower in the messages posted above. They seem to be one byte. I also got this message:

Oct  5 08:44:05 intel pulseaudio[4047]: [ID 295310 user.debug] [(null)] sink.c: The reference volume of sink oss_output.dsp0 changed from front-left: 61603 /  94%,   front-right: 61603 /  94% to front-left: 60948 /  93%,   front-right: 60948 /  93%.

Again, the outstanding difference was that the numbers and percentages were lower in the messages posted above. Other than that, the slider appears to work. There is a big difference, more that I would expect, between 50% and 95%. At 50%, the sound is very weak. At 95%, it is low but acceptable. I assume that the driver is responsible for the low volume, not pulseaudio.

Also available in: Atom PDF