[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