Доброго времени суток!
Третий день пытаюсь настроить вывод через hdmi дискретной видеокарты (7750, свободный драйвер)с нескольких источников.
Получается странная ситуация - при выводе на устройтсво напрямую с mmap получается чистый звук: aplay -v -D"radeon_hdmi_dev" -M Downloads/Roland-GR-1-Breathy-Pad-C4.wav
Если убрать mmap (опцию -M, режим RW_INTERLEAVED) то звук с треском и повторами и заиканиями.
При выводе через dmix звук тоже испорченный.
При этом через интегрированную звуковую звук через dmix чистый.
Вот конфиг /etc/asound.conf
ctl.!default {
type hw
card ALC889
} pcm.both {
type route;
slave.pcm {
type multi;
slaves.a.pcm "ALC889";
slaves.b.pcm "radeon_hdmi";
slaves.a.channels 2;
slaves.b.channels 2;
bindings.0.slave a;
bindings.0.channel 0;
bindings.1.slave a;
bindings.1.channel 1; bindings.2.slave b;
bindings.2.channel 0;
bindings.3.slave b;
bindings.3.channel 1;
} ttable.0.0 1;
ttable.1.1 1; ttable.0.2 1;
ttable.1.3 1;
} ctl.both {
type hw;
card SB;
} pcm.radeon_hdmi_dev {
type hw
card 1
device 3
} pcm.radeon_hdmi {
type dmix
ipc_key 14096
ipc_key_add_uid false
ipc_perm 0666
slave {
pcm "hw:1,3"
period_time 0
period_size 2048
# buffer_size 8192
buffer_size 32768
# buffer_time 0
# periods 128
# rate 44100
# channels 2
}
bindings {
0 0
1 1
}
} pcm.ALC889 {
# type dmix
ipc_key 2048
ipc_key_add_uid false
ipc_perm 0666
slave {
pcm "hw:0"
period_time 0
period_size 2048
# buffer_size 8192
buffer_size 65536
buffer_time 0
periods 128
rate 48000
channels 2
}
bindings {
0 0
1 1
}
} ctl.radeon_hdmi {
type hw
card 1
} ctl.ALC889 {
type hw
card "SB"
}
pcm.!default plug:both
Вывод aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: SB [HDA ATI SB], device 0: ALC889 Analog [ALC889 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: SB [HDA ATI SB], device 3: ALC889 Digital [ALC889 Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
sysdefault:CARD=SB
HDA ATI SB, ALC889 Analog
Default Audio Device
front:CARD=SB,DEV=0
HDA ATI SB, ALC889 Analog
Front speakers
surround21:CARD=SB,DEV=0
HDA ATI SB, ALC889 Analog
2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=SB,DEV=0
HDA ATI SB, ALC889 Analog
4.0 Surround output to Front and Rear speakers
surround41:CARD=SB,DEV=0
HDA ATI SB, ALC889 Analog
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=SB,DEV=0
HDA ATI SB, ALC889 Analog
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=SB,DEV=0
HDA ATI SB, ALC889 Analog
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=SB,DEV=0
HDA ATI SB, ALC889 Analog
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
hdmi:CARD=SB,DEV=0
HDA ATI SB, ALC889 Digital
HDMI Audio Output
hdmi:CARD=HDMI,DEV=0
HDA ATI HDMI, HDMI 0
HDMI Audio Output
Пробовал разные настройки buffer_size, period_size (в том числе скопированные с параметров вывода чистого звука aplay -v) но ситуация не улучшилась.
Пробовал на ядрах 3.17, 3.18. Система gentoo amd64, alsa из ядра, alsa-plugins версия 1.0.28
Есть подозрение, что dmix неправильно выводит звук. Подскажите, это только у меня и куда надо копать.