Linux - Problèmes de son

Décembre 2016

La gestion du son sous GNU/Linux est assez complexe et peut générer pas mal d'erreurs. Cet article n'a pas vocation d'expliquer dans le détail comment Linux gère le son, mais vous trouverez ici des solutions à certains problèmes courants.


Le constat


Plusieurs problèmes sont possibles
  • 1° cas : le son va bien, mais je n'arrive pas à écouter les CD audio
  • 2° cas : je ne sais pas lire les fichiers wma/wmv
  • 3° cas : j'ai l'erreur « /dev/dsp n'a pas été trouvé »
  • 4° cas : le pilote est reconnu, mais pas de son et plantage du mixer
  • 5° cas : je n'ai aucun son

Pistes de solutions


1° cas : CD audio


J'ai constaté qu'une solution facile pour les utilisateurs de Mandriva est de lire le CD par kaffeine. Sinon, il s'agit souvent simplement d'un problème de raccord entre le lecteur CD/DVD et la carte son par le câble son. Je ne sais pas pourquoi, mais il semble que le son de CD est analogique et ne passe pas par la nappe ide, et on est obligé de passer par un petit câble (2 fils entortillés) pour le son. Il arrive parfois, si vous avez 2 lecteurs, qu'il n'y ait qu'un seul câble son, à vous de choisir quel lecteur vous utiliserez pour écouter vos CD favoris. Pour vérifier cela, on est bien sûr obligé d'ouvrir son ordinateur (donc pour les portables, je le déconseille fortement).

Cela explique aussi pourquoi on ne monte pas les CD audio pour les lire.

2° Cas : WMA/WMV


Il faut savoir que les formats wma et wmv veulent dire Windows Media Audio et Windows Media Vidéo. Ce sont donc des formats propriétaires, qui ne sont pas supportés par tous les lecteurs média.
Si vous utilisez une distribution avec le système de paquets rpm, vous avez de la chance, car il existe un paquet xmms-wma pour red hat, par exemple dag.wieers.com/packages/xmms-wma/, et donc les sources existent pour celui qui veut compiler lui-même. (TODO cas de totem)

Sinon la solution de facilité est de changer de lecteur media, pour vlc, paquet vlc, ou Mplayer, paquet mplayer-k6 pour amd, et mplayer-586 pour pentium I à IV, www.mplayerhq.hu/homepage/index.html qui viennent de FERMER à cause des nouvelles lois européennes sur les brevets !!! (pour debian (sarge), ajouter deb ftp.nerim.net/debian-marillat/ testing main à votre /etc/apt/sources.list). Je ne sais donc pas où on peut encore trouver les sources.

Note: Le site de Mplayer n'a pas fermé, mais il y a un message sur la page d'accueil. Il suffit de cliquer sur le lien en bas pour accéder au reste du site.... Les sources de mplayer sont disponibles ici :
www.mplayerhq.hu/homepage/design7/dload.html

3° Cas : /dev/dsp


Dans ce cas, si votre carte son est sur un port PCI, vérifier simplement si elle est bien enfoncée. Si elle l'est bien, ou si c'est une carte son intégrée, je crains qu'elle soit cramée.

4° Cas : problème de mélangeur (mixer)


Je n'ai toujours pas pigé d'où vient cette erreur, mais pour la résoudre, une mise à jour du système, ou uniquement du noyau, peut suffire. Pour mettre le système à jour, ne pas oublier d'enlever les anciennes sources (urpmi.removemedia -a) (Voir : Linux - Installer les programmes)


Pour mettre un noyau de Mandriva à jour :
  • 1. après l'installation de base, mettre à jour tous les urpmi (contrib, update etc..)
  • 2. lancer la commande urpmi alsa
  • 3. il propose une série de kernel avec un choix (avec la commande uname -r ( le 2.6.8.1-10 par exemple), prendre le plus proche (donc choix 2: 2.6.8.1-24mdk dans ce cas)
  • 4. relancer la machine (peut-être pas indispensable)
  • 5. lancer kmix prier pour que tout marche...

5° Cas : pas de son


Alors là, ça peut être beaucoup de choses ! On va commencer par le plus simple à vérifier. Je suppose que vous avez du matériel un peu récent et que vous utilisez alsa. (TODO compléter oss !)

a ) Tout d'abord avez-vous bien mis le volume correctement ! pour vos baffles, je vous fais confiance. Mais il faut aussi le mettre pour le mixeur.
Le mixeur de base se lance par la commande alsamixer. Il doit être disponible pour toutes les distributions, mais son utilisation n'est pas instinctive. Man alsamixer vous dira tout et google complétera. Pour pouvoir utiliser le mixeur plus facilement, il existe plusieurs mixers différents : aumix, kmix pour les plus courants, alsamixergui pour l'interface graphique de alsamixer, gamix, gom, gom-x, gnome-alsamixer, ... (voir la description des paquets respectifs pour votre distribution) Ce sont à chaque fois des logiciels qui utilisent alsamixer, mais qui sont plus faciles d'emploi.

