Chargement...
 
Skip to main content

1 - Le matériel et les pilotes ALSA, FFADO, ...


[RÉSOLU] Impossible de faire démarrer systématiquement jack sur la bonne carte son?

Bonjour,
à chaque nouveau démarrage d'ubuntu (8.04) "l'emplacement" de ma carte son dans les "jack settings" au niveau du choix "input device" se modifie. Un coup la carte son de la carte mère est en hw:0,0 un coup c'est ma RME multiface en hw:0,0... si bien que je ne peux pas le figer ds les presets. Est-ce que ça dépent de l'ordre dans lequel ubuntu charge les périphériques au démarrage?
Comment faire pour que la bonne carte soit sélectionnée automatiquement?
merci pour votre aide
stéphane
France
Salut,

oui ça dépend dans l'ordre dans lequel le kernel détecte les cartes sons.

Pour palier à ça il y a l'ancienne méthode si tu utilise devfs: Comment utiliser plusieurs cartes son avec ALSA

Si tu utilise udev, il y a la nouvelle méthode:
http://alsa.opensrc.org/index.php/Udev

Voici mon fichier de règles simples pour 2 cartes séparés (intel8x0, ice1724):
Copy to clipboard
DRIVERS=="Intel ICH", KERNEL=="controlC*", NAME="snd/controlC0" DRIVERS=="Intel ICH", KERNEL=="pcmC*D0c", NAME="snd/pcmC0D0c" DRIVERS=="Intel ICH", KERNEL=="pcmC*D0p", NAME="snd/pcmC0D0p" DRIVERS=="Intel ICH", KERNEL=="pcmC*D1c", NAME="snd/pcmC0D1c" DRIVERS=="Intel ICH", KERNEL=="pcmC*D2p", NAME="snd/pcmC0D2p" DRIVERS=="ICE1724", KERNEL=="controlC*", NAME="snd/controlC2" DRIVERS=="ICE1724", KERNEL=="midiC*D0", NAME="snd/midiC2D0" DRIVERS=="ICE1724", KERNEL=="pcmC*D0c", NAME="snd/pcmC2D0c" DRIVERS=="ICE1724", KERNEL=="pcmC*D0p", NAME="snd/pcmC2D0p" DRIVERS=="ICE1724", KERNEL=="pcmC*D1c", NAME="snd/pcmC2D1c" DRIVERS=="ICE1724", KERNEL=="pcmC*D1p", NAME="snd/pcmC2D1p" DRIVERS=="ICE1724", KERNEL=="pcmC*D1p", NAME="snd/pcmC2D2p"



Sur Ubuntu 8.04, je crois que c'est udev, regarde si tu as le package ( dpkg -l|grep udev ).

EDIT (jy moustache) : reprise des liens pour une syntaxe plus appropriée (lien interne/externe). Ca ne change rien à l'utilisation. Voir ici pour plus d'infos.
jy
Salut Klem!
effectivement le paquet udev est bien installé.
Il y a 2 choses que je ne comprends pas bien :

1) Comment je fais pour écrire cet ajout dans mon fichier de règles à l'image de l'exemple que tu m'as donné? Comment savoir exactement ce que je dois y écrire?

2) Dans quel fichier dois-je insérer ces lignes?
Peut-être ici /etc/udev/rules.d/20-names.rules comme c'est expliqué sur le lien que tu m'as donné?
Voici un extrait de ce fichier concernant le son:
Copy to clipboard
# Sound devices, group under /dev/snd KERNEL=="controlC[0-9]*", NAME="snd/%k" KERNEL=="hwC[D0-9]*", NAME="snd/%k" KERNEL=="midiC[D0-9]*", NAME="snd/%k" KERNEL=="pcmC[D0-9cp]*", NAME="snd/%k" KERNEL=="seq", NAME="snd/%k" KERNEL=="timer", NAME="snd/%k"

merci pour ton aide c cool!
France
il vaut mieux que tu créé ton propre fichier, ce qui lui évitera d'etre potentiellement écrasé lors d'une update
le nom a respecter est numéro-nom.rules comme 20-soundcard.rules par exemple
les regles dans ce dossier sont prises par udev dans l'ordre, de 0 à 99-
20 est bien pour ce genre de choses
OK pour le nom du fichier mais ce que je dois mettre à l'intérieur?
Dans le fichier de Klem on voit bien que les paragraphes pour chaque carte son ont des instructions differentes. Comment je sais quoi mettre pour mes cartes? What is ze syntaxe?

Si je comprends correctement le truc ci-dessous constitue la routine qui nomme les cartes sons?
Copy to clipboard
# Sound devices, group under /dev/snd KERNEL=="controlC[0-9]*", NAME="snd/%k" KERNEL=="hwC[D0-9]*", NAME="snd/%k" KERNEL=="midiC[D0-9]*", NAME="snd/%k" KERNEL=="pcmC[D0-9cp]*", NAME="snd/%k" KERNEL=="seq", NAME="snd/%k" KERNEL=="timer", NAME="snd/%k"


En insérant les instructions suivantes (from Klem) je prédéfinis la nomination de mes cartes?
Copy to clipboard
DRIVERS=="Intel ICH", KERNEL=="controlC*", NAME="snd/controlC0" DRIVERS=="Intel ICH", KERNEL=="pcmC*D0c", NAME="snd/pcmC0D0c" DRIVERS=="Intel ICH", KERNEL=="pcmC*D0p", NAME="snd/pcmC0D0p" DRIVERS=="Intel ICH", KERNEL=="pcmC*D1c", NAME="snd/pcmC0D1c" DRIVERS=="Intel ICH", KERNEL=="pcmC*D2p", NAME="snd/pcmC0D2p" DRIVERS=="ICE1724", KERNEL=="controlC*", NAME="snd/controlC2" DRIVERS=="ICE1724", KERNEL=="midiC*D0", NAME="snd/midiC2D0" DRIVERS=="ICE1724", KERNEL=="pcmC*D0c", NAME="snd/pcmC2D0c" DRIVERS=="ICE1724", KERNEL=="pcmC*D0p", NAME="snd/pcmC2D0p" DRIVERS=="ICE1724", KERNEL=="pcmC*D1c", NAME="snd/pcmC2D1c" DRIVERS=="ICE1724", KERNEL=="pcmC*D1p", NAME="snd/pcmC2D1p" DRIVERS=="ICE1724", KERNEL=="pcmC*D1p", NAME="snd/pcmC2D2p"

Mais d'où je tire ces infos, y a-t-il une ligne de commande qui me les donnerait ?
Comment je sais combien de "pcmC..." je dois mettre...?
France
il existe un tres bon document assez complet trouvable un peu partout sur le net, je t'en conseille fortement la lecture, c'est writing udev rules (in english of course)
la commande que tu recherche est décrite dedans, c'est udevadm info

bonne lecture !

ps :honnetement j'ai mis un moment a comprendre comment udev marchait, et beaucoup moins longtemps a comprendre le fonctionnement de /etc/modprob.d/alsa.conf, apres c'est a toi de voir quelle solution tu preferes pour arriver a tes fins