Göre ALSA Wiki , okur başlığı altında " Birden çok yüklü kartlar için belirli bir düzen seçmek için ", aşağıdaki durumları:
Hangi kart 0, 1 numaralı karttır ve varsayılan olarak modül yükleme sırasına göre belirlenir. Bu, özellikle hangi kartın varsayılan kart olacağını seçmek için kullanışlıdır.
Bu nedenle teoride, kurulu modüllerden hangisinin varsayılan kart olan kart 0 olacağını, önce sürücü modülünün yüklenmesini sağlayarak seçmek mümkündür. (Not: bu, her ses kartının farklı bir sürücü gerektirdiğini varsayar. Aynı türde iki ses kartınız varsa, lütfen bir sonraki bölüme geçin.)
Bunu başarmanın iki yolu vardır: "eski" dizin = kart sürücüsü modülünün seçeneği ve alternatif (ve yeni) yuvalar = snd modülünün seçeneği.
Bunu yapmanın iki yöntemini belgelemektedir:
- Eski "index =" yöntemi
- Daha yeni "slots =" yöntemi
Birincisi, Jasper kurulum talimatlarının önerdiği şeydir. Buradaki çözümlerin çoğunluğu hakkında da konuşuluyor. Bununla birlikte, bu daha eski bir yöntemdir ve daha güncel Raspbian Jessie görüntüleri üzerinde çalışmayabilir.
Her iki yöntemin kombinasyonu benim için işe yaradı.
Her şeyden önce, kartlarınızın hangi sırayla yüklendiğini kontrol edin:
$ cat /proc/asound/modules
0 snd_bcm2835
1 snd_usb_audio
Sayma kartları 0
, varsayılan bcm2835
olarak önce yüklenir ve mikrofonumu içeren USB kartım ikinci olarak yüklenir.
Kartlarımı yeniden sıralamak için önce adlı bir dosya oluşturuyorum /etc/modprobe.d/alsa-base.conf
. Bittiği sürece istediğiniz herhangi bir şey olarak adlandırılabilir .conf
. Daha sonra aşağıdakileri ekledim:
# 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
Yorumlar, her satırın ne yaptığını açıklamalıdır. Bunu yaptıktan sonra, çalışması için makinenizi yeniden başlatmanız gerekiyor gibi görünüyor.
Yeniden başlattıktan sonra, şimdi mikrofonunuz olması gereken varsayılan kartla bazı sesler kaydedebilmeniz gerekir:
$ arecord temp.wav
ve ardından kartı 1 olarak ve cihazı 0 olarak belirterek hoparlör çıkışınızın olması gereken yerde oynatın:
aplay -D plughw:1,0 temp.wav
Başlangıçta sadece içindeki satırı ekledim slots
. Bu, USB kartımı varsayılan kart haline getirmede çalıştı, ancak yanlış dizine eklendi. Örneğin, bir kez yaptım, bu benim /proc/asound/modules
gibi görünüyordu:
$ cat /proc/asound/modules
1 snd_usb_audio
2 snd_bcm2835
İdeal olarak, şöyle görünmelidir:
0 snd_usb_audio
1 snd_bcm2835
Bu yüzden de index
bunu başarmak için yöntemi kullanıyorum .