b) Vérifiez aussi que vous avez les codecs pour lire le format audio. Je pense que la plupart sont fournis avec le paquet mpg321. Normalement, ils doivent être des dépendances du lecteur, donc c'est pas censé poser de problème, sauf si vous avez compilé le lecteur vous-même.

c ) Votre compte est-il bien repris dans le groupe audio. Pour vérifier, tapez groups dans un terminal, et il vous renverra tous les groupes dont votre compte fait partie, et vérifiez que audio soit bien repris. S'il n'est pas repris, taper
# adduser toto audio
(toto à remplacer par votre nom).

d ) Le plugin du lecteur media : Je n'ai jamais vu que cela posait problème, mais il vaut mieux quand même vérifier, c'est assez facile. Par exemple pour xmms, cliquez droit => option => Préférences => plugin d'entrée. Il doit y avoir plusieurs lignes du genre

Générateur de tonalité 1.2.10 [libtonegen.so]
Lecteur de CD Audio 1.2.10 [libcdaudio]
Lecteur de MPEG couche 1 / 2 / 3 1.2.10 [libmpg123.so] ...

Pour Mplayer, même chose, clic droit => préférences => codec and demixer, et vous avez la liste des familles de codecs (s'il y en a, ça doit être bon).

Si j'ai bien compris, VLC est un peu spécial car il ne nécessite pas de codecs.

e) Si tout ce qui vient avant n'a pas résolu votre problème, alors il faut croire que votre carte son n'est pas bien reconnue. Je sais qu'il y a moyen de voir cela avec les interfaces graphiques de chaque distribution, mais comme c'est différent pour chaque distribution et que je connais mieux en ligne de commande, on va faire en ligne de commande.

La première chose à regarder, c'est s'il y a déjà des modules pour le son chargé dans votre noyau. Pour cela, la commande est lsmod, en simple utilisateur, qui doit vous retourner quelque chose comme :

Module                  Size      Used by
snd_cmipci              26624  2
snd_opl3_lib            8640   1 snd_cmipci
snd_hwdep               7044   1 snd_opl3_lib
snd_mpu401_uart    5632   1 snd_cmipci
snd_rawmidi            19232 1 snd_mpu401_uart


Dans ce cas-ci, tous les modules chargés concernent le son (snd au début) et ils dépendent, directement ou non, de snd_cmipci, qui est le driver de ma carte son.

Si vous n'avez aucun module qui commence par snd, ça peut être la source de vos problèmes. Et s'il y en a un, il faut vérifier que ce soit le bon. Il est aussi possible que le driver de la carte son soit monté en dur, mais il faut vérifier aussi, et ça tombe bien, c'est exactement la même méthode.

Il faut commencer par déterminer quelle est exactement votre carte audio (lspci peut vous aider), puis allez voir sur le site alsa, www.alsa-project.org/alsa-doc/, si votre carte est bien supportée. Enfin, recompiler votre noyau en activant, en module, le bon driver. Pour cela, les sites http://formation-debian.via.ecp.fr/wiki/index.php/Compiler_son_propre_noyau et casteyde.christian.free.fr/online/install_linux/a11036.html vont bien vous aider.
Dans les cas les plus courants, il ne faut même pas patcher le noyau, celui fourni par kernel.org étant déjà bien complet.

Lors du make menuconfig, allez dans Device Drivers => Sound => Advanced Linux Sound Architecture => PCI devices (même pour les cartes son intégrées, elles sont considérées comme mises sur pci) et là, choisir le driver qui correspond à votre carte son. Ne pas hésiter à lire le help, car il fournit pas mal de renseignements. Les cartes son intégrées les plus courantes sont Intel/SiS/nVidia/AMD/ALi AC97 Controller (module snd-intel8x0) et VIA 82C686A/B, 8233/8235 AC97 Controller (module snd-via82xx).

Quelques commandes bien utiles

  • lsof /dev/votre-carte-son indique quels processus utilisent actuellement la carte
  • grep sound-slot /etc/modprobe.conf vous affiche quel pilote (module) est actuellement utilisé.
  • /sbin/lsmod vous permet de vérifier si ce module est chargé
  • /sbin/chkconfig --list sound et /sbin/chkconfig --list alsa vous diront si les services « sound » et « alsa » sont configurés pour être démarrés dès le niveau d'exécution 3 (init runlevel 3)
  • aumix -q vous permettra de voir si le volume sonore est coupé ou non...
  • /sbin/fuser -v /dev/dsp dénoncera quel programme est en train d'utiliser ou de bloquer la carte son.</code>
  • lspcidrake -v | grep AUDIO vous indique quel pilote votre carte utilise par défaut

Conclusion


J'espère que ces conseils vous auront permis de résoudre vos problèmes.

Je répète néanmoins ce que j'ai dit au début, je ne suis absolument pas informaticien et le seul but est d'aider les gens qui ont un problème. J'espère ne pas avoir dit trop d'âneries. Si vous voyez quelque chose à améliorer, ne fusse que l'orthographe, n'hésitez pas à me le dire, mon mail se trouve dans mon profil.

A voir également :

Ce document intitulé «  Linux - Problèmes de son  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.