Historique: Alsa - gérer plusieurs cartes
Aperçu de cette version: 62
ALSA
Forum ddi : "Le matriel et les pilotes ALSA, FFADO, ..."
---------
DOCUMENTATION
Historique et vue d'ensemble
Installer ou mettre jour ALSA
Finaliser l'installation
Vrification - Configuration
ALSA et sa gestion du MIDI
Support - Tests - Utilitaires spcifiques
Fichiers de configuration
Autres fonctionnalits et commandes bien utiles
Quelques commandes pour dpanner votre ALSA
Quelques remarques sur ALSA et KDE
---------
TUTORIELS
Comment utiliser plusieurs cartes son avec ALSA
Rediriger les flux ALSA vers JACK - mthode 1
Dmix : le mixage logiciel par/dans ALSA
Faire du r-chantillonnage logiciel
Le greffon "PlugHW"
Utiliser plusieurs cartes son comme une seule
Rediriger les flux d'ALSA vers jack - mthode 2
Table des matières
Vous tre nombreux vous interroger dans le forum sur la possibilit d'utiliser plusieurs cartes son sur votre machine.
La rponse est : Oui, ALSA permet d'utiliser plusieurs cartes sons et cette page vous expose les grandes lignes suivre 😀.
Il faut :
- 2 cartes son (au minimum), ou une carte son + une carte mre disposant d'une puce-son intgre.
Attention : Pour ceux qui souhaitent utiliser la puce-son intgre sur leur carte mre, certains BIOS la dsactivent si une autre carte son PCI est dtecte ! Rfrez-vous la documentation de votre carte mre pour voir si c'est le cas et choisir les bonnes options dans votre BIOS.
- Savoir installer une carte son sur votre distribution ! Dans l'idal, la premire carte son sera dj installe et fonctionnelle. Le cas chant, consultez la documentation de votre distribution, section "configuration de la carte son" et les autres pages ALSA.
- S'assurer que les 2 cartes sont bien reconnues par ALSA, et connatre les modules (drivers) ncessaires leur bon fonctionnement. La consultation des autres pages ALSA n'est peut-tre pas inutile ...
- Les modules (drivers) ncessaires devront tre compils dans votre noyau (sous forme de ... modules ❗. Pour tester leur existence, essayez de les charger avec la commande : Copy to clipboardmodprobe mon_module
Le principe
Il est prsent sur cette page : http://alsa.opensrc.org/index.php/MultipleCardsSi certaines infos sont un poil obsoltes, le principe reste valable, mais selon les distributions, vous devrez adapter certaines commandes.
- Il est possible que l'utilitaire de configuration des cartes sons de votre distribution (alsaconf, sndconfig ...) vous installe automatiquement tout le ncessaire ... ne vous en privez pas !
- Sinon, il faudra modifier le fichier
/etc/modules.conf,- soit directement,
- soit via
/etc/modutils/alsa+ commandeupdate-modules(Debian - kernel 2.4) - soit via
/etc/modules.d/alsa+ commandeupdate-modules(Gentoo), - soit ... autrement selon Distributions (fichier
/etc/modprobe.d/alsapour Debian-kernel 2.6 ou fichier/etc/modprobe.confou/etc/modprobe.d/sound...)
- Chaque carte sera place sur un "slot" diffrent. Ensuite, l'ordre de chargement des modules (drivers) vous permettra de choisir le numro de chaque carte (option "index")
La commande
alsaconf vous permet de choisir la carte son par dfaut au niveau ALSA. Cela vous vite de paramtrer dans chacun des logiciels que vous utilisez, le nom hw:0,0 ou hw:1,0. C'est assez pratique sur un portable par exemple, si vous utilisez un systme d'enceinte nomade USB qui ne ncessite pas d'alimentation mais qui se comporte comme une carte son (mon systme Logitech USB fonctionne merveille sous GNU/Linux). Il est dans ce cas l, mal commode de changer de priphrique dans tous les logiciels, chaque fois que vous utilisez ou n'utilisez pas le systme.La commande asoundconf
Mthode graphique :Vous pouvez utiliser la commande
asoundconf-gtk pour faire choisir votre carte son par dfaut dans un environnement graphique.Mthode ligne de commande :
La commande
asoundconf vous permet de connatre la liste de vos cartes : Copy to clipboard
asoundconf list
Elle vous donne
Copy to clipboard
Names of available sound cards: Intel Speaker default
Maintenant la commande :
Copy to clipboard
asoundconf set-default-card Speaker
vous permet de paramtrer la carte "Speaker" comme carte par dfaut si c'est ce que vous voulez. 😉
Note valable pour les 2 mthodes (graphique ou ligne de commande) :
- si vous effectuer l'une de ces commandes en utilisateur normal, ceci sera valable uniquement pour votre utilisateur,
- si vous voulez que ce soit actif pour tous les utilisateurs de votre systme, faites votre commande en super utilisateur.
Vous pouvez vrifier avec la commande :
Copy to clipboard
aplay /usr/share/sound/exemple.wav
-D hw:0,0 par exemple.Normalement, la manipulation a fonctionn. Ceci dit, si jamais a ne fonctionne pas, vous pouvez essayer de relancer les ALSA-utils, ou mme ALSA en entier, avec les commandes que vous pouvez trouver dans la page ALSA_dpannage.
Fichier .asoundrc
La commandeasoundconf provoquera la cration d'un fichier .asoundrc qui contiendra vos priphriques ALSA :(sous ubuntu et peut tre aussi debian, ce seront 2 fichiers
.asoundrc et .asoundrc.asoundconf, le 2me tant un fichier ne devant pas tre dit, les ditions se feront dans le premier si vous voulez pouvoir les conserver aprs des mises jour par exemple)# ALSA library configuration file managed by asoundconf(1). # # MANUAL CHANGES TO THIS FILE WILL BE OVERWRITTEN! # # Manual changes to the ALSA library configuration should be implemented # by editing the ~/.asoundrc file, not by editing this file. !defaults.pcm.card Speaker defaults.ctl.card Speaker defaults.pcm.device 0 defaults.pcm.subdevice -1 defaults.pcm.nonblock 1 defaults.pcm.ipc_key 5678293 defaults.pcm.ipc_gid audio defaults.pcm.ipc_perm 0660 defaults.pcm.dmix_max_periods 0 defaults.rawmidi.card 0 defaults.rawmidi.device 0 defaults.rawmidi.subdevice -1 defaults.hwdep.card 0 defaults.hwdep.device 0 defaults.timer.class 2 defaults.timer.sclass 0 defaults.timer.card 0 defaults.timer.device 0 defaults.timer.subdevice 0
Cette mthode vous permettra de changer votre carte son pour des programmes qui ne savent pas spcifier la carte son comme :
Exemple
Un exemple sera plus parlant ... l'objectif n'est pas de vous donner les tapes pour toutes les cartes existantes mais de vous donner la marche suivre que vous adapterez votre configuration.Prenons le cas d'une carte M-Audio Delta44 que nous installerons en plus de la puce son intgre de la carte mre (VIA 8235 pour notre exemple).
Le site d'ALSA (voir la matrice) nous apprend que les 2 sont bien supportes. Les modules ncessaires sont via82xx (pour la puce intgre) et ice1712 pour la M-Audio (les liens pointent vers les instructions d'installations des modules).
Nous avons tous les lments pour modifier le fichier
/etc/modules.conf (ou /etc/modutils/alsa, ou /etc/modules.d/alsa, selon votre distribution, cf remarque plus haut). Les lignes ci-dessous sont directement reprises des instructions du site ALSA pour les modules considrs, les seules modifications viseront placer la puce intgre via sur le slot 0 et la M-Audio sur le slot 1.Voici ce que l'on nous demande d'intgrer pour la puce intgre VIA (en carte unique) :
Copy to clipboard
# ALSA portion alias char-major-116 snd alias snd-card-0 snd-via82xx # module options should go here # OSS/Free portion alias char-major-14 soundcore alias sound-slot-0 snd-card-0 alias sound-service-0-0 snd-mixer-oss alias sound-service-0-1 snd-seq-oss alias sound-service-0-3 snd-pcm-oss alias sound-service-0-8 snd-seq-oss alias sound-service-0-12 snd-pcm-oss
Et pour la M-Audio (toujours en carte unique) :
Copy to clipboard
# ALSA portion alias char-major-116 snd alias snd-card-0 snd-ice1712 # module options should go here # OSS/Free portion alias char-major-14 soundcore alias sound-slot-0 snd-card-0 alias sound-service-0-0 snd-mixer-oss alias sound-service-0-1 snd-seq-oss alias sound-service-0-3 snd-pcm-oss alias sound-service-0-8 snd-seq-oss alias sound-service-0-12 snd-pcm-oss
Il nous faut mixer tout a, et modifier les options de la M-Audio pour la placer sur le slot 1 (la puce intgre Via restera sur le slot 0) :
Copy to clipboard
Pour les utiliser, vous devrez indiquer vos programmes la carte utiliser :
- kMix vous permet de faire ce choix pour Arts
- qJackCtl vous permettra d'indiquer JACK la carte souhaite
- Pour les autres, utilisez l'option "hw" (exemple :
mplayer -ao alsa:device=hw=0 titre.wav) - Les lignes :
-
alias sound-service-1-1 snd-seq-osset -
alias sound-service-1-8 snd-seq-oss
sont inutiles et donc commentes (cf site d'ALSA : "The alias for snd-seq-oss is not necessary on the second device, because there is only one /dev/sequencer, regardless how many devices you have", traduction : "L'alias pour snd-seq-oss n'est pas ncessaire pour le deuxime priphrique, car il n'y a qu'un seul /dev/sequencer, sans considration du nombre de priphrique que vous avez"). -
Remarques :
- Il est aussi possible de choisir l'ordre de cartes utilisant le mme module (par exemple snd-usb-audio). Wiki dtaill en anglais sur le site d'alsa : http://alsa.opensrc.org/MultipleUSBAudioDevices
Le secret est d'crire une ligne pour tes deux cartes son avec les paramtres vid et pid uniques chaque carte, dans l'ordre dsir. On peut trouver les vid et pid grace la commande lsusb.
Exemple :
lsusb
Bus 001 Device 004: ID 0763:1110 E-MU
Bus 001 Device 003: ID 0582:0005 webcam
/etc/modules.conf
options snd-usb-audio index=1,2 vid=0x0763,0x0582 pid=0x1110,0x0005 - L'option
cards_limitpermet de choisir le nombre de cartes. D'autres options peuvent tre rajoutes. Par exemple : device_mode=0666 pour dfinir les droits d'accs, device_gid=18 pour dfinir le groupe propritaire du priphrique (18 = groupe audio sous Gentoo), etc. Une liste d'options plus complte donnerait ainsi :options snd major=116 cards_limit=2 device_mode=0660 device_gid=18 - L'option "index" permet de choisir l'ordre de chargement des modules.
- Notez bien les modifications apportes pour la deuxime carte, section "Carte M-Audio". Ces modifications sont finalement minimes : seuls certains numros changent (0->1). Mais elles sont essentielles : ce sont elles qui placeront cette carte sur le deuxime slot et permettront au systme de "retrouver ses petits".
- Selon votre distribution n'oubliez pas de lancer l'outil de mise jour (
update-modulespour Debian et Gentoo, etc.). - Certaines cartes semblent fonctionner tout en n'tant pas indiques sur le site ALSA (exemple M-Audio Fasttrack USB qui fonctionne avec le module usb-audio).