Ceci est une traduction/adaptation (partielle) de l’excellent Comprehensive Sound Problem Solution Guide v0.5e par LordRaiden, qui sauvé maintes fois la vie de votre serviteur.

Pour les problèmes concernant PulseAudio c’est par ici

Préambule, Notes et Mises en Garde

Si vous venez d’installer Ubuntu/Linux et que vous n’avez pas de son, il s’agit vraisemblablement d’un bug. Il se peut que votre matériel ne soit simplement pas détecté, ou un problème plus sérieux. Même si fixer ce problème par vous même est une partie de plaisir, les développeurs ont besoin de vos commentaires pour améliorer cette distribution. Veuillez donc remplir dans ce cas un bug report sur launchpad.

Pour plus de clarté, lorsque j’emploie le mot « Ubuntu », il s’agit de Ubuntu, Kubuntu et Xubuntu.

Quant à la syntaxe, les modules ALSA sont notés ainsi: le préfixe « snd » suivi d’un tiret « -« , suivit du nom du module (ex: « via82xx »), ce qui donne au final « snd-via82xx ». Néanmoins vous verrez parfois un tiret bas « _ » à la place d’un tiret normal. Pas de panique, c’est normal. Cependant, pour l’installation ou les commentaires, n’utilisez que des tiret normaux « -« 

Au sommaire:

- Aide Générale: commencez par là si vous n’avez aucune idée de l’origine de votre problème.
Réinstaller linux-audio et ALSA: remettre ALSA à son état initial après un bidouillage foireux.
Compiler le driver ALSA: pour les adeptes de la compilation et du bleeding-edge, si votre carte est récente ou si votre driver n’est supporté que par le dernière version d’ALSA (vérifiez avant)
Alsamixer: redevenez maître du volume sonore.
Sauvegarder la configuration d’ALSA: pour les configurations qui refusent de rester comme vous le voulez.
Configurer la carte son par défaut / Empêcher deux cartes de se charger aléatoirement: si vous avez deux cartes son ou plus, alsa en choisi généralement une au hasard au démarrage.  Et le hasard ne fait pas toujours bien les choses.
Ajouter un utilisateur au groupe “audio”: si tout fonctionne et que vous n’avez toujours pas de son, vous n’êtes peut etre pas autorisé a avoir le son!
Petits tuyaux divers

Aide Générale

(commencez par là si vous n’avez aucune idée de l’origine de votre problème)

Étape 1

Dans un terminal, tapez

aplay -l
  • Succès: vous obtenez une liste des cartes son installées sur votre ordinateur, allez à la section alsamixer
  • Erreur: vous obtenez un message du genre "aplay: device_list:221: aucune carte detectée...". Passez à l'étape 2.

Étape 2

Dans un terminal tapez:

lspci -v
  • Succès: À ce point vous devriez voir votre carte dans la liste. C'est un point positif car cela signifie que Ubuntu détecte la présence de votre carte mais que les drivers ne sont pas installés/chargés. Laissez le terminal ouvert, vous en aurez besoins
  • Erreur: Si votre carte n'est pas listée vous pouvez toujours vérifiez que : - s'il s'agit d'une carte intégrée, vérifiez qu'elle ne soit pas désactivée au niveau du BIOS.

- s'il ne s'agit pas d'un carte intégrée, vérifiez qu'elle soit bien positionnée dans le slot PCI. Si elle fonctionne sous Windows® ce n'est pas le problème.

Étape 3

Vérifiez si le driver pour votre carte existe. Allez sur http://www.alsa-project.org/main/index.php/Matrix:Main et recherchez le fabricant de votre carte, puis votre carte et enfin cliquez sur "details". Dans la section "Quick Install" notez le nom inscrit après "--with-cards=" (exemple: via82xx)

  • Succès: vous avez trouvez le driver de votre carte.
  • Erreur: votre carte n'est pas listée. Malheureusement je ne peux rien faire pour vous :/

Étape 4

Dans le terminal, tapez:

sudo modprobe snd-

