Selon le Wiki ALSA , sous le titre qui se lit " Comment choisir une commande particulière pour plusieurs cartes installées ", il indique ce qui suit:
Quelle carte est le numéro de carte 0, 1 et est donc déterminée par défaut par l'ordre de chargement du module. Ceci est particulièrement utile pour choisir la carte qui deviendra la carte par défaut.
En théorie, il est donc possible de choisir laquelle de plusieurs cartes installées devient la carte 0, la carte par défaut, en s'assurant que son module de pilote est chargé en premier. (Remarque: cela suppose que chaque carte son nécessite un pilote différent. Si vous avez deux cartes son du même type, veuillez passer à la section suivante.)
Il existe deux façons d'y parvenir, l'option "old" index = du module de pilote de carte et l'option alternative (et nouvelle) slots = du module snd.
Il documente deux méthodes pour ce faire:
- L'ancienne méthode "index ="
- La nouvelle méthode "slots ="
Le premier est ce que les instructions d'installation de Jasper recommandent. C'est aussi ce dont parlent la plupart des solutions. Cependant, c'est la méthode la plus ancienne et peut ne pas fonctionner sur les images Raspbian Jessie plus récentes.
Une combinaison des deux méthodes est ce qui a fonctionné pour moi.
Tout d'abord, vérifiez dans quel ordre vos cartes ont été chargées:
$ cat /proc/asound/modules
0 snd_bcm2835
1 snd_usb_audio
Le comptage des cartes commence à partir de 0
là, la valeur par défaut bcm2835
est chargée en premier et ma carte USB qui a mon micro est chargée en second.
Pour réorganiser mes cartes, je crée d'abord un fichier nommé /etc/modprobe.d/alsa-base.conf
. Il peut être nommé comme vous voulez tant qu'il se termine par .conf
. J'ai ensuite ajouté ce qui suit:
# 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
Les commentaires doivent expliquer ce que fait chaque ligne. Une fois que vous avez fait cela, il semble que vous deviez redémarrer votre machine pour qu'elle fonctionne.
Une fois que vous redémarrez, vous devriez pouvoir enregistrer de l'audio avec la carte par défaut qui devrait maintenant être votre micro:
$ arecord temp.wav
puis jouez-la, en spécifiant la carte comme 1 et l'appareil comme 0, c'est là que devrait se trouver la sortie de votre haut-parleur:
aplay -D plughw:1,0 temp.wav
Au début, j'ai seulement ajouté la ligne avec slots
. Cela a fonctionné pour faire de ma carte USB la carte par défaut mais elle a été mal indexée. Par exemple, une fois que j'ai fait ça, voici à quoi /proc/asound/modules
ressemblait mon :
$ cat /proc/asound/modules
1 snd_usb_audio
2 snd_bcm2835
Idéalement, cela devrait ressembler à ceci:
0 snd_usb_audio
1 snd_bcm2835
Et c'est pourquoi j'utilise également la index
méthode pour y parvenir.