====== Diagnostiquer un problème de son sous Debian ====== * Objet : Corriger les problèmes de son * Niveau requis : {{tag>débutant avisé}} * Commentaires : //Votre son ne semble plus marcher depuis la dernière installation.// * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) * Suivi : {{tag>à-compléter à-(re)tester}} * Création par [[user>darien]] le 8/05/2011 * Testé par [[user>darien]] le 9/05/2014 * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=3894 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) **Nota :** Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! créé - 10/05/2011 Merci à Lætitia pour sa remarque bienfaisante. **Voir sur le forum df :** http://debian-facile.org/forum/viewtopic.php?pid=31765#p31765 //Remerciement d'une personne qui ne fréquente pas DF : [[https://www.debian-fr.org/pas-de-son-sur-asus-eeepc-1015pem-t36715.html|chez debian-fr.org]]// {{/file-R05efd513f35cf79e02124f28c00d30d7.png?300}} ===== Préface ===== Ce qui fait que vous avez du son c'est la carte son. La carte son est gérée par le noyau qui comprend en son sein les controleurs qui la régissent. Ces controleurs sont habituellement du ressort d'ALSA (Advanced LINUX Sound Architecture) Pulseaudio dans ce schéma n'est qu'un élément qui s'intercale entre vos applications audio et la carte son. Pas besoin de pulse pour avoir du son, pulseaudio canalise l'audio, il le centralise pour faire cohabiter plusieurs sources, plusieurs sorties même en réseau . ===== Attention ===== Vérifiez en premier l’installation des 3 paquets de base **alsa-base alsa-tools et alsa-utils**\\ (sont normalement présents sur le système dès le début, s'occupent de sauvegarder et restaurer les paramètres sonores du système au démarrage et à l'arrêt du système) Ce tutoriel doit être en grande partie obsolète sous Stretch (Debian 9). Le paquet alsa-base n'est plus présent. Voir cette page du wiki pour des versions de Debian récentes : [[doc:materiel:cartes-son:probleme-de-son|diagnostiquer le problème de son]] ===== Je n'ai pas de son, que faire ? ===== ==== 1 - Vérifiez vos hauts parleurs, branchements, etc... ==== Dans environ 20% des cas sur le son, les enceintes n'étaient pas branchées au bon endroit. Exemple : https://debian-facile.org/viewtopic.php?pid=95477#p95477 ==== 2 - Vérifiez que rien n'est branché sur la sortie audio ! ==== Exemple : comme des écouteurs ... ==== 3 - Vérifiez le volume ! ==== Dans ''alsamixer'', **MASTER** et **PCM** doivent être à 80 % et sans qu'ils soit marqué **MM**(mute = sourdine en Français) au dessus ou en dessous. Souvent par défaut la sourdine est activée. (déplacement par les flèches et la touche m pour enlever/remettre le **MM**) Attention, certaines cartes (très rares) ont le mute inversé... Il faut donc avoir MM sur celles ci (pour changer la valeur **MM** en **00** utiliser la touche m ). ==== 4 - Vérification groupe audio ==== Vérifiez que l'utilisateur qui veut lire le son est bien membre du groupe //audio//. Pour vérifier, dans une console tapez : groups Vous aurez la liste des groupes auquel appartient l'utilisateur, dans le cas contraire il faut ajouter votre utilisateur à ce groupe : adduser audio Lancer ''alsactl init'' : alsactl init qui va tenter une reconnaissance automatique de votre carte son. ==== 5 - Si votre carte son est intégrée à votre carte mère, vérifiez qu'elle est bien activée dans le BIOS ! ==== De plus, il se peut que votre carte son soit reliée à votre modem interne dans le cas d'un ordinateur portable par exemple. Allez dans le BIOS et vérifiez que l'option //Internal modem// est bien sur //enabled// (activé) ! ==== 6 - Commandes utiles et erreurs connues ==== Pour sauvegarder vos réglages : alsactl store Bien sûr **un moteur de recherche** sera votre ami, de même que le site d'[[http://www.alsa-project.org/main/index.php/Main_Page|Alsa]], passez voir les cartes son qui posent problème il y aura peut-être la vôtre. Si les musiques semblent se jouer correctement mais que vous n'entendez rien, revérifiez les deux points précédents. Si Linux ne détecte pas de carte son, il ne joue **JAMAIS** le son ! et affiche **TOUJOURS** une erreur ! Vérifiez que votre ordinateur n'est pas équipé de deux cartes sons et branchez vos enceintes sur l'autre (utiliser une carte son particulière est un autre problème résolu plus bas dans cette page). Si vous avez un message d'erreur de type : **Not found or busy**, vérifiez avec ''lsof'' quel logiciel occupe votre carte son. La commande ci dessous vous indique les programmes utilisant ALSA : lsof /dev/snd/* ''Lsof'' est un outil de diagnostic spécifique à UNIX. Son nom signifie LiSt Open Files (LiSte les Fichiers Ouverts) et c'est exactement cela qu'il fait. Il affiche des informations à propos de n'importe quel fichier ouvert par les processus s'exécutant actuellement sur le système. ===== Installer les modules son ===== Normalement il suffit de lancer : dpkg-reconfigure alsa-base et de se laisser guider. Si votre carte n'est pas dans la liste, ça se complique, il va falloir utiliser **"votre moteur de recherche"** ou\\ [[http://alsa-project.org/main/index.php/Matrix:Main|Is my soundcard supported?]] Note : les cartes son USB nécessitent snd_usb_audio. cat /proc/asound/modules 0 snd_ctxfi 1 snd_usb_audio Si cette commande retourne une seule carte **snd-hda-intel** vous pouvez profiter de cette solution => http://linuxfr.org/forums/linux-debian-ubuntu/posts/alsa-hda-intel-debian-wheezy Merci à GhostSpirit (voir le topic sur le forum df) => http://debian-facile.org/viewtopic.php?pid=89861#p89861 ===== Plusieurs cartes son ===== Vous avez plusieurs cartes son, et un problème : la carte principale, qui est reconnue et utilisée par Linux, n'est pas celle que vous voulez utiliser. Le problème se pose aussi avec les cartes TV, qui s'identifient souvent comme carte son principale, la vraie carte son passant en 2ème position, donc plus aucun son n'en sort... Le problème existe enfin sur les ordinateurs récents qui disposent d'une sortie S/PDIF((S/PDIF est une sortie coaxiale numérique qui peut se brancher directement sur un ampli 5.1)). Pour les sorties numériques avec ALSA voir aussi le lien [[http://alsa.opensrc.org/DigitalOut|Configurer une sortie numérique avec ALSA]]. ==== Choisir la bonne carte son ==== Tout d'abord informez-vous sur les différentes solutions existantes ci-dessous, puis testez et appliquez celle qui vous convient le mieux. ==== 1ère solution ==== Allez dans //Système > Préférences > Son// et choisissez la bonne carte. FIXME((Quid dans Gnome3 ?)) Pour vérifier le volume attribué à vos sorties audio, qui par défaut peut parfois être à zéro, utilisez [[:doc:media:alsamixer|alsamixer]]. alsamixer Pour commencer, ces deux procédures permettent de tester le bon fonctionnement de la couche ALSA : speaker-test -c 2 -l 1 -t wav aplay /usr/share/sounds/alsa/Front_Center.wav ==== 2ème solution ==== Exécutez la commande aplay -l puis regardez quel numéro porte la carte qui vous intéresse. Par exemple : **** List of PLAYBACK Hardware Devices **** card 0: External [SB Live! 24-bit External], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: AudioPCI [Ensoniq AudioPCI], device 0: ES1371/1 [ES1371 DAC2/ADC] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: AudioPCI [Ensoniq AudioPCI], device 1: ES1371/2 [ES1371 DAC1] Subdevices: 1/1 Subdevice #0: subdevice #0 Éditez (ou créez) votre fichier ''/etc/asound.conf'' pour y placer # On définit la sortie son pcm.!default { type hw card 1 # numéro de la carte que vous voulez utiliser } # On définit le mixeur associé ctl.!default { type hw card 1 # numéro de la carte que vous vouler utiliser } **Vous utilisez désormais la 2ème carte !** On peut aussi comme alternative mettre le //device// (périphérique) égal à : "hw:0,1" directement dans l'application (comme celles à base de XINE : Kaffeine, Amarok, VLC). ==== 3ème solution ==== Enlevez la carte de l'unité centrale ou désactivez dans le BIOS la carte son intégrée à la carte mère... radical et efficace. ==== 4ème solution ==== Quand vous ajoutez une nouvelle carte son, la première chose à faire pour éviter les problèmes est de désactiver dans le BIOS la carte son intégrée à la carte mère. Si vous avez plusieurs cartes il faut effectivement définir l'ordre d'utilisation. Modifiez l'ordre des cartes dans le fichier ''/proc/asound/modules'', qui indique l'ordre des cartes son, puis lancez la mise à jour des modules dans le système (redémarrage nécessaire après). Par exemple la commande cat /proc/asound/modules donne (carte son intégrée à la carte mère désactivée) : 0 snd_hda _intel ( carte vidéo ATI ) 1 snd_ctxfi ( SB-XFi - Creative X-Fi ) 2 snd_usb_audio ( USB-Audio - QuickCam Pro 9000 ) Sous Wheezy la sortie de la commande nano /etc/modprobe.d/alsa-base.conf se présente comme ça : # 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 ; : ; } install snd-emu10k1 /sbin/modprobe --ignore-install snd-emu10k1 && { /sbin/modprobe --quiet snd-emu10k1-synth ; : ; } # Keep snd-pcsp from beeing loaded as first soundcard options snd-pcsp index=-2 # Keep snd-usb-audio from beeing loaded as first soundcard options snd-usb-audio index=-2 # 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 Si vous voulez principalement utiliser "SB-XFi - Creative X-Fi" puis "USB-Audio - QuickCam Pro 9000", il faut changer l'ordre dans le fichier ''/etc/modprobe.d/alsa-base.conf'' : install sound-slot-1 /sbin/modprobe snd-card-0 install sound-slot-2 /sbin/modprobe snd-card-1 install sound-slot-0 /sbin/modprobe snd-card-2 install sound-slot-3 /sbin/modprobe snd-card-3 puis ajouter votre configuration en dessous. Par exemple : options snd-ctxfi index=0 options snd-usb-audio index=1 options snd-hda-intel index=2 **Cas particulier :** pour utiliser une carte son externe USB il sera judicieux de changer la valeur **options snd-usb-audio index=-2** à **0**, puis d'ajouter options snd slots=snd-usb-audio,snd-hda-intel **Enregistrez et redémarrez.** ==== 5ème solution ==== Tout d'abord il faut connaître le numéro de votre carte : Exécutez la commande cat /proc/asound/cards qui par exemple retourne : 0 [Q9000 ]: USB-Audio - QuickCam Pro 9000 Logitech, Inc. QuickCam Pro 9000 at usb-0000:00:1d.7-5, high speed 1 [XFi ]: SB-XFi - Creative X-Fi Creative X-Fi 20K1 Unknown Éditez (ou créez) votre fichier ''/etc/modprobe.d/alsa-base.conf'' pour y placer install sound-slot-1 modprobe snd-card-0 install sound-slot-0 modprobe snd-card-1 puis faites (ne fonctionne pas sous Jessie) : update-modules **Redémarrez** pour appliquer les modifications. ==== 6ème solution ==== Désactiver le lancement des modules de la carte son non désirée. Pour cela, repérez les modules chargés correspondant à vos cartes son avec la commande ''lsmod'' (leur nom commence par "snd_"). Exécutez la commande : lsmod | grep snd_ Ensuite, éditez le fichier ''/etc/modprobe.d/alsa-base-blacklist.conf'' en mode administrateur et ajoutez les modules à désactiver. Par exemple : # modules son à désactiver blacklist snd-via82xx-modem blacklist snd-via82xx blacklist snd-ac97-codec blacklist snd-ac97-bus Au redémarrage, seule la carte son désirée sera utilisée. **La seule difficulté qui peut être rencontrée est de désactiver les bons modules, mais rien n'empêche de faire plusieurs essais...** ===== Son qui grésille ===== Allez dans votre contrôleur de volume, en double cliquant sur le petit haut parleur en haut à droite de votre écran. Réduisez le PCM à 80% ou moins. Puis fermez la fenêtre. Votre son ne devrait plus grésiller. (si il n'y a pas de curseur PCM, allez dans Fichier => Changer de périphérique). (PCM : Pulse Code Modulation, 'digital audio interface') ===== Kit 5.1 qui n'est que 2.0 ===== À part certains médias (DVD transcrit/encodé en 5.1) **on écoute surtout du 2.0, c'est-a-dire de la stéréo simple**. Il y a moyen de faire du pseudo 5.1 **avec ALSA**, pas avec OSS. **♦** Éditez/créer le fichier **"etc/asound.conf"** avec [[:doc:editeurs:nano|nano]] la commande (à lancer dans un terminal)\\ nano /etc/asound.conf et ajouter : pcm.duplicate { type plug slave.pcm "surround51" slave.channels 6 route_policy duplicate } Créez un répertoire dans **/home/mon_user/.asoundrc** nano /home/mon_user/ .asoundrc et ajouter ce fichier : ctl.ca0106 type hw card 0 pcm. !default slave.pcm surround51 slave.channels 6 type route ttable.0.0 1 ttable.1.1 1 ttable.0.2 1 ttable.1.3 1 ttable.0.4 0.5 ttable.1.4 0.5 ttable.0.5 0.5 ttable.1.5 0.5 Pour affiner vos fichiers voir => http://www.alsa-project.org/main/index.php/Asoundrc\\ [[:doc:editeurs:nano#raccourcis_clavier|Enregistrer,]] puis redémarrer ALSA service alsa-utils restart\\ **♦** Vous pouvez utiliser cette configuration sans répertoire .asoundrc\\ Il faut éditer le **/etc/asound.conf**, nano /etc/asound.conf et ajouter : pcm.card0 { type hw card 0 } ctl.card0 { type hw card 0 } pcm.!default { type plug slave.pcm "surround51" slave.channels 6 route_policy duplicate } [[:doc:editeurs:nano#raccourcis_clavier|Enregistrer,]] puis redémarrer ALSA service alsa-utils restart\\ **Pour modifier/actualiser vos fichiers voir howto** => (en)http://alsa.opensrc.org/Playing_stereo_on_surround_sound_setup_%28Howto%29 **♦** Clique droit sur l'icone du haut parleur dans la zone de notification "Ouvrir le contrôleur de volume" **ou** lancer : gnome-volume-control et configurer la lecture et les options du son avec "votre_carte"(Alsa mixer)\\ Vérifier que vous avez effectuez ce modèle de branchement: {{/file-Rd5faeb7a392429553d734d80ab5642b2.png?200}} Après, il suffit de choisir **"surround51"** comme sortie son dans son application préférée (Totem, Amarok, VLC etc...) pour qu'ils utilisents une sortie Surround 5.1 !\\ ===== Tester son installation 5.1 sous Linux ===== Vous avez effectué la manipulation précédente et le son continue à sortir en 2.0 **♦** Faites un premier test avec ces deux commandes (en coupant ce qui utiliserait le périphérique sonore au préalable) speaker-test -D surround51:0 -c 6 -t 2 speaker-test -D duplicate -c 6 -t 2 **♦** Faites un deuxième test avec cette commande ( alsa-utils installé ) : speaker-test -D plug:surround51 -c 6 -l 1 -t wav Exemple : Les paramètres du flux sont 48000Hz, S16_LE, 6 canaux Fichier(s) WAV Taux fixé à 48000Hz (demandé 48000Hz) Taille du tampon entre 64 et 16384 Taille de la periode entre 32 et 8192 Utilisation du tampon maximal 16384 Périodes = 4 La durée de la période à été définie= 4096 La taille du tampon à été définie = 16384 0 - Avant Gauche 4 - Centre 1 - Avant Droit 3 - Arrière Droit 2 - Arrière Gauche 5 - Effets basse fréquence A voir également le problème résolu sur le forum df => http://debian-facile.org/viewtopic.php?pid=68154#p68154 ==== 1ere solution ==== Vous devez spécifier au lecteur multimédia la sortie son principale, soit votre kit 5.1 et les sorties de votre carte son. gstreamer-properties * Greffon de sortie par défaut => choisissez Personnalisé * Périphérique => Choisissez votre carte son * Pipeline =>> alsasink device=duplicate Redémarrer ensuite alsa : service alsa-utils restart ==== 2eme solution ==== Les changements ne sont pas pris en compte dans la méthode précédente... ce n'est pas grave, il vous reste à tester si le son vers les sorties sont autorisées. \\ Lancez [[:doc:media:alsamixer|alsamixer]] et activez le son des sorties front, rear, LFE (pour les basses). Ou tout autre menu qui pourrait être susceptible de ressembler à votre kit d'enceintes. ===== Le son ne sort pas par mes enceintes arrières ===== Avez vous vérifié que le son joué était bien du 5.1 ? Essayer avec un DVD en mode 5.1, dans VLC par exemple il faut choisir dans AUDIO, le son SURROUND 5.1 pour l'activer correctement. ==== KDE ==== Allez dans K > Centre de configuration de KDE > Son et multimedia > Système de son. Dans le cadre Suspension automatique (pour que KDE 'rende' le controle du son aux autres applications) mettez 1 seconde. Ensuite dans Sons et multimédia > Notifications systèmes, Gestionnaire de fenetre, désactivez le son: nouvelle fenetre. Et voila, il devrait vous suffir d'attendre 1 seconde après un son de KDE pour avoir le son. **Attention: apparement, si vous mettez sur 0, ca ne marche pas**. Voir aussi : [[http://alsa.opensrc.org/index.php?page=Dmix+Kde+-+arts%2C+ESD+and+SDL+quick+and+dirty+HOWTO|Wiki Alsa : Dmix pour KDE]] ===== Liens externes ===== * [[http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html|La page de documentation ALSA sur le plugin PCM.]] * [[http://www.alsa-project.org/main/index.php/Main_Page|Alsaproject]] :-P:-P:-P