Volume controls for speakers stopped working


After one of recent updates, unfortunately, I didn’t notice it right away and can’t say which one exactly, volume controls stopped working on my ASUS Zephyrus G14, but only for speakers, headphones work fine. The volume seems to be stuck at maximum. The problem with speakers is explicitly mentioned on Arch wiki’s ASUS GA401 page (sorry, it seems like i’m not allowed to post links here) , but the patch suggested there doesn’t seem to do anything.

I have 5.8.18-1 kernel and pulseaudio 13.99.3.

Any ideas what can help? Thanks in advance!

With pulseaudio 14.0 and 5.9.11-3 kernel volume started to become louder above 100% (before it didn’t, just changed timbre a little), but otherwise it still doesn’t work.

ASUS GA401I - ArchWiki

I suggest you check if the patch has been applied

grep -A14 'Element Hardware Master' /usr/share/alsa-card-profile/mixer/paths/analog-output-speaker.conf

It should look like this:

 [Element Hardware Master]
 switch = mute
 volume = ignore
 [Element Master]
 switch = mute
 volume = ignore

 [Element PCM]
 switch = mute
 volume = merge
 override-map.1 = all
 override-map.2 = all-left,all-right

Edit the file if changes have not been applied

1 Like

Oh. I tried it before the recent update and it didn’t seem work, but I didn’t think to check if it does after the update. And it does (or I was doing it wrong before). Thank you very much!

1 Like

This solution is not complete.

The laptop has tweeters and woofers. The problem is that by default the volume controls will adjust the volume of the tweeters but not the woofers. This causing the sound to get “muddier” but not quieter at lower volumes.

The solution proposed here enables control of the woofers, but also completely disables the tweeters. this causes you to lose lots of detail in the sound, which is a shame because the speakers on this device are pretty nice!

You can verify this by playing a high pitched sound (search youtube for 15khz), and checking if sound comes out of the tweeters (located under the two small grilles on the palm rest).

I’ve been hunting around for a solution for a couple days now without much luck. I’m running Ubuntu rather manjaro, but I have tried similar fixes for PopOS and arch with the same unsatisfactory results.

Ubuntu has not backported Pulseaudio v14.0 yet so you probably still have development version of PulseAudio

Ubuntu – Package Search Results – pulseaudio
Ubuntu 20.04 - 1:13.99.1-1ubuntu3.8
Ubuntu 21.04 -1:13.99.2-1ubuntu2.1

If you need a 15kHz test tone try this

pacmd load-module module-sine frequency=15000
1 Like

Hi, thanks for the reply.
Are you sure this can’t be fixed through configuration?
If not, am I likely to be see much success building and installing 14.0 myself?
Also, can confirm I’m running 13.99.1.

15000 Hz tone is audible, so I guess it means that the solution does work at least for me. And the overall sound is ok, although i don’t remember how it sounded before the problem appeared.

Also it may be of help to mention here how to stop the sound without googling:

pacmd unload-module module-sine

The tone is still audible with only the woofers working, but much quieter.
Since my last reply I’ve also found accounts suggesting that the update to 13.99.1 a few months ago might have caused this issue, so backdating may also help in my case.
Either way, thanks for the replies and helping me narrow in on a solution!

Hmm. I’m not sure about tweeters, but there’s definitely a problem of different sort: volume controls work only until the system is rebooted. After a reboot volume controls don’t function at first and only start working after pulseaudio -k and up again.

Killing PulseAudio directly can affect the systemd pulseaudio.service
PulseAudio is able respawn without the systemd service, but not in the exact same state

I suggest you check systemd service and socket to make sure they have not failed

systemctl --user -l --no-pager status pulseaudio*

Use this command to restart PulseAudio without breaking pulseaudio.service

systemctl --user restart pulseaudio
systemctl --user -l --no-pager status pulseaudio*

output is:

[x@y ~]$ systemctl --user -l --no-pager status pulseaudio*
● pulseaudio.socket - Sound System
     Loaded: loaded (/usr/lib/systemd/user/pulseaudio.socket; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-12-05 12:29:18 MSK; 18min ago
   Triggers: ● pulseaudio.service
     Listen: /run/user/1000/pulse/native (Stream)
     CGroup: /user.slice/user-1000.slice/user@1000.service/pulseaudio.socket

Dec 05 12:29:18 y systemd[1420]: Listening on Sound System.

● pulseaudio.service - Sound Service
     Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-12-05 12:29:19 MSK; 18min ago
TriggeredBy: ● pulseaudio.socket
   Main PID: 1477 (pulseaudio)
     CGroup: /user.slice/user-1000.slice/user@1000.service/pulseaudio.service
             ├─1477 /usr/bin/pulseaudio --daemonize=no --log-target=journal
             └─1541 /usr/lib/pulse/gsettings-helper

Dec 05 12:29:18 y systemd[1420]: Starting Sound Service...
Dec 05 12:29:19 y systemd[1420]: Started Sound Service.
Dec 05 12:44:23 y pulseaudio[1477]: ALSA woke us up to write new data to the device, but there was actually nothing to write.
Dec 05 12:44:23 y pulseaudio[1477]: Most likely this is a bug in the ALSA driver 'snd_hda_intel'. Please report this issue to the ALSA developers.
Dec 05 12:44:23 y pulseaudio[1477]: We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() returned 0 or another value < min_avail.

systemctl --user restart pulseaudio ultimately has the same effect as pulseaudio -k, i. e. volume controls start working. systemctl --user -l --no-pager status pulseaudio* output afterwards is the same

System usually runs a boot script /usr/bin/start-pulseaudio-x11 to load 2 PulseAudio modules
module-x11-publish and module-x11-xsmp

pulseaudio -k will trigger PulseAudio to respawn but the x11 modules do not get reloaded
this can be confirmed by checking pasystray or pactl list short modules

The absent modules may not have a noticeable effect, but some users may have problems if they are absent

Is there any way to make system run the correct thing right away, without the need to restart pulseaudio then?

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.