Avant d'appuyer sur entrée, tapez sur TAB pour voir la liste de modules disponibles. Cherchez le module correspondant au driver que vous avez trouvé précédemment.Exemple: mon driver est "via82xx" donc je tape "sudo modprobe snd-via82xx"

  • Succès: Jouez un média avec votre lecteur favori, utilisez ALSA comme serveur de son, vérifiez dans alsamixer que le son ne soit pas muet (voir la section du même nom). Si vous avez du son, vous avez réussi! Si le son disparait à nouveau au prochain démarrage mais réapparait avec la commande précédente, ajoutez la ligne "sudo modprobe snd-xxx" dans le fichier /etc/rc.local (bien sur, remplacez xxx par le module correspondant). Le module sera alors chargé automatiquement a chaque démarrage.

Un succès signifie ici que votre carte était installée mais que le module n'était pas chargé. Il l'est maintenant pour la durée de votre session. Pour le charger automatiquement à chaque session, vous devez éditer /etc/modules et ajouter votre module à la fin du fichier (ex: snd-via82xx)

  • Erreur: pas de son :( Il vous reste deux options:

- Réinstaller linux-audio et alsa. La solution la plus simple pour retourner a l'état initial du son tel qu'il l'était lors d'un installation d'Ubuntu, mais sans avoir a réinstaller complètement Ubuntu
- Compiler le driver ALSA.

Réinstaller linux-audio et ALSA

Parfois le son peut fonctionner mais peut disparaître pour une raison ou pour une autre (bidouillage). Une façon de retourner a l'état initial est de réinstaller Ubuntu. Cependant cette étape est assez inutile car vous devez tout réinstaller à cause d'un seul problème. Une méthode plus simple et rapide est de désinstaller et réinstaller correctement les paquets problématiques:

Désinstallation:

sudo apt-get --purge remove linux-sound-base alsa-base alsa-utils

Réinstallation:

sudo apt-get install linux-sound-base alsa-base alsa-utils

Notes Importantes:- sous Ubuntu (GNOME) les paquets gdm et ubuntu-desktop se désinstallent lors de cette manipulation. Si c'est le cas, pas de panique, faites:

sudo apt-get install gdm ubuntu-desktop

- sous Xubuntu (XFCE) les paquets gdm et ubuntu-desktop se désinstallent lors de cette manipulation. Si c'est le cas, pas de panique, faites:

sudo apt-get install gdm xubuntu-desktop

Redémarrez puis essayez à nouveau:

aplay -l
  • Succès: votre carte est listée, allez à la section alsamixer.
  • Erreur: votre carte n'est toujours pas détectée, essayez de Compiler le driver ALSA.

Compiler le driver ALSA

Si vous êtes ici c'est que votre driver ne s'est pas chargé avec modprobe, ou que vous voulez compiler vous-même votre driver, bonne chance!

Les sources d'ALSA sont disponibles de deux façons. La première grâce à apt-get, c'est la méthode recommandée car elle fait le plus gros du travail pour vous. La seconde se fait en obtenant les dernières sources disponibles directement depuis alsa-project.org. Cependant cette dernière est à utiliser avec précaution car ces sources n'ont pas été testées avec Ubuntu.

Avec Alsa-source

Dans un terminal tapez ceci (note: module-assistant est optionnel, il compilera le module pour vous):

sudo apt-get install build-essential linux-headers-$(uname -r) module-assistant alsa-source
sudo dpkg-reconfigure alsa-source

Vous voila maintenant face à une grosse boite de dialogue bleue (gauche/droite pour choisir oui/non, entrée pour accepter. Répondez oui (pour ISA-PNP, recommandé par les package-maintainers).Maintenant vous devez choisir quel driver vous voulez installer. Naviguez avec hau/bas et espace pour selectionner. Si vous avez lu l'Aide Générale vous devriez savoir le nom de votre driver, désélectionnez tout et sélectionnez votre driver (dans mon cas: via82xx). Tapez Entrée, Vous y êtes presque!

  • Avec module-assistant:

sudo module-assistant a-i   alsa-source

Si la barre de progression atteint les 100% sans erreurs, vous avez installé les drivers avec succès. Reprenez ce guide depuis l'Aide Générale Étape 4.

  • Sans module-assistant:Souvenez vous du nom de votre driver et placez le dans les lignes suivantes à la place de "votre-driver" ci-dessous.
cd /usr/src sudo tar xjvf alsa-driver.tar.bz2 cd modules/alsa-driver
sudo ./configure  --with-kernel=/usr/src/linux-headers-$(uname -r) --with-cards="votre-driver" --with-oss=yes
sudo make
sudo make install

Si vous ne recevez aucun message d'erreur vous avez installé votre driver avec succès.

Depuis ALSA-project.org

Vérifiez avant tout la version disponible sur le site (à ce jour: 1.0.15) et modifiez la dans les lignes suivantes:

mkdir src
cd src
mkdir alsa
cd alsa
sudo apt-get install build-essential linux-headers-$(uname -r)
wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.15.tar.bz2
tar xvjf alsa-driver-1.0.15.tar.bz2
cd alsa-driver-1.0.15
sudo ./configure  --with-kernel=/usr/src/linux-headers-$(uname -r) --with-cards="votre-driver" --with-oss=yes
sudo make
sudo make install

Alsamixer

Dans un terminal, tapez ceci:

alsamixer

Vous verrez apparaître une sorte d'égaliseur graphique qui n'est en fait qu'une série de curseurs contrôlant le volume des différentes entrées/sorties de votre carte. Naviguez comme ceci:gauche/droite: gauche/droite (!)
haut/bas: augmente/baisser le volume
Touche M: mode "muet"

Sauvegarder la configuration d'ALSA

Suivez cette étape pour vous assurer que votre configuration soit chargée à chaque redémarrage. Assurez vous d'avoir les paramètres adéquats dans alsamixer puis tapez:

sudo alsactl store 0

Ou, s'il s'agit de votre ènième carte son, remplacez 0 par n-1 (n étant le numéro de votre carte son)Utiliser une carte avec plusieurs applications en même temps.Il arrive de vouloir écouter de la musique en même temps que l'on joue à jeux. Pour cela il vous faut ALSA, puisque c'est lui qui supporte le mieux cette fonction. Sur tous les lecteurs que je connaisse, vous pouvez changer de moteur de son. Ce paramètre se trouve généralement dans Outils>Paramètres>Son.Pour les jeux, c'est un peu plus compliqué car on peut rarement de moteur de son. Cependant la plupart des jeux utilisent OSS. ALSA a un module qui permet à OSS d'utiliser ses drivers. Pour cela, dans un terminal, tapez:

sudo apt-get install aoss

Après cela, il est très facile d'utiliser alsa-oss, il suffit de lancer le jeu (ou tout autre programme) via une console en tapant "aoss" suivi du programme en question (exemple: aoss firefox).

Configurer la carte son par défaut / Empêcher deux cartes de se charger aléatoirement

Note: cette section assume que vos deux cartes soient correctement installées

Dans un terminal, tapez:

cat /proc/asound/modules

Cela vous donnera le nom et l'index de chaque carte installée sur votre système. Notez tous cela quelque part et décidez quelle carte utiliser par défaut. Maintenant tapez:

sudo nano /etc/modprobe.d/alsa-base

Tout à la fin du fichier, ajoutez ces lignes (en assumant que vous ayez 3 carte nommées A, B et C et que vous vouliez les avoir dans l'ordre C, A, B)

options snd-C index 0
options snd-A index 1
options snd-B index 2

Ajouter un utilisateur au groupe "audio"

Une des causes fréquentes de problèmes sonore est que le nom de l'utilisateur ne figure pas dans /etc/group/. Pour vérifiez, tapez ceci dans un terminal:

grep 'audio' /etc/group

Si votre nom d'utilisateur est robert, vous devriez voir quelque chose du genre

audio:x:29:robert

Si vous avez "audio:x:29:root", vous devez éditer /etc/group:

sudo nano /etc/group

Cherchez la ligne "audio:x:29:root" et changez-là en "audio:x:29:root:robert"

Petits tuyaux divers

Certaine cartes/modules/drivers ne supportent pas qu'on touche à ~/.asoundrc et /etc/asound.conf Pour vérifier, changez le nom de ces deux fichiers. Si le son réapparait, laissez-les tels quels ou effacez-les.

Après avoir bidouillé autant, un bon redémarrage fait parfois des miracles.

N'oubliez pas de dire merci à LordRaiden: http://ubuntuforums.org/showthread.php?t=205449