When audio level is at 0 as expected no audio. Is heard but when I increase the volume level the volume is always at loudest possible.

Update: Ubuntu 18.10.

Laptop: asus ux550vd.

speakers laptop's builtin audio.

Audio device: Intel Corporation CM238 HD Audio Controller (rev 31).

00:1f.3 Audio device: Intel Corporation CM238 HD Audio Controller (rev 31)
Subsystem: ASUSTeK Computer Inc. CM238 HD Audio Controller
Flags: bus master, fast devsel, latency 32, IRQ 130
Memory at ed328000 (64-bit, non-prefetchable) [size=16K]
Memory at ed300000 (64-bit, non-prefetchable) [size=64K]
Capabilities: <access denied>
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
  • 1
    What version of Ubuntu are you using? Feb 20 '19 at 22:49
  • 1
    What is the type of audio device you are using? Feb 20 '19 at 22:49
  • 2
    Please gather your hardware details and add it to the post, see this question on how to do that. Feb 20 '19 at 22:50
  • I swear there was a very similar question like this, just days ago... but for the life of, I can't find it... Feb 25 '19 at 12:28

I had the same issue on my Laptop. (BTW my laptop is thinkpad x1)

When I checked the alsamixer I noticed that like you said, it was the PCM changes that affect volume and not Master.

I come upon this solution, and It worked for me.

In short, find this file:


And add these three lines:

[Element Master]
switch = mute
volume = ignore

Directly above of this part of code:

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

And Restart.

  • Just wanted to leave a comment saying thank you for posting this, as I was noticing the same behavior but wasn't sure how to fix it. This does the job perfectly! I don't know if this is just an X1 thing, or what, but everything else I tried didn't work at all. Now to figure out how to disable battery thresholds set when Windows 10 was installed ;)
    – ThoseKind
    Mar 30 '20 at 1:55
  • You wouldn't believe how long I was confused as to why alsa doesn't control PCM if PCM volume is set to merge. Turns out only one channel can be merged at a time (who would've thought). Worked for Envy x360 13-ar0xxx
    – fufs
    May 1 '21 at 23:01

EDIT: pactl load-module module-alsa-sink control=PCM should result in pulseaudio seeing a new output device that will control the PCM volume. If changing this device allows for proper control of audio output volume, you can add a line load-module module-alsa-sink control=PCM to /etc/pulse/default.pa

PCM (pulse code modulation) occurs at ALSA kernel level, and is responsible for sampling and conversion of digital signals from software to analog ones heard out of your hardware (PCM Playback channel), as well as analog ones coming in from your microphone (PCM Capture) to their digital form.

Linux audio output and volume control allows for a lot of versatility, but it can make thinks more complicated and more difficult to troubleshoot as well. For output, the flow is more or less like this:

START:Application audio you wish to hear produces digital audio data

  > Pulse app and libraries (user control with pavucontrol happens here and changes are then sent to the pulse engine server) 

     > Pulse engine server (the core of Pulseaudio package)  

         >  ALSA Kernel API (alsamixer control, PCM, MIDI and Sequencer API) 

              > ALSA kernel driver processes data to make it understandable to our hardware

END: Speaker output

I think pactl from pulseaudio package should get you started and on the right track, please try

$pactl set-sink-volume $(pactl info | grep -i Sink | cut -d ':' -f2) 25%

and let us know if the audio volume gets set to 1/4 of the range, or again jumps to 100%.

  • the volume level goes to 52% but the audio output is still as loud as possible
    – EC84B4
    Feb 27 '19 at 7:53
  • Can you run pacmd list-sinks and post output. There will be lines that show volume steps available ` base volume: 65536 / 100% / 0.00 dB volume steps: 65537 ` but if you don't have that the rest of the info will help narrow the issue down.
    – Neticegear
    Feb 28 '19 at 0:46
  • gist.github.com/kh-bakhtiari/57a4301d6a37aea3010f6fdbc8d7823e here's the output
    – EC84B4
    Mar 1 '19 at 10:43
  • Thanks, I see that your card druver does not set the DECIBEL_VOLUME flag and your volumes appear without their decibel equivalents. Your number of steps is also off. Can you first make sure cat /etc/pulse/daemon.conf | grep flat outputs flat-volumes = no and if not edit the conf ,and restart pulse with killall pulseaudio. Then, please run pacmd unload-module module-udev-detect && pacmd load-module module-udev-detect ignore_DB=1 and let us know if this allows for better volume control. If so, I'll include the steps for making this permanent, as the above command won't survive reboot.
    – Neticegear
    Mar 1 '19 at 17:42
  • 1
    something that I saw now, after module load an output device is added and when I switched to that one everything works correctly
    – EC84B4
    Mar 2 '19 at 17:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.