[résolu] Problème Alsa / son (HDMI inside) Debian Testing

Bonjour à tous,

Après plusieurs tentatives infructueuses et de longues recherche, je me permet de poster ici pour un problème d’audio. Je n’arrive pas à avoir de son depuis mon changement de carte graphique qui possède une sortie son HDMI qui semble il est à l’origine du problème…

Je tente d’installer une debian lenny/squeeze afin de répondre au comportement erratique de mon install actuelle (Linux Mint basée sur la 8.04 d’ubuntu).
En effet, depuis mon changement de carte graphique, j’ai plusieurs erreurs :
Parfois, mais pas tout le temps, amarok crash en me disant que “Xine n’a pu initialiser le pilote audio”, alors même que certaines pistes (mais pas toutes) sont jouées.
D’autres fois, j’ai du son sauf pour les jeux (ici urbanterror).

Afin de repartir de la base, et ayant déjà eu Etch auparavant, je me suis lancé dans une install minimal en testing avec Gnome.
Résultat peu concluant, il m’était nécessaire de sélectionner le bon mixeur et de redémarrer (redémarrer le serveur de son ne suffisait pas) pour avoir du son.

Ayant un peu la flemme, et pensant que ca venait d’une install foireuse de ma part (paquets manquants), j’ai recommencé avec une install complète, même problème.
Vu que c’était la saison des “releases”, j’ai aussi testé la dernière Ubuntu, mais le son par moment était complètement haché. Seule une mandriva 2009.1 a permis de faire fonctionner le son convenablement, mais l’ensemble était un peu lourd pour ma config (KDE4, serveur Pulseaudio avec Gstreamer).

J’ai donc décidé de prendre le taureau par les cornes… Netinstall Squeeze, bureau LXDE + les mains dans le cambouis :

squeeze:/home/julien# lspci 00:00.0 Host bridge: Intel Corporation 82865G/PE/P DRAM Controller/Host-Hub Interface (rev 02) 00:01.0 PCI bridge: Intel Corporation 82865G/PE/P PCI to AGP Controller (rev 02) 00:1d.0 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (rev 02) 00:1d.1 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (rev 02) 00:1d.2 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (rev 02) 00:1d.3 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (rev 02) 00:1d.7 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (rev 02) 00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev c2) 00:1f.0 ISA bridge: Intel Corporation 82801EB/ER (ICH5/ICH5R) LPC Interface Bridge (rev 02) 00:1f.1 IDE interface: Intel Corporation 82801EB/ER (ICH5/ICH5R) IDE Controller (rev 02) 00:1f.2 IDE interface: Intel Corporation 82801EB (ICH5) SATA Controller (rev 02) 00:1f.3 SMBus: Intel Corporation 82801EB/ER (ICH5/ICH5R) SMBus Controller (rev 02) 00:1f.5 Multimedia audio controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (rev 02) 01:00.0 VGA compatible controller: ATI Technologies Inc RV635 PRO AGP [Radeon HD 3650] 01:00.1 Audio device: ATI Technologies Inc RV635 Audio device [Radeon HD 3600 Series] 02:05.0 Ethernet controller: Marvell Technology Group Ltd. 88E8001 Gigabit Ethernet Controller (rev 13) 02:0d.0 Multimedia controller: Philips Semiconductors SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (rev d0)

J’ai donc trois périphériques audio/multimédia différents (Chipset son, HDMI audi de la carte graphique, carte video DVB-T). Je précise que la carte vidéo n’a jamais été une source de conflit.

00:1f.5 Multimedia audio controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) AC’97 Audio Controller (rev 02)
01:00.1 Audio device: ATI Technologies Inc RV635 Audio device [Radeon HD 3600 Series]
02:0d.0 Multimedia controller: Philips Semiconductors SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (rev d0)

squeeze:/home/julien# cat /proc/asound/cards 0 [HDMI ]: HDA-Intel - HDA ATI HDMI HDA ATI HDMI at 0xfbefc000 irq 17 1 [UART ]: MPU-401 UART - MPU-401 UART MPU-401 UART at 0x330, irq 10 2 [ICH5 ]: ICH4 - Intel ICH5 Intel ICH5 with AD1985 at irq 17

squeeze:/home/julien# cat /proc/asound/modules 0 snd_hda_intel 1 snd_mpu401 2 snd_intel8x0

squeeze:/home/julien# aplay -l **** List of PLAYBACK Hardware Devices **** card 0: HDMI [HDA ATI HDMI], device 3: ATI HDMI [ATI HDMI] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: ICH5 [Intel ICH5], device 0: Intel ICH [Intel ICH5] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: ICH5 [Intel ICH5], device 4: Intel ICH - IEC958 [Intel ICH5 - IEC958] Subdevices: 1/1 Subdevice #0: subdevice #0

