Проблема:
На максимальной громкости звук с динамиков звучит нормально, но при понижении громкости происходит искажение. Так было у автора. В интернетах встречались топики где у автора были похожие симптомы, например: регулирование громкости никак не влияет на звук, пока не опустится до минимума.
Проблема проявлялась на любых дистрибутивах, включая Fedora Workstation 34/35/36, Garuda, Ubuntu, Pop! OS, Manjaro. Как я думал проблема была в железе, мол производитель как-то хитро подключил аудио-входы и теперь нужно ждать когда выйдут совместимые драйверы.
Собственно мое устройство:
Asus ROG Zephyrus Duo GX551QS-HF060T на процессоре Ryzen 9 5900HX
Вот мои аудио контроллеры:
lspci -v | grep Audio

В чем была проблема?
Системный ползунок громкости регулировал Master
канал громкости, но неправильно регулировал уровень PCM
.
Как это определить?
Открываем alsamixer:
alsamixer
Жмем F6 и выбираем основное аудио-устройство. В моем случае это был HD-Audio Generic
.

Кнопками Fn + F2 / F3 меняем громкость и замечаем, что меняется уровень Master
, но PCM
двигается как-то странно

Если вручную выставить все ползунки на одном уровне, например в районе 30, то громкость аудио понизится и звук будет нормальный.
Из этого мы понимаем что проблема в том, что некорректно регулируются уровни PCM
и Master
Что было предпринято для решения проблемы:
Для начала заменил PipeWire
на PulseAudio
:
systemctl --user --now disable pipewire pipewire-pulse wireplumber
sudo dnf swap pipewire-pulseaudio pulseaudio --allowerasing
После правил конфиг файл /usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common
:

В моем случае понадобилось добавить пункт [Element Master]
, так как его не было.
[Element Master]
switch = mute
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right
Вам, возможно, придется поиграть со значениями volume = merge
пробуя заменить merge
на ignore
- зависит от конкретного случая.
После редактиврования конфига перезагружаем pulseaudio
:
killall pulseaudio
В моем случае вышеперечисленные действия решили проблему на Fedora 36.
Теперь если открыть alsamixer, то уровни перестанут меняться при регулировке громкости:

Но лично меня это уже не волнует, так как проблема со звуком была решена и alsamixer
, надеюсь, мне больше не понадобится.