26 июл. 2010 г.

ice1724 & alsa

Не перестаю удивляться нежеланию разработчиков свободного ПО нормально документировать свои программные продукты, даже когда речь идёт о таких важных системах, как Xorg или Alsa. Создание подходящего ~/.asoundrc - это тайна за семью печатями!
Фактически недокументированный процесс. В результате поиска удаётся найти только упоминания "у меня заработало так!!!" - простейший вариант, когда кроме проигрывания mp3 незадачливого пользователя убунту ничего и не интересовало, а также сверхпродвинутые конфиги на десятки строк для вывода многоканального звука на ресивер через SPDIF, которые как точку для старта не используешь.

Таким образом, всё что остаётся - довольно устаревшее вики . После длительных мытарств и проблем с воспроизведением на M-Audio Revolution 5.1 у меня получился следующий ужасный конфиг, причём при изменении любого параметра отваливалось вообще всё - вплоть до segmentation fault у любого приложения при попытке воспроизвести звук! Что там перекодировалось в другую частоту я судить даже не берусь.

pcm.ossmix {
    type dmix
    ipc_key 1024
    slave {
    pcm "hw:0,0"
        period_time 0
       period_size 1024
       buffer_size 4096 # buffer size < 6653, but pow(x, 2)
       rate 44100 # we want to play CDs only
       format S32_LE # needed in alsa 1.0.10 for some reason
    }
    bindings {
        0 0
        1 1
    }
}
# Everything shall be dmixed, so redefine "default":
pcm.!default {
    type plug
    slave.pcm "ossmix"
}
# OSS via aoss should d(mix)stroyed:
pcm.dsp0 {
    type plug
    slave.pcm "ossmix"
}
ctl.mixer0 {
    type hw
    card 0
}

На новом ядре 2.6.35-rc6, похоже, опять заработал простейший вариант из wiki.

pcm.ice1724 {
        type hw
        card 0
}

ctl.ice1724 {
        type hw
        card 0
}
На первый взгляд, стало получше. И  снова заработал mumble.