web-dev-qa-db-fra.com

Comment sélectionner une carte son par défaut avec alsa?

Je souhaite sélectionner une carte son par défaut ou désactiver toutes les autres, afin de pouvoir sélectionner celle qui convient après la suspension.

6
MarkovCh1

Ceci est une manière de régler de manière dynamique la carte de sortie audio par défaut en utilisant PulseAudio (pas ALSA).

  1. Liste de vérification des sources et des puits

    $ pactl list short sources
    0   alsa_output.pci-0000_00_1b.0.analog-stereo.monitor  module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED
    1   alsa_input.pci-0000_00_1b.0.analog-stereo   module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED
    2   combined.monitor    module-combine-sink.c   s16le 2ch 44100Hz   SUSPENDED
    
    $ pactl list short sinks
    0   alsa_output.pci-0000_00_1b.0.analog-stereo  module-alsa-card.c  s16le 2ch 44100Hz   RUNNING
    1   combined    module-combine-sink.c   s16le 2ch 44100Hz   IDLE
    2   alsa_output.pci-0000_01_00.1.hdmi-stereo    module-alsa-card.c  s16le 2ch 44100Hz   RUNNING
    
  2. Définir les valeurs par défaut:

    $ pactl set-default-source alsa_input.pci-0000_00_1b.0.analog-stereo
    $ pactl set-default-sink alsa_output.pci-0000_00_1b.0.analog-stereo
    

Il est même possible de définir des ports. Voir Comment changer la sortie audio avec un raccourci clavier

Référence: man pactl

0
user.dz

Vu que je n’ai pas Pulse, la réponse acceptée ne vaut pas pour des gens comme moi.
Cela devrait fournir ici une solution décente qui fonctionne uniquement avec ALSA.

J'ai un peu de détail puisque j'ai 3 appareils (2 cartes embarquées, carte vidéo HDMI, canal 5.1 PCI) dans ma machine, mon appareil préféré étant le dernier. 

ce qui a fonctionné pour moi a été de modifier /etc/asound.conf avec les éléments suivants:
(ressource: http://www.alsa-project.org/main/index.php/Asoundrc )

pcm.!default {
    type hw
    card 0
}

ctl.!default {
    type hw
    card 0
}

Si j'avais intuitivement configuré mon périphérique par défaut avec 2, l'ordre des périphériques ci-dessus aurait été inversé après le redémarrage:

0: [CMI8738        ]
1: [Nvidia         ]
2: [Nvidia_1       ]

le périphérique par défaut étant 2.
(cela continuerait après chaque redémarrage, et aucun redémarrage d’alsa ne permettait pas aux applications de lire de l’audio)

Pour empêcher ma machine de me suivre, j'ai dû éditer /etc/modprobe.d/alsa-base.conf et ajouter la ligne suivante:
(ressource (recherche de la 6ème occurrence de "order"): https://alsa.opensrc.org/MultipleCards#How_to_choose_a_particular_order_for_multiple_installed_cards )

options snd slots=snd-cmipci,

qui a forcé mon périphérique préféré à 0 et que la carte par défaut correspond: 

J'espère que je n'aurai plus jamais à toucher à ces paramètres, et cela aidera d'autres personnes, comme moi, qui ne veulent pas gérer les flux audio PulseAudio.
(oui, cela signifie que des applications peu développées telles que Discord n'identifieront pas vos appareils audio sans Pulse)

0
Tcll

J'utilise personnellement alsamixer

alsamixer

Appuyez sur F6 pour sélectionner la carte son.

enter image description here

0
Panther