Secondo il Wiki ALSA , sotto il titolo " Come scegliere un ordine particolare per più schede installate ", si afferma quanto segue:
Quale carta è la carta numero 0, 1 e quindi è determinata di default dall'ordine di caricamento del modulo. Ciò è particolarmente utile per scegliere quale carta diventa quella predefinita.
In teoria quindi è possibile scegliere quale delle diverse schede installate diventa la scheda 0, quella predefinita, assicurandosi che il suo modulo driver sia caricato per primo. (Nota: ciò presuppone che ogni scheda audio richieda un driver diverso. Se si dispone di due schede audio dello stesso tipo, passare alla sezione successiva.)
Esistono due modi per ottenere ciò, l'indice "vecchio" = opzione del modulo driver della scheda e l'opzione (e nuova) slot = opzione del modulo snd.
Documenta due metodi per farlo:
- Il metodo "index =" precedente
- Il nuovo metodo "slots ="
Il primo è ciò che raccomandano le istruzioni di installazione di Jasper. È anche ciò di cui parla la maggior parte delle soluzioni là fuori. Tuttavia, questo è il metodo precedente e potrebbe non funzionare su più immagini Raspbian Jessie correnti.
Una combinazione di entrambi i metodi è ciò che ha funzionato per me.
Prima di tutto, controlla per vedere in quale ordine sono state caricate le tue carte:
$ cat /proc/asound/modules
0 snd_bcm2835
1 snd_usb_audio
Il conteggio delle carte inizia 0
quindi il bcm2835
primo viene caricato per primo e la mia scheda USB che ha il mio microfono viene caricata per seconda.
Per riordinare le mie carte, devo prima creare un file chiamato /etc/modprobe.d/alsa-base.conf
. Può essere nominato come desiderato purché si concluda .conf
. Ho quindi aggiunto quanto segue:
# 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
I commenti dovrebbero spiegare cosa fa ogni riga. Una volta che lo fai, sembra che devi riavviare il computer per farlo funzionare.
Una volta riavviato, dovresti essere in grado di registrare un po 'di audio con la scheda predefinita che ora dovrebbe essere il tuo microfono:
$ arecord temp.wav
e quindi riproducilo, specificando la scheda come 1 e il dispositivo come 0 che è dove dovrebbe essere l'uscita del tuo altoparlante:
aplay -D plughw:1,0 temp.wav
Inizialmente ho solo aggiunto la linea con slots
dentro. Questo ha funzionato nel rendere la mia scheda USB la scheda predefinita ma è stata indicizzata in modo errato. Ad esempio, una volta che l'ho fatto, questo è come il mio /proc/asound/modules
aspetto:
$ cat /proc/asound/modules
1 snd_usb_audio
2 snd_bcm2835
Idealmente, dovrebbe apparire così:
0 snd_usb_audio
1 snd_bcm2835
Ed è per questo che uso anche il index
metodo per raggiungere questo obiettivo.