L'ordre des cartes sons est aléatoire au démarrage

Bonjour.

Depuis plusieurs mois déjà, j’ai le problème suivant :
Lorsque ma webcam (logitech quickcam pro 4000) est connectée avant que je démarre le PC, une fois booté sous Debian, j’ai une chance sur 2 d’avoir le son qui fonctionne.
Quand j’ai la chance d’avoir du son, le fichier /proc/asound/cards contient ceci :

$ cat /proc/asound/cards 0 [Intel ]: HDA-Intel - HDA Intel HDA Intel at 0xf9ff8000 irq 22 1 [U0x46d0x8b2 ]: USB-Audio - USB Device 0x46d:0x8b2 USB Device 0x46d:0x8b2 at usb-0000:00:1a.1-2, full speed

HDA-Intel - HDA Intel correspond à ma carte son et USB-Audio - USB Device 0x46d:0x8b2 correspond à ma webcam (qui a un micro intégré).

Quand je n’ai pas de chance (et donc pas de son), j’ai ceci :

$ cat /proc/asound/cards 0 [U0x46d0x8b2 ]: USB-Audio - USB Device 0x46d:0x8b2 USB Device 0x46d:0x8b2 at usb-0000:00:1a.1-2, full speed 1 [Intel ]: HDA-Intel - HDA Intel HDA Intel at 0xf9ff8000 irq 22

J’en conclus donc que si j’arrive à forcer Debian à détecter ma carte son avant ma webcam, j’aurais toujours du son.
Je ne suis pas très familier avec les problèmes de matériel sous linux, donc je ne sais pas qui est le coupable (udev, hal, le noyau lui-même, … ?)

Quelques remarques :

  • j’utilise des dépôts mixtes (stable, testing, unstable et experimental, avec priorités décroissantes)
  • mon architecture est amd64
  • sur le même PC, j’ai également en multi-boot une Fedora 64bits et une Ubuntu 32 bits qui n’ont pas ce problème

Merci d’avance pour votre aide.
En attendant, je continue à booter Debian en prenant soin de débrancher la webcam avant… quand j’y pense :cry:

Salut,

PQ? vouloir “forcer Debian à…” Elle est bien comme ça. C’est juste un caprice, c’est tout :mrgreen:

[quote]j’ai une chance sur 2 d’avoir le son qui fonctionne.[/quote]C’est embétant, en effet.

Trois soluces:

1- mettre le nom du module de la carte que tu veux en 1er dans /etc/modules(voir mettre les deux dans l’ordre voulu); exemple:

snd_hda_intelà adapter en fonction. Soluce la plus simple.
Ca a pour effet de charger ces modules avant les autres, en principe…

2- soit “blacklister” un module(le cas échéant). Tu ajoutes le nom du module que tu ne veux pas dans “/etc/modprobe/blacklist”. Soluce restrictive.

3- aller chipoter dans “/etc/modprobe.d/alsa-base.conf” MAIS ATTENTION à bien faire un backup de ce fichier AVANT d’y toucher… après, “it is too late” :wink: Soluce avec possibilités plus vastes mais plus complexe.

Voili voilou,

a+
Debcool

Ps: il y a sans doute d’autres soluces, je pense à udev; à voir.

[quote=“debcool”]1- mettre le nom du module de la carte que tu veux en 1er dans /etc/modules(voir mettre les deux dans l’ordre voulu); exemple:

snd_hda_intelà adapter en fonction. Soluce la plus simple.
Ca a pour effet de charger ces modules avant les autres, en principe…[/quote]
Ben on dirait que non. J’ai essayé dans les 2 sens :

snd_hda_intel snd_usb_lib snd_usb_audio
puis

snd_usb_lib snd_usb_audio snd_hda_intel
et ça n’a aucune influence sur l’ordre d’apparition des cartes son dans /proc/asound/cards (pour le moment, j’ai toujours ma carte son en premier, ce qui n’est pas pour me déplaire).

Heu… je garde cette “solution” en dernier recours :slightly_smiling:

C’est ce que j’ai essayé en premier. Tout ce que j’ai réussi à obtenir, c’est que les modules ‘snd_usb_audio’ et ‘snd_usb_lib’ ne soient pas chargés au démarrage.

Tant que ma carte son est la première détectée au démarrage, je ne vais rien tenter.
Si mon problème resurgit, j’irais fouiller un peu plus du côté de “/etc/modprobe.d/alsa-base.conf”.
Si je trouve la vraie bonne solution, je ne manquerais pas de la poster ici.

Salut,

J’ai eû un soucis du genre il y qques mois, ça c’est régler tous seul… de plus, ça ma permit de prendre l’habitude de ne brancher ce genre de périphérique que lorsque j’en ai vraiment besoin(1hmax/jour) et ça fait du bien à la planète puisque ça consomme moins :bulb:

a+
Debcool

Je pense avoir trouvé une solution “propre” à mon problème (qui a re-surgi il y a quelques jours, soit dit en passant).

Dans le fichier ‘/etc/modprobe.d/alsa-base.conf’, j’ai ajouté ceci (un peu au pif) :

# Empêcher snd-usb-audio d'être chargé comme première carte son options snd-usb-audio index=-2 options snd-intel8x0m index=0

En cherchant un peu j’ai trouvé ceci : http://alsa.opensrc.org/index.php/MultipleCards#How_to_choose_a_particular_order_for_multiple_installed_cards

Il semble effectivement que l’option ‘index=’ permette de jouer sur l’ordre de chargement des modules (cela dit, je ne suis pas certain de comprendre comment fonctionne l’option ‘index=-2’ mais en tout cas ça a l’air de faire ce qu’il faut chez moi).

Le lien ci-dessus parle également d’une autre solution permettant de garantir l’ordre des cartes sons vues par ALSA en utilisant la nouvelle option ‘slots=’ sur le module ‘snd’.
J’essayerais ça à l’occasion et je posterai ici mes remarques si jamais je rencontre des difficultés avec cette seconde méthode.

Salut Pitchum,

Pour le -2, je suis pas sûr, mais dans VLC un “-1” correspond à “choix automatique”; c’est peut-être le même genre d’idée. Ou bien, 0 = la valeure maximum…?

Merci pour le retour d’infos.

A+
Debcool

salut
j’ai eu un pb très similaire au tiens : viewtopic.php?p=66123#66123

mon fichier /etc/modprobe.d/sound ressemble à ça :

alias snd-card-0 snd-emu10k1 options snd-emu10k1 index=0 alias snd-card-1 snd-usb-audio options snd-usb-audio index=1