squeeze:/home/julien# arecord -l **** List of CAPTURE Hardware Devices **** card 2: ICH5 [Intel ICH5], device 0: Intel ICH [Intel ICH5] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: ICH5 [Intel ICH5], device 1: Intel ICH - MIC ADC [Intel ICH5 - MIC ADC] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: ICH5 [Intel ICH5], device 2: Intel ICH - MIC2 ADC [Intel ICH5 - MIC2 ADC] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: ICH5 [Intel ICH5], device 3: Intel ICH - ADC2 [Intel ICH5 - ADC2] Subdevices: 1/1 Subdevice #0: subdevice #0

squeeze:/home/julien# amixer Simple mixer control 'IEC958',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [off]

[code]squeeze:/home/julien# alsamixer

┌─────────────────────────────────────[AlsaMixer v1.0.19 (Press Escape to quit)]─────────────────────────────────────┐
│ Card: HDA ATI HDMI │
│ Chip: ATI ATI R6xx HDMI │
│ View: [Playback] Capture All │
│ Item: IEC958 [Off] │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ ┌──┐ │
│ │MM│ │
│ └──┘ │
│ │
│ < IEC958 > │
│ │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
[/code]

Lors de cette commande, je ne peux rien modifier avec les touches haut/bas gauche/droite et “m” (mute/unmute)

[code]squeeze:/home/julien# /etc/init.d/alsa-utils reset
Resetting ALSA…Invalid card number.
Usage: amixer [command]
Available options:
-h,–help this help
-c,–card N select the card
-D,–device N select the device, default ‘default’
-d,–debug debug mode
-n,–nocheck do not perform range checking
-v,–version print version of this program
-q,–quiet be quiet
-i,–inactive show also inactive controls
-a,–abstract L select abstraction level (none or basic)
-s,–stdin Read and execute commands from stdin sequentially
Available commands:
scontrols show all mixer simple controls
scontents show contents of all mixer simple controls (default command)
sset sID P set contents for one mixer simple control
sget sID get contents for one mixer simple control
controls show all controls for given card
contents show contents of all controls for given card
cset cID P set control contents for one control
cget cID get control contents for one control

Message identique répété 17 fois…

Invalid card number
Usage: amixer [command]
Available options:

…[/code]

Bizarrement les commandes suivantes ne fonctionnent pas :

squeeze:/home/julien# alsaconf
bash: alsaconf: command not found[/code]

[code]squeeze:/home/julien# asoundconf list
bash: asoundconf: command not found

Est ce parce qu’il faut le paquet alsa-tools ?

squeeze:/home/julien# aptitude search alsa v alsa - i alsa-base - ALSA driver configuration files p alsa-oss - ALSA wrapper for OSS applications p alsa-source - ALSA driver sources p alsa-tools - Console based ALSA utilities for specific hardware p alsa-tools-gui - GUI based ALSA utilities for specific hardware i alsa-utils - ALSA utilities p alsamixergui - graphical soundcard mixer for ALSA soundcard driver ... i A libesd-alsa0 - Enlightened Sound Daemon (ALSA) - Shared libraries ...

Mon “/etc/modprobe.d/alsa-base.conf”

[code]# autoloader aliases
install sound-slot-0 /sbin/modprobe snd-card-0
install sound-slot-1 /sbin/modprobe snd-card-1
install sound-slot-2 /sbin/modprobe snd-card-2
install sound-slot-3 /sbin/modprobe snd-card-3
install sound-slot-4 /sbin/modprobe snd-card-4
install sound-slot-5 /sbin/modprobe snd-card-5
install sound-slot-6 /sbin/modprobe snd-card-6
install sound-slot-7 /sbin/modprobe snd-card-7

Cause optional modules to be loaded above generic modules

install snd /sbin/modprobe --ignore-install snd && { /sbin/modprobe --quiet snd-ioctl32 ; /sbin/modprobe --quiet snd-seq ; }
install snd-rawmidi /sbin/modprobe --ignore-install snd-rawmidi && { /sbin/modprobe --quiet snd-seq-midi ; : ; }

Prevent abnormal drivers from grabbing index 0

options bt87x index=-2
options cx88_alsa index=-2
options snd-atiixp-modem index=-2
options snd-intel8x0m index=-2
options snd-via82xx-modem index=-2

Keep snd-pcsp from beeing loaded as first soundcard

