[Решено] Pulseaudio и громкость master канала

Всем времени доброго и в достаточном количестве.

Периодически меняется уровень master канала в микшере alsa. Закономерность так и не получилось отследить, но не похоже, что это происходит при каждой перезагрузке. Обычно выставляю основные каналы на 90, а при очередной проверке (через день, два...) обнаруживаю заметно ниже (обычно 43, см. пикрелейтид)


Осторожно, картинка на fastpic.
(Без адблока - рекламы много и всякой.)

Было бы здорово докопаться до причины и устранить её, чтобы уровень громкости оставался стабильным в alsamixer'е.
Подозреваю, что дело в pulseaudio, но не знаю куда точно копать.

Версии:

Ядро: 4.10.11
Гном: 3.22
Пульса: 10

Выхлоп флагов пульсы:

[ebuild R ] media-sound/pulseaudio-10.0::gentoo USE="X alsa alsa-plugin asyncns bluetooth caps dbus equalizer gdbm glib gnome gtk ipv6 libsamplerate orc ssl systemd tcpd udev webrtc-aec -doc -jack -libressl -lirc -native-headset (-neon) -ofono-headset (-oss) -qt4 -realtime (-selinux) -sox (-system-wide) {-test} -zeroconf" ABI_X86="32 (64) (-x32)"

Из конфигов:

default.pa

...
### Automatically restore the volume of streams and devices
load-module module-device-restore
load-module module-stream-restore
load-module module-card-restore
...

daemon.conf

flat-volumes = no
default-sample-format = s16le
default-sample-rate = 44100
default-sample-channels = 2
default-channel-map = front-left,front-right
default-fragments = 8
default-fragment-size-msec = 25
; enable-deferred-volume = yes

Насчет pulse сказать не могу,

Насчет pulse сказать не могу, но можно проверить что делает alsa:

  • выставить нужную громкость
  • /etc/init.d/alsasound save

Хотя возможно это не будет работать без

rc-status -a | grep alsa
 alsasound             [  started  ]

Сегодня опять заметил 43

11.07.17:
Сегодня опять заметил 43 (хотя 42 было бы лучшим "ответом").

Сделал:

  • systemctl restart alsa-restore (хотя модуль как и должен был active)
    (systemd ибо гном...)
$ systemctl status alsa-restore
● alsa-restore.service - Save/Restore Sound Card State
   Loaded: loaded (/usr/lib/systemd/system/alsa-restore.service; static; vendor 
   Active: active (exited) since Tue 2017-07-11 13:28:39 MSK; 8min ago
  Process: 3108 ExecStart=/usr/sbin/alsactl restore (code=exited, status=0/SUCCE
 Main PID: 3108 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/alsa-restore.service

3 перезагрузки - пока полёт нормальный. Громкость держит. Продолжаю наблюдать.

Кроме того вчера ещё пробовал в default.pa сделать #load-module module-card-restore . Не помогло.


UPD 14.07.17: Хех, с тех пор звук так и держится на месте. Похоже, что 43 - были сохранённые настройки альсы по-умолчанию. Ни за что бы не подумал, что ручное пересохранение статов поможет.
evadim, спасибо! Понаблюдаю ещё пару дней, если всё будет стабильно - закрою тему.


UPD 18.07.17: Опять оно же и опять 43, хех.

А что, если просто скриптом

А что, если просто скриптом на старте всегда ставить на 100? Костыль, но должно сработать.

Само собой сработает, вот

Само собой сработает, вот только зачем? Так-то это даже с натяжкой проблемой не назвать. Звук есть, а пару раз в неделю руками ставить - мне не сложно.
Больше интересует причина такого поведения.
Пока продолжаю курить конфиги пульсы.


UPD: Закомментировал статическую загрузку драйверов в default.pa (видимо когда-то сам же её и включал), оставил только автоопределение. Теперь общая громкость pulseaudio (за восстановление которой отвечает module-device-restore) привязана к мастер-каналу альсы. В общем - то что нужно.

...
### Automatically restore the volume of streams and devices
load-module module-device-restore
load-module module-stream-restore
load-module module-card-restore
...
### Load audio drivers statically
### (it's probably better to not load these drivers manually, but instead
### use module-udev-detect -- see below -- for doing this automatically)
#load-module module-alsa-sink device=hw:0,0
#load-module module-alsa-source device=hw:0,0
#load-module module-null-sink
#load-module module-pipe-sink

### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
load-module module-udev-detect
.else
### Use the static hardware detection module (for systems that lack udev support)
load-module module-detect
.endif

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".