Ma machine a 2 cartes son. Enfin plus précisément, une carte son et une puce son sur la carte mère. Jusque récemment, le son passait par la carte son. Maintenant (depuis que j'ai installé udev en gros), parfois, c'est la carte son, parfois le carte mère.
En fait, l'un est sur /dev/dsp et l'autre sur /dev/dsp1, donc je suis capable de faire sortir le son par où je veux (après une tentative qui échoue), mais j'aimerais pouvoir rendre cela déterministe, et dans la configuration que je préfère. Il doit suffire d'écrire une règle udev, mais j'ai besoin d'aide pour cela.
Merci
# Plutôt UDEV ou plutôt ALSA ?
Posté par tgl . Évalué à 4.
options snd-intel8x0 index=0
(ou assimilé... ici ça dit que la carte gérée par le drivers intel8x0 est la n°0, donc celle qui deviendra "dsp")
Mais enfin bref, si tu t'en sors pas sur la config Alsa, tu dois effectivement pouvoir corriger le tir côté Udev.
Déjà, il faut que tu collectes quelques infos sur les cartes :
% udevinfo -a -p $(udevinfo -q path -n /dev/dsp)
% udevinfo -a -p $(udevinfo -q path -n /dev/dsp1)
Ça devrait te donner des idées de critères qui les différencient, comme par exemple le nom du DRIVER.
Ensuite, il faut que tu te fasses des règles qui forcent la numérotation de ton choix. Genre dans un fichier /etc/udev/rules.d/10-alsa.rules (le "10" est important, ça doit être un nombre plus petit que l'indice associé au règles standards) :
KERNEL="dsp*", DRIVER="Driver carte #0", NAME="sound/dsp", SYMLINK+="dsp", GROUP="audio"
KERNEL="dsp*", DRIVER="Driver carte #1", NAME="sound/dsp1", SYMLINK+="dsp1", GROUP="audio"
Et puis après tu peux tester ces règles avant de rebooter :
% udevtest /class/sound/dsp/
% udevtest /class/sound/dsp1/
Évidemment, le résultat est intéressant surtout si tu as inversé la numérotation par rapport à ce qui c'était fait automatiquement quand tu as booté...
Bon mais enfin quoi qu'il en soit, je te conseille vraiment de d'abord chercher si tu peux pas régler ça côté Alsa, ça sera plus simple. Parceque là avec Udev, même si tu as changé la numérotation des /dev/dsp*, il reste tous les autres devices aussi, et de faire l'ensemble ça devient franchement crado je trouve. Pour info, voilà l'intégralité de mon /etc/modules.d/alsa, avec deux cartes (bon ok, pas tout à fait vu que la 2ème c'est un modem, mais enfin ça devrais quand même te donner des idées) :
# ALSA portion
alias char-major-116 snd
# OSS/Free portion
alias char-major-14 soundcore
## ALSA portion
alias snd-card-0 snd-intel8x0
alias snd-card-1 snd-intel8x0m
## OSS/Free portion
alias sound-slot-0 snd-card-0
alias sound-slot-1 snd-card-1
## Fix card number whatever the modules loading order is
options snd-intel8x0 index=0
options snd-intel8x0m index=1
# OSS/Free portion - card #1
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
## OSS/Free portion - card #2
## alias sound-service-1-0 snd-mixer-oss
## alias sound-service-1-3 snd-pcm-oss
## alias sound-service-1-12 snd-pcm-oss
alias /dev/mixer snd-mixer-oss
alias /dev/dsp snd-pcm-oss
alias /dev/midi snd-seq-oss
# Set this to the correct number of cards.
options snd cards_limit=2
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.