web-dev-qa-db-fra.com

Ubuntu 16.04 Pas de son des enceintes, seuls les écouteurs fonctionnent

Je suis au bout du rouleau avec ce problème. Je sais que j'ai vu ce problème un million de fois, mais aucune des solutions ne semble fonctionner.

J'ai un ordinateur portable ASUS démarré à deux avec Windows 8.1, j'ai mis à niveau de 15.10 à 16.04 et perdu l'utilisation des haut-parleurs; la carte son pense perpétuellement que les écouteurs sont branchés, comme en témoignent ces captures d'écran.

alsamixer

pavucontrol

Ce n'est pas un problème matériel car 1) le son fonctionne sous Windows 8.1 2) Je peux faire fonctionner les haut-parleurs en désactivant la prise casque à l'aide de hdajackretask (définition de la substitution, puis en le configurant sur "Non connecté"), mais sans utiliser les touches de raccourci. pour changer le volume

J'ai essayé de recharger alsa et de la purger et de la réinstaller.

Je prévois de supprimer ma partition Windows 8 de toute façon. J'ai vu ici: pas de son des haut-parleurs de portable dans Ubuntu 14.04 après le démarrage sous Windows 8.1 que Windows pourrait être à l'origine du problème. La suppression de la partition aidera-t-elle le problème?

Edit: J'ai déjà désactivé le démarrage hybride comme suggéré dans cette question.

7
jhutch

J'ai également eu ce problème lors de la mise à niveau de mon Xubuntu 14.04 à Xubuntu 16.04 (les écouteurs produisent du son, mais pas les haut-parleurs). J'ai une carte son Intel HD avec une puce Realtek ALC259. Le problème persistait lors du démarrage avec différents noyaux de 3.13.X à 4.10.X.

Cependant, je l'ai obtenu et voici comment:

Il est important de comprendre que Pulseaudio (PA) est le système de contrôle du son par défaut pour Ubuntu et la plupart (toutes?) De ses variantes. La sonorisation est essentiellement superposée au système audio ALSA principal. Ainsi, pour chaque action effectuée dans PA, il y a une réaction ultérieure au sein d'ALSA. Pour chaque sortie (ou port) définie dans PA, il existe un ajustement défini du système ALSA. Cet ajustement est appelé "voie de mélange".

!!! IMPORTANT !!!

Avant de continuer, le moment est venu de vérifier que c'est bien votre problème et qu'il n'y a aucune autre raison pour laquelle vos haut-parleurs ne fonctionnent pas. Vous pouvez le faire très facilement en faisant le test suivant. (Si vous avez manipulé votre système audio, vous voudrez peut-être le rétablir par défaut avant de tester):

  1. Débranchez tous les écouteurs ou autres appareils audio SAUF les haut-parleurs qui ne fonctionnent pas.
  2. Commencez à lire un fichier audio qui devrait normalement générer du son à partir de vos haut-parleurs, même si ce n'est pas le cas actuellement. Ensuite,
  3. Ouvrez votre terminal et lancez la commande:

    alsamixer
    

Vous devriez voir ce qui suit:

alsamixer En raison des différences entre les cartes son, vos appareils peuvent être un peu différents de ceux de l’image. Dans mon cas, et avant de résoudre le problème, mon alsamixer ressemblait à l’image ci-dessus.

  1. Désactivez tous les périphériques actuellement muets (utilisez la touche 'm' pour basculer le son en sourdine). Puis augmentez les curseurs de volume sur tous les appareils qui ne sont pas à 100%.

Si vous entendez le son de vos haut-parleurs, ce correctif est pour vous!

Si vous n'entendez aucun son, retournez à "The Google" et continuez votre recherche. Cette méthode ne vous aidera PAS.


Si vous avez réussi à obtenir le son du test ci-dessus, vous devez maintenant jouer avec les paramètres d’alsamixer afin de déterminer:

  1. Le contrôle du volume de quel appareil contrôle réellement le volume de vos haut-parleurs, et
  2. Lequel des périphériques doit être désactivé pour que les haut-parleurs fonctionnent. Il peut être nécessaire de réactiver plusieurs appareils.

Une fois que nous connaissons les paramètres ALSA avec lesquels les haut-parleurs fonctionneront, nous pouvons utiliser ces informations pour apporter les modifications nécessaires à nos chemins de mixage PA.

