Calculate Forum

Выбрать нужную Audio карту по умолчанию

На IRC-канале возник вопрос - как из нескольких звуковых карт выбрать по умолчанию определенную.

У меня тоже когда-то возникал такой вопрос.
Где-то год назад я купил себе usb-колонки (самое дешевое что мне тогда попалось, несмотря на это качество - приемлемое), воткнул их в свой комп - и обнаружил такую неприятность

$ cat /proc/asound/cards 
 0 [SI7012         ]: ICH - SiS SI7012
                      SiS SI7012 with ALC655 at irq 18
 1 [Audio          ]: USB-Audio - USB Audio
                      C-Media INC. USB Audio at usb-0000:00:03.1-1, full speed

Т.е. по умолчанию весь звук гнался на бортовую звуковую.
Первую мысль - отключить бортовой звук в биосе - я сразу отверг, мне же еще и микрофон нужен был, а он есть лишь на бортовой звуковухе, да и не по-спортивному это - топором шурупы забивать.
После упорного гугления, не нашел ничего умнее, чем загружать модули в определенном порядке.
Есть конечно еще pulseaudio, и даже кому-то он нравится, но мне не надо каждые пять минут переключать устройство вывода звука, так что и в нем у меня необходимости небыло

В варианте, который я нашел - предлагалось настроить конфиги modprobe и явно грузить модули в определенной последовательности.

Уж не помню - чем этот вариант меня не устроил, но я поступил иначе.

Примечание: И оригинальный вариант, и выбранный мной - имеют одинаковую важную особенность - поддержка всех звуковых карт должна быть включена модулем

Итак, я создал службу запускающуюся до alsasound и выгружающую модули звука, а потом загружающие их в нужном порядке.

$ cat /etc/init.d/prealsa 
#!/sbin/runscript
depend() {
    before alsasound
}
start() {
    modprobe -r snd_usb_audio snd_intel8x0
    modprobe -a snd_usb_audio snd_intel8x0
}

добавив эту службу в уровень загрузки boot: rc-update add prealsa boot
Я получил вполне рабочее решение.

Понимаю, что это костыль. но почти за год его использования

$ ls -l /etc/init.d/prealsa
-rwxr-xr-x 1 root root 142 Июл 23  2009 /etc/init.d/prealsa

нареканий к этому костылю не возникало.

У меня была такая проблема, лечилась эта проблема покупкой новых колонок)

По-моему так проще:

$cat /etc/asound.conf

defaults.ctl.card 1
defaults.pcm.card 1
defaults.timer.card 1
Mastodon Mastodon