You are not logged in.
Hello, I'm currently using Arch Linux with KDE Plasma and PipeWire. I am dual-booting with Windows 11, where the issue does not occur.
When using my USB headset, audio output works fine at 25% volume and above using KDE’s default audio controls. However, if I lower the volume to 24% or below, the audio cuts out completely. This behavior is not present on Windows 11, where the volume scales correctly throughout the full range.
I tried alsamixer, and it appears that when KDE shows volume at 24%, alsamixer shows the actual volume as 0%, which suggests that KDE is not mapping the range of the volume properly for this device.
System information:
$ kinfo
Operating System: Arch Linux
KDE Plasma Version: 6.3.5
KDE Frameworks Version: 6.14.0
Qt Version: 6.9.1
Kernel Version: 6.15.2-arch1-1 (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 9 7940HS w/ Radeon 780M Graphics
Memory: 14.8 GiB of RAM
Graphics Processor: AMD Radeon 780M Graphics
Playpack Devices:
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Device [USB Audio Device], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 3: Generic_1 [HD-Audio Generic], device 0: ALC256 Analog [ALC256 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
Any ideas on how to remap or adjust KDE’s volume scale to fix this?
Last edited by stygian_nymph (2025-06-19 22:43:07)
Offline
"amixer -M" but I suspect KDE will use pipewire or pulseaudio, likely via libpulse?
I guess w/o the "-M" amixer will also "misbehave"?
(alsamixer operates on the mapped audio which is what one should do if one wants to print numbers 0%-100% and not raw values)
Do pactl/pamixer behave correctly?
https://www.reddit.com/r/linuxaudio/com … t/gr5086b/
Online
"amixer -M" but I suspect KDE will use pipewire or pulseaudio, likely via libpulse?
Thanks for the replying, Here's the output of amixer:
$ amixer -M
Simple mixer control 'Master',0
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 65536
Mono:
Front Left: Playback 16462 [25%] [on]
Front Right: Playback 16462 [25%] [on]
Simple mixer control 'Capture',0
Capabilities: cvolume cvolume-joined cswitch cswitch-joined
Capture channels: Mono
Limits: Capture 0 - 65536
Mono: Capture 65536 [100%] [on]
Do pactl/pamixer behave correctly?
https://www.reddit.com/r/linuxaudio/com … t/gr5086b/
I tried adjusting the volume using both pactl and pamixer starting from 0% and increasing step by step. However, the headset only starts producing sound when the volume reaches 25%.
Last edited by stygian_nymph (2025-06-15 13:34:28)
Offline
Hi, sorry for the long delay.
I assume the 25% output there is when this is also what's reported by the plasma widget thingy and pactl and reflects an unmapped value (amixer w/o the -M) of 0%
So let's see whether that's coming from the hardware or pulseaudio
amixer -D hw:0
amixer -M -D hw:0
Also as sanity check on the pulseaudio installation
systemctl status pipewire wireplumber pulseaudio
Also please record the specific device
lsusb
Online
Hi, sorry for the long delay.
I assume the 25% output there is when this is also what's reported by the plasma widget thingy and pactl and reflects an unmapped value (amixer w/o the -M) of 0%
No problem, this is the output of amixer without additional parameters:
$ amixer
Simple mixer control 'Master',0
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 65536
Mono:
Front Left: Playback 16462 [25%] [on]
Front Right: Playback 16462 [25%] [on]
Simple mixer control 'Capture',0
Capabilities: cvolume cvolume-joined cswitch cswitch-joined
Capture channels: Mono
Limits: Capture 0 - 65536
Mono: Capture 65536 [100%] [on]
which I think shows the same value as KDE volume widget and pactl.
So let's see whether that's coming from the hardware or pulseaudio
amixer -D hw:0 amixer -M -D hw:0
$ amixer -D hw:0
Simple mixer control 'Speaker',0
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 37
Mono:
Front Left: Playback 1 [3%] [-36.00dB] [on]
Front Right: Playback 1 [3%] [-36.00dB] [on]
Simple mixer control 'Mic',0
Capabilities: pvolume pvolume-joined cvolume cvolume-joined pswitch pswitch-joined cswitch cswitch-joined
Playback channels: Mono
Capture channels: Mono
Limits: Playback 0 - 31 Capture 0 - 35
Mono: Playback 18 [58%] [-5.00dB] [off] Capture 35 [100%] [23.00dB] [on]
Simple mixer control 'Auto Gain Control',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [on]
$ amixer -M -D hw:0
Simple mixer control 'Speaker',0
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 37
Mono:
Front Left: Playback 1 [1%] [-36.00dB] [on]
Front Right: Playback 1 [1%] [-36.00dB] [on]
Simple mixer control 'Mic',0
Capabilities: pvolume pvolume-joined cvolume cvolume-joined pswitch pswitch-joined cswitch cswitch-joined
Playback channels: Mono
Capture channels: Mono
Limits: Playback 0 - 31 Capture 0 - 35
Mono: Playback 18 [44%] [-5.00dB] [off] Capture 35 [100%] [23.00dB] [on]
Simple mixer control 'Auto Gain Control',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [on]
Also as sanity check on the pulseaudio installation
systemctl status pipewire wireplumber pulseaudio
just running the above command shows me there are no system-wide services for the 3 packages despite pipewire and wireplumber are indeed installed:
$ systemctl status pipewire wireplumber pulseaudio
Unit pipewire.service could not be found.
Unit wireplumber.service could not be found.
Unit pulseaudio.service could not be found.
but the services for pipewire and wireplumber show in user services:
$ systemctl --user status pipewire wireplumber pulseaudio | cat
Unit pulseaudio.service could not be found.
● pipewire.service - PipeWire Multimedia Service
Loaded: loaded (/usr/lib/systemd/user/pipewire.service; disabled; preset: enabled)
Active: active (running) since Thu 2025-06-19 21:13:24 EEST; 22min ago
Invocation: 6cd45b6545894f88823ea7308d22af86
TriggeredBy: ● pipewire.socket
Main PID: 2520 (pipewire)
Tasks: 3 (limit: 17858)
Memory: 8.4M (peak: 10.2M)
CPU: 464ms
CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire.service
└─2520 /usr/bin/pipewire
Jun 19 21:13:24 archlinux systemd[2507]: Started PipeWire Multimedia Service.
● wireplumber.service - Multimedia Service Session Manager
Loaded: loaded (/usr/lib/systemd/user/wireplumber.service; enabled; preset: enabled)
Active: active (running) since Thu 2025-06-19 21:13:24 EEST; 22min ago
Invocation: ebd8eaa575f9421a8f9e81c75d5a9e1f
Main PID: 2521 (wireplumber)
Tasks: 6 (limit: 17858)
Memory: 6.1M (peak: 8.1M)
CPU: 1.303s
CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/wireplumber.service
└─2521 /usr/bin/wireplumber
Jun 19 21:13:24 archlinux systemd[2507]: Started Multimedia Service Session Manager.
Jun 19 21:13:24 archlinux wireplumber[2521]: wp-device: SPA handle 'api.libcamera.enum.manager' could not be loaded; is it installed?
Jun 19 21:13:24 archlinux wireplumber[2521]: s-monitors-libcamera: PipeWire's libcamera SPA plugin is missing or broken. Some camera types may not be supported.
Jun 19 21:35:19 archlinux wireplumber[2521]: wp-event-dispatcher: <WpAsyncEventHook:0x55a1ce0c3030> failed: <WpSiStandardLink:0x55a1ce1a3f00> link failed: 1 of 1 PipeWire links failed to activate
Jun 19 21:35:23 archlinux wireplumber[2521]: wp-event-dispatcher: <WpAsyncEventHook:0x55a1ce0c3030> failed: <WpSiStandardLink:0x55a1ce32f550> link failed: some node was destroyed before the link was created
here is lsusb output:
$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 2b7e:b685 Sonix Technology Co., Ltd. USB2.0 HD UVC WebCam
Bus 001 Device 003: ID 13d3:3571 IMC Networks Bluetooth Radio
Bus 001 Device 005: ID 0d8c:0012 C-Media Electronics, Inc. USB Audio Device
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
The specific device is
Bus 001 Device 005: ID 0d8c:0012 C-Media Electronics, Inc. USB Audio Device
Offline
I pretty much always forget to type --user but that's not the problem here.
So while amixer (showing the pipewire/pulseaudio device) shows an (unmapped) 25% the hardware (card 0 is still "Device [USB Audio Device]") is at 3% mapped and 1% unmapped, ie. the hardware is borderline mute on both accounts but the sound daemon isn't.
Does the HW slightly increment w/ the daemon or does it suddenly spike ad 26%/30%?
Shopping around for the symptoms, does using software volume help https://wiki.archlinux.org/title/PipeWi … 30%_volume ("probably", even if not the same problem. Or does the volume abruptly drop at the end?)
Online
Does the HW slightly increment w/ the daemon or does it suddenly spike ad 26%/30%?
I think the increase in HW is more than double the increase in KDE volume control widget. Using amixer -D hw:0
At 26%:
=======
Simple mixer control 'Speaker',0
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 37
Mono:
Front Left: Playback 2 [5%] [-35.00dB] [on]
Front Right: Playback 2 [5%] [-35.00dB] [on]
At 30%:
=======
Simple mixer control 'Speaker',0
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 37
Mono:
Front Left: Playback 6 [16%] [-31.00dB] [on]
Front Right: Playback 6 [16%] [-31.00dB] [on]
At 36%:
=======
Simple mixer control 'Speaker',0
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 37
Mono:
Front Left: Playback 11 [30%] [-26.00dB] [on]
Front Right: Playback 11 [30%] [-26.00dB] [on]
Shopping around for the symptoms, does using software volume help https://wiki.archlinux.org/title/PipeWi … 30%_volume ("probably", even if not the same problem. Or does the volume abruptly drop at the end?)
Oh I didn't notice this when I read that page before, that fixed the volume range to something more managable. I just needed to use pw-dump to get the device.name to only ignore hardware mixer volume control for my USB headset.
Thank you for helping!
Offline
The volume mapping follows a cubic root so you can expect large raw steps early on that get smaller as you're closing in on 100%
for ((i=0; i<37;++i)); do amixer -D hw:0 -R sset Speaker $i | grep 'Front Left: Playback'; done
(This will rapidly move through the entire volume, leaving at 100% - don't play any sound at the time, "amixer -D hw:0 -M sset Speaker 50%" shall get you 50%)
Online
Thanks for the information
$ for ((i=0; i<37;++i)); do amixer -D hw:0 -R sset Speaker $i | grep 'Front Left: Playback'; done
Front Left: Playback 0 [0%] [-37.00dB] [on]
Front Left: Playback 1 [3%] [-36.00dB] [on]
Front Left: Playback 2 [5%] [-35.00dB] [on]
Front Left: Playback 3 [8%] [-34.00dB] [on]
Front Left: Playback 4 [11%] [-33.00dB] [on]
Front Left: Playback 5 [14%] [-32.00dB] [on]
Front Left: Playback 6 [16%] [-31.00dB] [on]
Front Left: Playback 7 [19%] [-30.00dB] [on]
Front Left: Playback 8 [22%] [-29.00dB] [on]
Front Left: Playback 9 [24%] [-28.00dB] [on]
Front Left: Playback 10 [27%] [-27.00dB] [on]
Front Left: Playback 11 [30%] [-26.00dB] [on]
Front Left: Playback 12 [32%] [-25.00dB] [on]
Front Left: Playback 13 [35%] [-24.00dB] [on]
Front Left: Playback 14 [38%] [-23.00dB] [on]
Front Left: Playback 15 [41%] [-22.00dB] [on]
Front Left: Playback 16 [43%] [-21.00dB] [on]
Front Left: Playback 17 [46%] [-20.00dB] [on]
Front Left: Playback 18 [49%] [-19.00dB] [on]
Front Left: Playback 19 [51%] [-18.00dB] [on]
Front Left: Playback 20 [54%] [-17.00dB] [on]
Front Left: Playback 21 [57%] [-16.00dB] [on]
Front Left: Playback 22 [59%] [-15.00dB] [on]
Front Left: Playback 23 [62%] [-14.00dB] [on]
Front Left: Playback 24 [65%] [-13.00dB] [on]
Front Left: Playback 25 [68%] [-12.00dB] [on]
Front Left: Playback 26 [70%] [-11.00dB] [on]
Front Left: Playback 27 [73%] [-10.00dB] [on]
Front Left: Playback 28 [76%] [-9.00dB] [on]
Front Left: Playback 29 [78%] [-8.00dB] [on]
Front Left: Playback 30 [81%] [-7.00dB] [on]
Front Left: Playback 31 [84%] [-6.00dB] [on]
Front Left: Playback 32 [86%] [-5.00dB] [on]
Front Left: Playback 33 [89%] [-4.00dB] [on]
Front Left: Playback 34 [92%] [-3.00dB] [on]
Front Left: Playback 35 [95%] [-2.00dB] [on]
Front Left: Playback 36 [97%] [-1.00dB] [on]
Offline
Moves linear from -37dB to 0dB in 1dB steps, the 2.7% steps match (alternating beween 2% & 3% because it's rounded)
So what does that look like mapped then?
for ((i=0; i<38;++i)); do amixer -D hw:0 -M sset Speaker $i | grep 'Front Left: Playback'; done
Online
Sorry for the late reply
$ for ((i=0; i<38;++i)); do amixer -D hw:0 -M sset Speaker $i | grep 'Front Left: Playback'; done
Front Left: Playback 0 [0%] [-37.00dB] [on]
Front Left: Playback 1 [1%] [-36.00dB] [on]
Front Left: Playback 2 [3%] [-35.00dB] [on]
Front Left: Playback 3 [4%] [-34.00dB] [on]
Front Left: Playback 4 [5%] [-33.00dB] [on]
Front Left: Playback 5 [7%] [-32.00dB] [on]
Front Left: Playback 6 [8%] [-31.00dB] [on]
Front Left: Playback 7 [10%] [-30.00dB] [on]
Front Left: Playback 8 [11%] [-29.00dB] [on]
Front Left: Playback 9 [13%] [-28.00dB] [on]
Front Left: Playback 10 [15%] [-27.00dB] [on]
Front Left: Playback 11 [17%] [-26.00dB] [on]
Front Left: Playback 12 [19%] [-25.00dB] [on]
Front Left: Playback 13 [21%] [-24.00dB] [on]
Front Left: Playback 14 [23%] [-23.00dB] [on]
Front Left: Playback 15 [25%] [-22.00dB] [on]
Front Left: Playback 16 [27%] [-21.00dB] [on]
Front Left: Playback 17 [29%] [-20.00dB] [on]
Front Left: Playback 18 [32%] [-19.00dB] [on]
Front Left: Playback 19 [34%] [-18.00dB] [on]
Front Left: Playback 20 [37%] [-17.00dB] [on]
Front Left: Playback 21 [39%] [-16.00dB] [on]
Front Left: Playback 22 [42%] [-15.00dB] [on]
Front Left: Playback 23 [45%] [-14.00dB] [on]
Front Left: Playback 24 [48%] [-13.00dB] [on]
Front Left: Playback 25 [51%] [-12.00dB] [on]
Front Left: Playback 26 [55%] [-11.00dB] [on]
Front Left: Playback 27 [58%] [-10.00dB] [on]
Front Left: Playback 28 [61%] [-9.00dB] [on]
Front Left: Playback 29 [65%] [-8.00dB] [on]
Front Left: Playback 30 [69%] [-7.00dB] [on]
Front Left: Playback 31 [73%] [-6.00dB] [on]
Front Left: Playback 32 [77%] [-5.00dB] [on]
Front Left: Playback 33 [81%] [-4.00dB] [on]
Front Left: Playback 34 [86%] [-3.00dB] [on]
Front Left: Playback 35 [90%] [-2.00dB] [on]
Front Left: Playback 36 [95%] [-1.00dB] [on]
Front Left: Playback 37 [100%] [0.00dB] [on]
it should be noted I executed both the commands you mentioned while I am using software volume from the pipewire page you mentioned https://wiki.archlinux.org/title/PipeWi … 30%_volume
Last edited by stygian_nymph (2025-06-21 20:51:11)
Offline
-D hw:0 operates on the hardware
So 25% mapped are index 15, -22dB and equivalent to 41% raw
Does
amixer -D hw:0 sset Speaker 14
indeed effectively mute the headphones?
Ie. the lower 40% of it's settings are all just mute?
Online
$ amixer -D hw:0 sset Speaker 14
Simple mixer control 'Speaker',0
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 37
Mono:
Front Left: Playback 14 [38%] [-23.00dB] [on]
Front Right: Playback 14 [38%] [-23.00dB] [on]
.
there's still sound coming from the headphone, also the sound level becomes 23% in alsamixer after executing the command.
Offline
'key… so for what value is the volume actually dropping out and the HPs turn effectively mute?
Is there still sound on "amixer -D hw:0 sset Speaker 4"?
Online
Is there still sound on "amixer -D hw:0 sset Speaker 4"?
yes there's still sound:
$ amixer -D hw:0 sset Speaker 4
Simple mixer control 'Speaker',0
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 37
Mono:
Front Left: Playback 4 [11%] [-33.00dB] [on]
Front Right: Playback 4 [11%] [-33.00dB] [on]
alsamixer shows 5% after executing the previous command.
'key… so for what value is the volume actually dropping out and the HPs turn effectively mute?
it's at 0 for the command you mentioned
$ amixer -D hw:0 sset Speaker 0
Simple mixer control 'Speaker',0
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 37
Mono:
Front Left: Playback 0 [0%] [-37.00dB] [on]
Front Right: Playback 0 [0%] [-37.00dB] [on]
Offline
So… seems everything's perfectly ok w/ the headphones and the problem is somewhere in the sound daemon…
Willing to try to substitute pipewire and pipewire-pulse w/ pulseaudio?
Online
I'll keep using Pipewire for now since the issue occurs only with the USB HP and can be solved by enabled software volume control. I'll try using PulseAudio later when I've backed up my data properly and see if the issue also persists.
Thank you so much for your help.
Last edited by stygian_nymph (2025-06-23 11:51:06)
Offline