Forum Linux.debian/ubuntu carte son (x2)

Posté par (page perso) .
Tags : aucun
0
27
jan.
2006
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 . Évalué à 4.

    Je suis pas sûr de mon coup, mais moi il me semblait que si tes modules Alsa étaient explicitement configurés, alors la numérotation des cartes suivait. Je pense en particulier à cette option :
    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 à ceux qui les ont postés. Nous n'en sommes pas responsables.