Dans mon cas, j'ai découvert que mes écouteurs et mes haut-parleurs sont reliés au sein d'ALSA de la manière suivante:

  1. Le volume de mon casque est contrôlé par le périphérique "casque".
  2. Obtenir le son de mes écouteurs nécessite que les dispositifs "Master" et "Headphone" soient activés.
  3. Le volume de mon haut-parleur est ÉGALEMENT contrôlé par le dispositif "Casque". (Le réglage du volume du haut-parleur ALSA n'a étonnamment aucun effet sur le volume de mon haut-parleur.)
  4. Pour obtenir le son de mes haut-parleurs, il faut que les dispositifs "Maître" et "Haut-parleur" ne soient pas en sourdine.

Le chemin de mixage par défaut du locuteur dans PulseAudio (PA) supposait que mes haut-parleurs étaient indépendants de mon casque. Comme le montre l'observation 3 ci-dessus, ce n'était pas le cas. Par la suite, le chemin de mixage par défaut dans PA pour mes haut-parleurs a apporté les modifications problématiques suivantes dans ALSA chaque fois que la sortie du haut-parleur était sélectionnée dans PA:

  1. A baissé le volume du casque à 0.
  2. Définissez le haut-parleur comme contrôle du volume.

Compte tenu de la manière dont j'avais observé le couplage des haut-parleurs et du casque par ALSA, comme décrit précédemment, ces modifications apportées à ALSA empêcheraient le son de sortir de mes haut-parleurs.

Donc, la solution à ce problème est obtenue en modifiant le chemin de mixage du locuteur.

Les fichiers de chemin du mixeur PA se trouvent dans:

/usr/share/pulseaudio/alsa-mixer/path/

Pour déterminer quel fichier de chemin de mixage contrôle vos haut-parleurs, vous devez:

  1. Assurez-vous que la sortie de vos enceintes est sélectionnée dans PA (c’est-à-dire pas vos écouteurs). enter image description here

  2. Ouvrez un terminal et exécutez la commande suivante:

    pactl list | grep 'Active Port.*output.*'
    
  3. Il devrait produire quelque chose qui ressemble à ceci:

    Port actif: type audio - sortie - périphérique

c'est à dire.

enter image description here

Le "port actif" est le port PA contrôlant actuellement les paramètres ALSA. Puisque vous avez déjà sélectionné votre enceinte comme sortie PA, cette sortie de la commande terminal vous indique que vous devez éditer le fichier de chemin du mixeur type audio - output - périphérique . conf. Dans mon cas, le fichier de chemin du mixeur était analog-output-speaker.conf.

Maintenant que nous avons le fichier de chemin de mixage correct, nous devons apporter nos modifications.

REMARQUE: Dans ce dossier de chemins de mixage, il existe un fichier nommé 'analog-output.conf.common'. Le contenu de ce fichier explique comment les fichiers de chemin du mélangeur sont interprétés. Si vous souhaitez comprendre les modifications suivantes, je vous recommande vivement de consulter ce fichier avant de modifier le (s) chemin (s) de votre console!

Chaque fichier de chemin de mixage contient de nombreux "éléments". Idéalement, il existe un élément représentant chaque périphérique ALSA sur votre ordinateur au sein de chaque fichier. Il y a probablement des éléments que vous n'avez pas aussi bien. C'est normal.

Dans mon cas, je devais modifier les éléments Headphone et Speaker dans le chemin du mélangeur pour analog-output-speaker.conf des manières suivantes:

  1. Laissez le volume de la sonorisation régler le volume ALSA du casque.

Original:

[Element Headphone]
switch = off
volume = off

Edité:

[Element Headphone]
switch = off
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right
  1. (Facultatif) Désactivez le volume du haut-parleur et empêchez le volume de la sonorisation d’affecter le volume de ALSA. (Si vous ne le faites pas, votre son fonctionnera toujours, mais les réglages des haut-parleurs dans ALSA rebondiront inutilement.)

Original:

[Element Speaker]
required-any = any
switch = mute
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right

Edité:

[Element Speaker]
required-any = any
switch = mute
volume = off

Ensuite, redémarrez PA en exécutant:

pulseaudio -k && pulseaudio --start

Voilà!

6
notorious.dds