options snd-pcsp index=-2
[/code]

Il semble donc bien que le problème vienne de la sortie son HDMI qui vient bloquer les autres périphériques. En regardant sur les pages du Wiki d’Alsa, j’ai tenté la manip suivante:
Rajouter “options snd-intel8x0 index=-1” à la fin du modprobe.d/alsa-base.conf, sans succès.

J’ai aussi essayé de renseigner le nom de chaque module avec index=1, 2 ou 3 (en commantant toutes les autres options), cela n’a pas non plus fonctionné.

Merci de me faire part de vos conseils.

Up !

J’ai peut être trouvé un début de piste… tout du moins une personne dans le même cas que moi.

C’est ici: forums.linuxmint.com/viewtopic.p … 6&p=148554

Ses problèmes de son semblent similaires (en particulier le “chopping” auquel il est fait référence, sorte de “hachage” du son que j’ai subit sous Ubuntu 9.04).

Il semble que le problème vienne des drivers catalyst. Sous mon install actuelle, j’ai installé la dernière version depuis le site de ATI, en utilisant le .run fournit (pas bien).

J’ai tenté une install “à la debian” sous la testing, en récupérant le .run, en créant les paquets Debian correspondants… Toutefois, arrivé au “dpkg -i les_paquets” ça plante, mais j’ai pas noté l’erreur.

Je vais re-essayer, des deux façons (“a la debian” ou .run).

Dans les réponses du post sus-mentionné, la seule solution envisagée est d’attendre…
Citation
"There is nothing that can really be done until ATI releases updated drivers, or someone figures out a workaround for the issue. I have gone back to using the mesa drivers which seem to have better support for ATI cards, and seem to work better than the actual ATI drivers".

C’est tout nouveau tout beau l’audio sur l’HDMI donc instable .

Voilà comme par hazard ATI a sortie un patch tout chaud juste sortie de four .

—> ATI RS690 Gets New RadeonHD HDMI Audio Patch

je ne sais pas si c’est ton chipset

A+

J’ai finalement résolu le problème, je poste pour ceux qui cherchent…

Enfin de compte j’ai modifié mon “/etc/modprobe.d/alsa-base.conf” pour spécifier un ordre de lancement des cartes son, et pour spécifier le chargement des modules dans un certain ordre.

Dans mon cas, mon cat /proc/asound/cards m’indique

0 [HDMI ]: HDA-Intel - HDA ATI HDMI HDA ATI HDMI at 0xfbefc000 irq 17 1 [UART ]: MPU-401 UART - MPU-401 UART MPU-401 UART at 0x330, irq 10 2 [ICH5 ]: ICH4 - Intel ICH5 Intel ICH5 with AD1985 at irq 17

J’ai donc spécifié dans alsa-base.conf l’ordre suivant (carte 2, 1 puis 0)

[code]# autoloader aliases
install sound-slot-2 /sbin/modprobe snd-card-0 //
install sound-slot-1 /sbin/modprobe snd-card-1 // Ordre modifié
install sound-slot-0 /sbin/modprobe snd-card-2 //
install sound-slot-3 /sbin/modprobe snd-card-3
install sound-slot-4 /sbin/modprobe snd-card-4
install sound-slot-5 /sbin/modprobe snd-card-5
install sound-slot-6 /sbin/modprobe snd-card-6
install sound-slot-7 /sbin/modprobe snd-card-7

Cause optional modules to be loaded above generic modules

install snd /sbin/modprobe --ignore-install snd && { /sbin/modprobe --quiet snd-ioctl32 ; /sbin/modprobe --quiet snd-seq ; }
install snd-rawmidi /sbin/modprobe --ignore-install snd-rawmidi && { /sbin/modprobe --quiet snd-seq-midi ; : ; }[/code]

Puis j’ai renseigné les options suivantes (les modules sont issus de cat /proc/asound/modules, en remplacant les _ par des -):

# Prevent abnormal drivers from grabbing index 0 options snd-intel8x0 index=0 options snd-mpu401 index=1 options snd-hda_intel index=2 ... // J'ai pas touché aux autres entrées.

Désormais le son fonctionne. J’ai renoncé à tenter de configurer quoi que ce soit au niveau du HDMI (je ne l’utilise pas). J’ai par ailleurs aussi renoncé à installer le driver propriétaire (j’avais déjà réussi l’install, selon plusieurs méthodes, mais je préfère garder le pilote libre).

Je continue de suivre les progrès réalisés sur les drivers, ATI publie régulièrement de la documentation, peut être que quand squeeze passera en stable on aura un driver libre décent !