[sisyphus] параметры dmix в /etc/asound.conf
Artem
=?iso-8859-1?q?x-console_=CE=C1_yandex=2Eru?=
Чт Янв 4 20:22:14 MSK 2007
Здравствуйте, уважаемое Community!
C Новым годом всех!
Дошли сегодня руки до старой проблемы - раздражающей задержки звука на
0.5 сек при использовании dmix. Полез в /usr/share/alsa/pcm/dmix.conf
попробовал сменить параметр periods 16 на periods 4 - все прекрасно,
задержка исчезла.
Теперь "вопрос к знатокам" альсовских многоэтажных конфигов ;-).
Смотрим /usr/share/alsa/pcm/dmix.conf, видим что-то типа:
pcm.!dmix {
@args [ CARD DEV SUBDEV FORMAT RATE ]
<skip>
ipc_perm {
@func refer
name defaults.pcm.ipc_perm
}
<skip>
Что из этого мне становится понятно: то, что для устройства dmix
выставляется параметр ipc_perm, и берется он посредством @func refer по
имени defaults.pcm.ipc_perm, смотрю /usr/share/alsa/alsa.conf и вижу это
имя там:
defaults.pcm.ipc_perm 0660
вижу так же, что в том же файле (в начале его) производится загрузка
параметров из /etc/asound.conf и .asounrc. Ну что ж - отлично, пишу в
/etc/asound.conf (для проверки):
defaults.pcm.ipc_perm 0666
запускаю xmms , вижу что-то типа /tmp/alsa-dmix-XXXX-XXXX....
с разрешением 0666. Значит - работает! :-)
Лезу дальше в /usr/share/alsa/pcm/dmix.conf, вижу:
<skip>
slave {
pcm {
type hw
card $CARD
device $DEV
subdevice $SUBDEV
}
format $FORMAT
rate $RATE
<skip>
}
periods {
@func refer
name {
@func concat
strings [
"cards."
{
@func card_driver
card $CARD
}
".pcm.dmix.periods"
]
}
default 16
}
Что ж - пробую аналогичным манером добавить строку в /etc/asound.conf,
исходя из того, что у меня звуковое устройство
Intel Corporation 82801FB (ICH6 Family) AC'97 Audio Controller
и для этого устройства используется конфиг в /usr/share/alsa/cards/ICH4.conf
(Configuration for the Intel ICH4/ICH5/ICH6 chips), если верить этому
конфигу. Значит, добавляю в /etc/asound.conf :
cards.ICH4.pcm.dmix.periods 16
(пока оставляю равным default) - после этого dmix не стартует в
принципе. dmix-овый сокет в /tmp не создается, первое устройство
захватывает карту, остальные идут лесом. Причем dmix однозначно
"проглатывает" эту строку, т.к. когда ее комментишь - он снова стартует.
Что не так? Кто имел счастье основательно ковыряться во внутренностях и
конфигах alsa ? Править конфиги в /usr/share - некошерно как-то, если
есть /etc/...
--
Rgds, Artem.
Подробная информация о списке рассылки Sisyphus