Сломался вывод звука через alsa

В системе вывод звука настроен напрямую через alsa, без PA

позавчера после перезагрузки звук исчез, хотя до этого минимум неделю никаких настроек не менялось и система не обновлялась

При запуске mplayer-а ругатся на

[AO_ALSA] alsa-lib: /var/calculate/tmp/portage/media-libs/alsa-lib-1.1.6-r1/work/alsa-lib-1.1.6/src/pcm/pcm_dmix.c:1099:(snd_pcm_dmix_open) unable to open slave
[AO_ALSA] Playback open error: No such file or directory

Каталога /var/calculate/tmp/portage/media-libs/ вообще нет, т.е. как я понимаю, в каком-то конфиге не то прописалось

сегодня попробовал обновить систему на последние пакеты и переустановить
media-sound/alsa-utils media-plugins/alsa-plugins media-libs/alsa-lib
не помогло

alsamixer все каналы показывает нормально

Перезагружался в другую систему чтобы проверить звук - работает

Куда надо смотреть?

Сделал поиск по “/var/calculate/tmp/portage/media-libs/alsa” - почему-то этот путь зашит в библиотеки:
/usr/lib32/libasound.so.2
/usr/bin/aserver
/usr/lib64/libasound.so.2

Исходиники при сборке там лежали?

Нашёл, что если указать в mplayer так:

-ao alsa:noblock:device=hw=1.0

то звук есть, т.е. почему-то потерялось default устройство

если я в /etc/asound.conf
заменяю

defaults.pcm.dmix.!device 0

на

pcm.!default
{
type hw
card 1
device 0
}

но этим, как я понимаю, ломается dmix

Вопрос: как должно быть и откуда это всё же вылезло?

cl-setup-audio 

c ключем --usenew-conf должно новые конфиги установить

cl-setup-audio --usenew-conf

возвращает в /etc/asound.conf :

defaults.pcm.dmix.!card PCH
defaults.pcm.dmix.!device 0
defaults.ctl.!card PCH

с которыми как раз нет звука.

Зато в /var/lib/layman/calculate/profiles/templates/3.6/3_ac_install_live/1-merge/media-sound/alsa-utils нашёлся шаблон asound.conf.old

И вот если вписать параметры на основе него:
pcm.!default {
type hw
card 1
device 0
}
ctl.!default {
type hw
card 1
}
pcm.!default {
type plug
slave.pcm “dmixer”
}
pcm.dmixer {
type dmix
ipc_key 1024
slave {
pcm “hw:1”
}
}

всё заработало, т.е. новый шаблон - кривой

Можно все все успройства жестко указать у меня будет как то так:

 cl-setup-audio --audio ALSA --card 0,0 --usenew-conf

посмотреть устройства можно так

cl-setup-audio --audio list --card list

если я не путаю ничего
шаблон после обновления заменится дефолным

1) /var/calculate/templates - ваши шаблоны
2) /var/lib/layman/calculate/profiles/templates - шаблоны по умолчанию

если запустить команду “cl-setup-audio --audio ALSA --card 1,0 --usenew-conf” именно в таком виде, то опять в конфиге оказываются параметры

defaults.pcm.dmix.!card PCH
defaults.pcm.dmix.!device 0
defaults.ctl.!card PCH

с которыми звук не работает

у меня надо использовать 1е устройство, а не нулевое:
[0,3] HDA Intel HDMI, HDMI 0
[0,7] HDA Intel HDMI, HDMI 1
[0,8] HDA Intel HDMI, HDMI 2
[0,9] HDA Intel HDMI, HDMI 3
[1,0] HDA Intel PCH, CS4208 Analog *
[1,1] HDA Intel PCH, CS4208 Digital
поэтому --card 1,0

Это было видно выше, когда я приводил команду для mplayer

PS оказалось что с параметрами, что я вписал, пропал микрофон

Попробуй pulseaudio вместо alsa. Будет ли работать ?

PA тут не причём – alsa не показывает микрофон как устройство по умолчанию:

$ arecord -l

**** List of CAPTURE Hardware Devices ****
card 1: PCH [HDA Intel PCH], device 0: CS4208 Analog [CS4208 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0

но
$ arecord output.wav
ALSA lib /var/calculate/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/pcm/pcm_dmix.c:979:(snd_pcm_dmix_open) The dmix plugin supports only playback stream

Вроде можно это сделать через
type dsnoop

Но надо разбираться как – ранее всё само сразу работало, по в /etc/asound.conf даже не заглядывал.

разобрался благодаря http://wiki.wombat.org.ua/doku.php/alsa
тут даже описано как эквалайзер настроить.

причём теперь работает неблокирующий доступ к микрофону

У меня вышло так:

pcm.dmixer {
    type dmix
    ipc_key 1024
    slave {
       pcm "hw:1,0"
    }
}
pcm.dsnooper {
    type dsnoop
    ipc_key 1025
    ipc_perm 0660
    slave.pcm "hw:1,0"
}
pcm.duplexasym {
   type asym
   playback.pcm "dmixer"
   capture.pcm "dsnooper"
}
pcm.duplex {
   type plug
   slave.pcm "duplexasym"
}
pcm.!default {
    type plug
    slave.pcm "duplexasym"
}
ctl.dmixer {
    type hw
    card 1
}

это для:

 # aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 10: HDMI 4 [HDMI 4]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 0: CS4208 Analog [CS4208 Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 1: CS4208 Digital [CS4208 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

 # arecord -l
**** List of CAPTURE Hardware Devices ****
card 1: PCH [HDA Intel PCH], device 0: CS4208 Analog [CS4208 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

И ещё:
такого каталога как

1) /var/calculate/templates - ваши шаблоны

У меня нет

про шаблоны тут 2 сообщение
https://www.calculate-linux.ru/boards/47/topics/24638
подозреваю что каталог нужно создать

А, Вы про самописные шаблоны

Такое сейчас по другому делается – для этого возле конфига создаётся файл с расширением clt – это прям в шапке конфига написано:

For modify this file, create /etc/asound.conf.clt template.

И тогда asound.conf создаётся из этого файла.

А когда исходных шаблонов несколько, как с grub.cfg, то нужно 1 свой создавать на основе всех исходных.

Тогда лучше в локальный overlay шаблоны сложить так бэкапить конфиги проще будет