Чтобы проверить какая звуковуха по умолчанию в системе, выполняем команду
[aivs@localhost ~]$ cat /proc/asound/cards
0 [Intel ]: HDA-Intel - HDA Intel
HDA Intel at 0xfbff8000 irq 40
1 [NVidia ]: HDA-Intel - HDA NVidia
HDA NVidia at 0xf9ffc000 irq 17
2 [USB20Camera ]: USB-Audio - USB2.0_Camera
PixArt Imaging Inc. USB2.0_Camera at usb-0000:00:1a.7-5, high speed
У меня по умолчанию - это Intel
Звуковухой по умолчанию становится та, чей модуль при загрузке системы прогрузился первый. Есть пару вариантов как сделать нужную вам карту главной.
1) в /etc/modpobe.d/sound.conf прописать порядок загрузки модулей.
У меня две звуковухи
alias snd-card-0 snd_hda_intel
alias sound-slot-0 snd_hda_intel
options snd-hda-intel index=0
alias snd-card-1 snd_usb_audio
alias sound-slot-1 snd_usb_audio
options snd-usb-audio index=1
Сюда нужно прописать все звукухи какие есть, если пропишите только одну, то та которая не прописана, самовольно может прогрузиться перед той, которая определена в /etc/modprobe.d/sound.conf
Это решение не идеальное, но рабочее. Идеальным решением было бы, определить только одну звуковуху по умолчанию с номером 0, а остальные уже сами разберутся.
Цитирую 7 Главу книги LFS "Настройка скриптов загрузки системы"
7.10.2. Несколько одинаковых устройств
Как объясняется в разделе 7.9 "Управление устройствами и модулями в системе LFS", порядок, в котором устройства, имеющие одинаковые функции, появятся в /dev, по существу, является случайным. Например, если у вас есть USB веб-камера и ТВ-тюнер, то иногда /dev/video0 указывает на камеру, а /dev/video1 — на тюнер, а иногда после перезагрузки порядок изменяется на противоположный. Для всех классов аппаратных средств, кроме звуковых и сетевых карт, эту проблему можно скорректировать с помощью создания правил udev, которые будут создавать стабильные символические ссылки. Случай, относящийся к сетевым картам, рассматривается отдельно в разделе 7.13 "Конфигурирование скрипта network", а описание конфигурирования звуковых карт можно найти в BLFS.
Для каждого из ваших устройств, для которых, скорее всего, возможна эта проблема (даже если в текущем дистрибутиве Linux эта проблема отсутствует), найдите соответствующий директорий в /sys/class или в /sys/block. Для видеоустройств, это может быть /sys/class/video4linux/videoX. Найдите в атрибутах значения, которые однозначно определяют устройство (как правило, идентификаторы поставщика и изделия и / или серийные номера):
udevadm info -a -p /sys/class/video4linux/video0
Затем напишите правила, которые создают символические ссылки, например:
cat > /etc/udev/rules.d/83-duplicate_devs.rules << "EOF"
# Persistent symlinks for webcam and tuner
KERNEL=="video*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", \
SYMLINK+="webcam"
KERNEL=="video*", ATTRS{device}=="0x036f", ATTRS{vendor}=="0x109e", \
SYMLINK+="tvtuner"
EOF
В результате этого, устройства /dev/video0 и /dev/video1 по-прежнему случайным образом указывают на тюнер и веб-камеру (и, следовательно, ими никогда не следует пользоваться непосредственно), но есть символические ссылки /dev/tvtuner и /dev/webcam, которые всегда указывают на правильное устройство.
Для udev нужно написать правило, которое бы по id звуковухи создавало бы устройство card0, потому что все программы считают устройустов card0, устройством по умолчанию
[aivs@localhost ~]$ cat /proc/asound/card0/id
Intel
[aivs@localhost ~]$
Как дойдут до этого руки, обязательно сделаю