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.
snd_usb_audio
Sayangnya, saya punya dua perangkat yang dipanggil .Setelah mencoba men-debug masalah alsa untuk proyek ini dan membuat KEDUA usb mic dan bcm2835 speaker berfungsi, saya pikir ada masalah dasar yang SEMUA saran ALSA yang saya terima tidak berurusan dengan itu.
Direktori / usr / share / alsa / cards tidak memiliki file bcm2835.conf. File direktori / usr / share / alsa alsa.conf meninggalkan BANYAK stubs yang perlu ditentukan. Kecuali kartu untuk bcm2835 disediakan, menyalakan Jasper.py menampilkan banyak pesan kesalahan yang tidak fatal. Dengan mengerjakan file bcm2835.conf, Anda dapat menyingkirkan pesan yang menjengkelkan.
Sepertinya saya ini adalah bug Jessie; harus ada file yang menyelesaikan pesan kesalahan ini. Saya sepertinya malas untuk programmer jessie yang berurusan dengan ALSA untuk tidak membuat yang diuji.
Saya belum bekerja melalui semua pesan kesalahan, tapi saya menduga bahwa pesan lain juga disebabkan oleh ini.
Kasus lain dari tidak memiliki rilis yang matang adalah kegagalan untuk memeriksa firmware lama saat boot. Firmware lama di jessie saya menghasilkan desktop yang tidak akan menanggapi keyboard atau mouse yang merupakan showstopper untuk menggunakan jessie dengan firmware lama, kecuali Anda tahu ssh. Bukan situasi pengguna yang naif.
sumber