J'ai acheté une carte son USB. J'aimerais configurer mon bureau Linux de sorte 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 (non) branché. Est-ce possible et comment?
Trouvez votre carte avec
$ cat /proc/asound/cards
Pour obtenir des noms de carte ALSA valides, utilisez aplay
:
$ aplay -l | awk -F \: '/,/{print $2}' | awk '{print $1}' | uniq
puis créez /etc/asound.conf
avec les éléments suivants:
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.
Vous pouvez également modifier l'ordre de vos cartes afin que votre carte USB soit la carte 0 et qu'elle fonctionne sans modification asound.conf
.
c'est la méthode de sélection de la carte son par défaut dans Alsa. Vous voudrez peut-être installer Alsa pour que cette méthode fonctionne si vous utilisez Pulse Audio.
cat/proc/asound/modules
listera vos modules de sons. La sortie de la commande sera comme ceci (par exemple):
0 snd_hda_intel
1 snd_usb_intel
vous pouvez facilement comprendre lequel est votre carte son usb d’en haut.
nano /etc/modprobe.d/alsa-base.conf
éditez ce fichier alsa-base.conf de telle sorte que votre carte préférée porte un index = -2/0 et que l’autre carte possède un index = -1/1 (respectez les valeurs -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 de la sortie, comme ceci:
options snd_hda_intel
options snd_hda_intel
émettez cette commande pour savoir qui est lequel:
cat/proc/asound/cartes
puis éditez les modules de cette manière:
options snd_hda_intel enable = 1 index = 0
options snd_hda_intel enable = 0 index = 1
un redémarrage peut être nécessaire. Vous devrez peut-être aussi basculer manuellement vos cartes son.
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 beaucoup de combinaison 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. Quoi qu'il en soit, ma solution de travail consiste à mettre en liste noire un autre périphérique audio en mettant à jour /etc/modprobe.d/blacklist.conf
en tant que:
blacklist snd_hda_intel
La réponse de Matija Nalis ne fonctionnait qu'à moitié pour moi (alsamixer a changé le paramètre par défaut, mais d'autres éléments tels que aplay et firefox se sont obstinément heurtés au mauvais paramètre). Cet exemple du wiki debian a fonctionné pour moi (sur un ordinateur portable CentOS-6):
defaults.pcm.!card Generic_1
defaults.ctl.!card Generic_1
defaults.pcm.!device 0
defaults.ctl.!device 0
Pour mémoire, ALSA est mal documenté, et en particulier cette tâche très simple, telle que choisir la carte à utiliser, est bien trop difficile. Pire, cela semble changer entre les systèmes. En outre, j'ai obtenu cette balise "Generic_1" de aplay -l où elle apparaît sous la forme "carte 1" dans la liste. D'autres personnes semblaient l'utiliser, alors j'ai fait de même ... ce que cela signifie, je ne peux pas le dire.
Bien que vous puissiez modifier la carte alsa par défaut en modifiant .asoundrc ou le système asound.conf, cette approche pose quelques problèmes importants.
Il est fragile et nécessite que les redémarrages d’application soient honorés.
Si vous souhaitez changer de carte à la volée, vous devez absolument utiliser un serveur de sons qui extrait correctement les applications de la carte son, tel que pulseaudio.
Les outils pavucontrol et paprefs peuvent également aider à la configuration, mais c'est peut-être trop facile :) ou peut-être que tout gâchera tout ce que vous avez déjà fait.