Типичный пример - две звуковухи: встроенная и вставленная в слот PCI, или проклюнулось звуковое устройство из видеокарты. В Линуксе звуковые карты нумеруются, причем встроенная обычно имеет номер ноль и становится картой по умолчанию (которая идет как устройство default). Переопределить это дело можно в файле /usr/share/alsa/alsa.conf, либо изменив очередность карт через /etc/modprobe.conf. Пример куска такого файла:
Здесь snd_ice1712 - это карта Audiophile, а snd_hda_intel - звуковое устройство с видеокарты Radeon. В последних строках я с помощью директивы options принудительно задаю для Audiophile номер 0, делая тем самым её картой по умолчанию, а для snd_hda_intel выбираю следующий номер, единицу. При таком способе, править alsa.conf не нужно.
Далее, я уже писал о чудо-файле .asoundrc, которым управляются тонкие настройки звуковой подсистемы ALSA. Повторюсь - в домашнем каталоге, в любом текстовом редакторе создаем файл .asoundrc (именно с точкой в названии) и прописываем там настройки.
Мы можем создать там виртуальные устройства вывода. Допустим, мы хотим сделать устройство для вывода на вторую, PCI-звуковуху, не на встроенную. Пишем в файле такое:
pcm.pci {
type plug
slave {
pcm "hw:1,0"
}
}
Видите это "pcm "hw:1,0""? Единица там означает номер карты. А "pcm.pci" - название нашего нового "виртуального"звукового устройства. Теперь в DAW или в проигрывателе (запустив их ПОСЛЕ редактирования файла .asoundrc!) в устройстве вывода ALSA заменяем "defualt" на "pcm.pci" и - всё! Звук будет направляться на указанное устройство. Я пробовал в Амароке 1.x писать напрямую имя "hw:1,0", но успеха не добился - приходится именно обходным путем через .asoundrc. А вот Ardour позволяет выбрать устройство без всякого шаманства.
Однако звуковые карты иногда любят скакать с одного номера устройства на другой, не смотря на настройки. У меня в компе есть Audiophile, встроенная звуковуха, и звуковое устройство на видеокарте Radeon. Это создавало такую чехарду, что встроенную и радеоновскую звуковухи пришлось программно отключить. Как сие сделать в Linux?
Сначала смотрим, какие звуковухи у нас есть - даем команду aplay -l. Теперь смотрим, какие модули (драйеры) для них загружены: cat /proc/asound/modules. При выводе на консоль списочка в первой колонке будет номер карты, а во второй - используемый модуль. Вносим ненужные модули в черный список. В каталоге /etc/modprobe.d есть файл с именем вроде blacklist-что-то там (зависит от дистрибутива). В этот файл добавляем строчки модулей, которым запрещается загружаться. Например, вот как можно запретить разом встроенную и радеоновскую звуковухи (которые у меня на чипсете стандарта Intel High Definition Audio):
blacklist snd_hda_intel
И перегружаем систему. Всё, больше никаких ухищрений по перестановке номеров звуковух (если вам нужна только одна карта).