За інформацією ALSA Wiki , під заголовком, який пише " Як вибрати певне замовлення для декількох встановлених карт ", зазначено наступне:
Яка карта - номер картки 0, 1 і так, за замовчуванням визначається порядком завантаження модуля. Це особливо корисно для вибору картки за замовчуванням.
Таким чином, теоретично можна вибрати, яка з декількох встановлених карт стає карткою 0, типовою за замовчуванням, забезпечивши, що її перший драйвер завантажується. (Примітка. Це передбачає, що для кожної звукової карти потрібен інший драйвер. Якщо у вас є дві звукові карти одного типу, перейдіть до наступного розділу.)
Домогтися цього можна двома способами: "старий" індекс = параметр модуля драйвера картки та альтернативний (і новий) слот = варіант модуля snd.
Він документує два способи цього:
- Старіший метод "index ="
- Новіший метод "slots ="
Перше - це те, що рекомендують інструкції з установки Jasper. Це також те, про що говорить більшість рішень там. Однак це старіший метод і може не працювати на більш актуальних зображеннях Raspbian Jessie.
Комбінація обох методів - це те, що працювало для мене.
Перш за все, перевірте, в якому порядку завантажували ваші картки:
$ cat /proc/asound/modules
0 snd_bcm2835
1 snd_usb_audio
Підрахунок карт починається з 0
того, що за замовчуванням bcm2835
завантажується спочатку, а моя USB-карта, на якій є мікрофон, завантажується вдруге.
Щоб змінити впорядкованість моїх карток, спершу створюю файл з назвою /etc/modprobe.d/alsa-base.conf
. Можна назвати все, що завгодно, доки він закінчується .conf
. Потім я додав наступне:
# This sets the index value of the cards but doesn't reorder.
options snd_usb_audio index=0
options snd_bcm2835 index=1
# Does the reordering.
options snd slots=snd_usb_audio,snd_bcm2835
У коментарях слід пояснити, що робить кожен рядок. Після цього, здається, вам доведеться перезавантажити машину, щоб вона працювала.
Після перезавантаження ви зможете записати звук за допомогою картки за замовчуванням, яка тепер повинна бути вашим мікрофоном:
$ arecord temp.wav
а потім розіграйте її, вказавши карту як 1, а пристрій як 0, де має бути вихід вашого динаміка:
aplay -D plughw:1,0 temp.wav
Я спочатку лише додав рядок із slots
ним. Це допомогло зробити мою USB-карту карткою за замовчуванням, але вона індексувалася неправильно. Наприклад, коли я зробив це, це те , що мій /proc/asound/modules
виглядав так:
$ cat /proc/asound/modules
1 snd_usb_audio
2 snd_bcm2835
В ідеалі воно повинно виглядати так:
0 snd_usb_audio
1 snd_bcm2835
І тому я також використовую index
метод для досягнення цього.