На 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
нареканий к этому костылю не возникало.