2013-08-01 07:17:57 +0000 2013-08-01 07:17:57 +0000
37
37

Comment faire en sorte qu'Alsa choisisse automatiquement un appareil sonore préféré ?

J'ai acheté une carte son USB. J'aimerais configurer mon bureau Linux de manière à ce qu'il préfère le périphérique USB, s'il est branché et qu'il bascule automatiquement lorsque le périphérique est (dé)branché. Est-ce possible, et comment ?

Réponses (6)

37
37
37
2013-08-09 17:47:31 +0000

Trouvez votre carte avec

$ cat /proc/asound/cards

Pour obtenir des noms de cartes ALSA valables, utilisez aplay :

$ aplay -l

et créez ensuite /etc/asound.conf avec la suite :

pcm.!default {
    type hw
    card 1
}

ctl.!default {
    type hw           
    card 1
}

Remplacez “carte 1” par le numéro ou le nom de votre carte déterminé ci-dessus.

Alternativement, vous pouvez changer l'ordre de vos cartes ainsi votre carte USB sera la carte 0 et elle fonctionnera sans modifier asound.conf.

16
16
16
2013-08-10 17:54:57 +0000

c'est la méthode pour sélectionner la carte son par défaut dans Alsa. Vous pouvez vouloir installer Alsa pour que cette méthode fonctionne si vous utilisez Pulse Audio.

cat /proc/asound/modules

énumérera vos modules de son. La sortie de la commande sera comme ceci (par exemple) :

0 snd_hda_intel

1 snd_usb_intel

vous pouvez assez facilement comprendre quelle est votre carte son usb du dessus.

nano /etc/modprobe.d/alsa-base.conf

éditez ce fichier alsa-base.conf de manière à ce que votre carte préférée ait un index =-2 / 0 et que l'autre carte ait un index =-1 / 1 (conservez les index -2 et -1)

options snd_hda_intel index=-1

options snd_usb_intel index=-2

dans ce cas, le périphérique usb est le périphérique préféré.

si vous avez deux cartes différentes avec le même nom sur la sortie, comme ceci :

options snd_hda_intel

options snd_hda_intel

lancez cette commande pour savoir lequel est lequel :

cat /proc/asound/cards

puis éditez les modules de cette façon :

options snd_hda_intel enable=1 index=0

options snd_hda_intel enable=0 index=1

un redémarrage peut être nécessaire.vous pourriez donc avoir à basculer manuellement vos cartes son.

4
4
4
2016-05-28 03:47:19 +0000

La réponse de Matija Nalis n'a fonctionné qu'à moitié pour moi (alsamixer a changé de défaut, mais d'autres choses comme aplay et firefox sont restées obstinément avec le mauvais défaut). Cet exemple tiré du wiki debian a fonctionné pour moi (sur le portable CentOS-6) :

defaults.pcm.!card Generic_1
defaults.ctl.!card Generic_1
defaults.pcm.!device 0
defaults.ctl.!device 0

Pour information : ALSA est mal documenté, et surtout ce truc très simple comme le choix de la carte à utiliser est bien trop difficile. Pire encore, il semble que cela change d'un système à l'autre. De plus, j'ai obtenu cette balise “Generic_1” d'aplay -l où elle apparaît comme “card 1” dans la liste. D'autres personnes semblaient l'utiliser, donc j'ai fait de même… ce que cela signifie, je ne peux pas le dire.

4
4
4
2015-12-14 23:55:48 +0000

Je ne pouvais pas non plus obtenir de sortie de mon périphérique USB. Ma sortie cat /proc/asound/modules était :

0 snd_hda_intel

1 snd_hda_intel

2 snd_usb_audio

J'ai essayé les deux réponses décrites ici qui n'ont pas aidé (avec de nombreuses combinaisons d'index et beaucoup de redémarrage). Je pense que le problème était l'initialisation de mon périphérique USB après le démarrage. Peu importe, donc ma solution est de mettre sur liste noire 2 autres périphériques sonores en mettant à jour /etc/modprobe.d/blacklist.conf as :

blacklist snd_hda_intel
1
1
1
2016-01-07 23:45:17 +0000

Bien que vous puissiez modifier la carte alsa par défaut en éditant .asoundrc ou le système asound.conf, cette approche pose quelques problèmes importants.

C'est fragile, et nécessite des redémarrages de l'application pour être honoré.

Si vous voulez changer de carte à la volée, vous devez vraiment utiliser un serveur de sons qui extrait correctement les applications de la carte son, comme pulseaudio.

-1
-1
-1
2016-06-24 16:47:20 +0000

Voici une variante des réponses de Matija Nalis et Tel. C'est ce qui a fonctionné pour moi :

~/.asoundrc

defaults.pcm.!card 1
defaults.ctl.!card 1

(Odroid C0, Debian Jessie, HDMI audio comme carte 0 et USB Sound Card comme carte 1 selon aplay -l)

Note : les autres méthodes n'ont pas fonctionné pour moi, car /proc/asound/modules n'existe pas et il n'y a pas de module audio hdmi à blacklister ou à mettre en basse priorité, il est intégré dans le noyau. Il semble que j'aurais dû recompiler le noyau sans le support audio hdmi pour le désactiver complètement.