Имея две звуковые карточки под ALSA, столкнулся с необходимостью иметь возможность легко переключаться между ними в процессе работы.
После некоторых манипуляций с google, составил нехитрый bash-скрипт, решающий данную проблему. Изменения вступают в силу при следующем же запуске программы, использующей вывод звука через ALSA. Искренне надеюсь, что он сможет пригодиться кому-нибудь еще.
Код:
#!/bin/bash
CMDLINEPARAM=1
ASOUNDRC=~/.asoundrc
if [ $# -ge $CMDLINEPARAM ]
then
DEVICE=$1
else
cat << Memo
Usage:: changesound.sh <card_id>
No command line parameters specified.
You can always get a list of the available soundcards by typing: 'aplay -l', if ALSA is properly installed.
Memo
exit 0 #Exiting at this point
fi
cat >$ASOUNDRC <<Config
#/---------/
#Warning: this file was autogenerated by changesound.sh
#/--------/
pcm.!default {
type hw
card $DEVICE
}
ctl.!default {
type hw
card $DEVICE
}
Config
exit 0
Прилагаю скрипт с Makefile, содержащим правило install, к своему сообщению.
а можно такой вопросик:
у меня две звуковые (одна отдельной платой, другая встроена в мать). так вот дрова грузятся только для одной. переключал обычно запуском alsaconf, что жутко неудобно. и при запуске он всегда выгружает все загруженные модули и загружает после выбора карты нужные только для нее модули.
вот отсюда видно, что в данный момент доступна только одна карточка: