Menurut Wiki ALSA , di bawah judul yang bertuliskan " Cara memilih pesanan tertentu untuk beberapa kartu yang dipasang ", ini menyatakan sebagai berikut:
Kartu mana yang merupakan kartu nomor 0, 1 dan secara default ditentukan oleh urutan pemuatan modul. Ini sangat berguna untuk memilih kartu mana yang menjadi kartu standar.
Oleh karena itu secara teori dimungkinkan untuk memilih dari beberapa kartu yang terpasang menjadi kartu 0, kartu standar, dengan memastikan modul drivernya dimuat terlebih dahulu. (Catatan: ini mengasumsikan bahwa setiap kartu suara memerlukan driver yang berbeda. Jika Anda memiliki dua kartu suara dengan jenis yang sama, silakan lewati ke bagian selanjutnya.)
Ada dua cara untuk mencapai ini, opsi "old" index = dari modul driver kartu, dan slot alternatif (dan baru) = opsi dari modul snd.
Ini mendokumentasikan dua metode untuk melakukan ini:
- Metode "index =" yang lebih lama
- Metode "slots =" yang lebih baru
Yang pertama adalah rekomendasi instruksi instalasi Jasper. Itu juga yang dibicarakan mayoritas solusi di luar sana. Namun, ini adalah metode yang lebih lama dan mungkin tidak berfungsi pada gambar Jessie Raspbian yang lebih baru.
Kombinasi kedua metode inilah yang berhasil bagi saya.
Pertama-tama, periksa untuk melihat urutan kartu Anda dimuat:
$ cat /proc/asound/modules
0 snd_bcm2835
1 snd_usb_audio
Menghitung kartu dimulai dari 0
sehingga standar bcm2835
dimuat pertama dan kartu USB saya yang memiliki mic saya dimuat kedua.
Untuk menyusun ulang kartu saya, pertama-tama saya membuat file bernama /etc/modprobe.d/alsa-base.conf
. Itu bisa dinamai apa saja yang Anda inginkan asalkan berakhir .conf
. Saya kemudian menambahkan yang berikut ini:
# 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
Komentar harus menjelaskan apa yang dilakukan setiap baris. Setelah Anda melakukannya, tampaknya Anda harus me-reboot mesin Anda agar bisa berfungsi.
Setelah Anda reboot, Anda harus dapat merekam beberapa audio dengan kartu default yang sekarang menjadi mic Anda:
$ arecord temp.wav
dan kemudian mainkan, tentukan kartu sebagai 1 dan perangkat sebagai 0 yang merupakan tempat output speaker Anda:
aplay -D plughw:1,0 temp.wav
Saya awalnya hanya menambahkan baris dengan slots
di dalamnya. Ini berfungsi untuk menjadikan kartu USB saya kartu default tetapi diindeks salah. Misalnya, setelah saya melakukan itu, inilah yang /proc/asound/modules
tampak seperti saya :
$ cat /proc/asound/modules
1 snd_usb_audio
2 snd_bcm2835
Idealnya, akan terlihat seperti ini:
0 snd_usb_audio
1 snd_bcm2835
Dan itulah mengapa saya juga menggunakan index
metode untuk mencapai ini.