Désactiver la détection de prise casque dans pulseaudio

19

J'ai un port de casque douteux sur mon ordinateur portable qui ne détecte pas de manière fiable quand un casque / des haut-parleurs externes sont branchés. Cela signifie que la sortie est constamment coupée / non coupée, ce qui est plutôt ennuyeux

Comment puis-je configurer pulseaudio pour désactiver la détection de la prise (ou alternativement simplement forcer la sortie via cette prise)?

Je suppose que cela impliquera de modifier analog-output-headphones.conf mais je ne peux pas comprendre comment le faire (analog-output.conf.common ne sert à rien).

Ross
la source
2
Avez-vous envisagé / essayé de supprimer pulseaudio et d'utiliser simplement ALSA?
goldilocks
Oui, mais j'aime un peu le contrôle supplémentaire que donne pulseaudio. De plus, je suis sûr qu'il existe une solution simple - je ne peux tout simplement pas comprendre ce que c'est.
Ross
L'utilisation d'ALSA rendrait la solution simple. Il en irait de même pour l'utilisation d'une autre prise. En évitant ces deux options, je choisirais de réparer la prise feuilletée (nécessite un fer à souder et de l'expérience) :)
Elder Geek

Réponses:

7

Vous pouvez essayer de suspendre la prise casque. Pour trouver l'index de la prise casque:

pactl list short sinks

Ensuite, suspendez cet évier:

pactl suspend-sink [SINK] 1|0

Où "SINK" est l'index de la première commande, et "1" suspendra et "0" ne suspendra pas.

Edit: Désolé, j'ai mal compris la situation. Trouvé un thread Arch qui a une méthode pour désactiver la commutation automatique. Modifier /etc/pulse/default.pa(gdamjan suggère l'alternative ~/.config/pulse/default.pa) pour supprimer la ligne suivante:

load-module module-switch-on-port-available
fooot
la source
1
Merci, mais je ne veux pas désactiver les écouteurs, mais plutôt forcer la sortie à travers eux - même lorsqu'ils ne détectent pas de câble branché.
Ross
En ce qui concerne la désactivation: charge-module module-switch-on-port-available - j'ai essayé cela mais cela ne semble faire aucune différence.
Ross
1
essayez aletrantively ~ / .config / pulse / default.pa
gdamjan
J'essayais cela pour faire passer le son via les haut-parleurs lorsque je branche un microphone (c'est un micro-casque - mais je veux que le micro capte les sons des haut-parleurs pour l'enregistrement). Lorsque j'ai essayé de retirer le commutateur, je peux le faire (avec une commande "pacmd set-sink-port") sortir uniquement vers le haut-parleur (aucun son ne sort sur le casque), mais le son ne sortira toujours du haut-parleur que lorsque rien est branché sur la prise. Arrrggghhhh ....
anthony
5

Je ne sais pas comment (ou si) cela peut être fait directement via PulseAudio lui-même, mais je sais que cela peut être fait via le contrôle ALSA nommé "Mode Auto-Mute", débloquant ce contrôle (avec 'alsamixer' par exemple) devrait empêcher que votre sortie soit automatiquement coupée lorsqu'un élément est branché dans la prise avant.

Le changer de cette façon fonctionnera même si votre système exécute PulseAudio, tant qu'il utilise ALSA comme backend (mais je pense que c'est le cas dans la plupart des distributions Linux par défaut).

Si vous utilisez 'alsamixer' pour modifier ce paramètre, vous devrez d'abord sélectionner le bon périphérique matériel (appuyez sur F6), car le périphérique par défaut sera probablement le périphérique virtuel PulseAudio, qui n'a pas le "Mode Auto-Mute" contrôle.

Pour rendre ce paramètre permanent, exécutez en tant que root:

# alsactl store
hnsr
la source
Merci d'avoir fourni des détails sur le changement d'appareil via F6. J'ai passé une demi-heure dans alsa et d'autres fichiers de configuration / contrôle à essayer de trouver quelque chose en rapport avec "AutoMute" jusqu'à la lecture de votre commentaire, je n'avais pas pensé à changer d'appareil.
Daniel
1

en supposant qu'au moins une de vos prises fonctionne toujours sans faute, je vous suggère de vous référer à cette question sur askubuntu - au lieu de dépendre de la prise audio défectueuse, je vous suggère d'utiliser le port d'entrée micro pour les écouteurs.

Poruri Sai Rahul
la source
Je suppose que je n'ai pas expliqué tout cela clairement. La sortie de la prise est correcte. Pour une raison quelconque, il y a un problème pour détecter si un câble est branché ou non. Cela conduit à pulseaudio muter de manière aléatoire le flux car il pense que la prise a été retirée (quand ce n'est pas le cas).
Ross
1

Courez pavucontrol. Dans le menu "Configuration", sélectionnez l'option "Off" pour la carte audio intégrée.

iElectric
la source
1

Juste au cas où cela serait utile pour quelqu'un, je vais décrire comment j'ai résolu mon problème avec les prises avant sur Ubuntu 14.04

Dans mon cas, le micro avant ne fonctionnait pas correctement, j'ai essayé de le réactiver alsamixeret de mille autres solutions possibles, mais finalement ce qui a été résolu était d'installer alsa-toolset d'utiliser hdajackretaskpour configurer le micro avant en tant que "micro interne", puis alsamixerj'ai simplement réactiver le micro interne et les canaux de boost du micro interne et ajuster leurs valeurs (53 sur les deux sur mon étui)

lordscales91
la source
1

J'ai eu le problème que la détection de casque a désactivé le haut-parleur, qui est apparemment connecté à ma prise casque de l'ordinateur portable. HDA-intel sur Fujitsu Siemens Amilo 1520 ici.

Ce qui devrait vous donner un indice, c'est d'ouvrir l'alsamixer sur votre carte son et de voir les commandes de volume du haut-parleur et du casque influencées (lors de la connexion du casque, des haut-parleurs muets et des casques muets, et vice versa).

puis en utilisant le hdajackretask j'ai sélectionné: casque vert (face arrière) - sélectionnez override - et réglez sur "haut-parleur interne"

vous pouvez ensuite vérifier en branchant et en déconnectant réellement le casque si cela fonctionne pour votre configuration (la documentation est maigre).

Dans mon cas, cela a fonctionné et j'ai cliqué sur le bouton "Installer le remplacement de démarrage". Redémarrez le système et faites fonctionner le son ...

(J'aimerais vraiment savoir ce qu'il a mis en place sous le capot, je le découvrirai un peu plus tard.)

Tjeerd Pinkert
la source
1

Mon problème est que Jacksense sur le port avant passe constamment à "casque" (même lorsque l'en-tête du panneau avant n'est pas connecté) et une carte mère MSI défectueuse m'a refusé RMA. Même lorsque la détection de jack est désactivée dans la configuration en la commentant dans default.pa. Un terrible travail a consisté à utiliser le panneau avant et à obtenir des craquements constants. J'ai essayé toutes les solutions énumérées ici et partout dans google.

J'ai essayé hdajackretask qui ne fonctionnait pas sur Debian Stretch, mais tout ce dont il avait besoin était de créer / lib / firmware. Lorsque c'est fait, le script d'installation de remplacement de démarrage qu'il crée sous / tmp copie correctement le fichier .fw là-bas.

/etc/modprobe.d/hda-jack-retask.conf contient:

# This file was added by the program 'hda-jack-retask'.
# If you want to revert the changes made by this program, you can simply erase this file and reboot your computer.
options snd-hda-intel patch=hda-jack-retask.fw,hda-jack-retask.fw,hda-jack-retask.fw,hda-jack-retask.fw

(qui attend le fichier sous / lib / firmware,)

Je ne sais pas si d'autres options snd-hda-intel la remplacent ou interfèrent, essayez donc de les désactiver en cas d'échec.

Mon fichier de firmware ressemble à ceci, je ne sais pas si je pourrais simplement utiliser la strophe [hint] car je suis juste content de nuke la chose:

/lib/firmware/hda-jack-retask.fw

[codec]
0x10ec0892 0x1458a002 2

[pincfg]
0x11 0x99430130
0x12 0x4037c540
0x14 0x01014010
0x15 0x01011012
0x16 0x01016011
0x17 0x411111f0
0x18 0x01a19050
0x19 0x02a19060
0x1a 0x0181305f
0x1b 0x43f1413f
0x1c 0x411111f0
0x1d 0x4045e601
0x1e 0x01452140
0x1f 0x411111f0

[hints]
jack_detect=no

Je ne peux pas voter pour ces réponses ou les commenter. Si vous lisez ceci et que vous avez essayé toutes les autres solutions répertoriées comme je l'ai, essayez de redéfinir la prise sur "non connecté". Sur mon hdajackretask, il s'appelait "Green headphone Front Side"

Russ
la source
J'ai un port audio sur le panneau avant qui n'a pas de broche de détection de prise, s'affiche donc toujours comme débranché. Finalement, il l'a corrigé et cette réponse est la meilleure. On ne peut pas appliquer les réglages car pulseaudio utilise probablement la carte et arrêter PA est étonnamment difficile. Si l'un permet une dérogation avancée, il est possible de désactiver la détection de prise jack par port. La priorité de port du port non détecté dans PA est également inférieure à celle des ports de détection, sinon votre prise de détection de ligne ne sera jamais utilisée car le casque cassé semble toujours connecté.
TrentP
0

Voici la solution de contournement manuelle, simple et mortelle qui a fonctionné pour moi (Édition Mint Debian avec Cinnamon):

  1. Ouvrez les paramètres audio (vous pouvez y accéder à partir du widget de contrôle du volume ou des paramètres système)
  2. Sous l'onglet Sortie par défaut, sous Périphérique, cliquez sur "Sortie audio analogique intégrée"

C'est ça. Vous avez terminé.

J'ai passé une journée et demie là-dessus. Oui, vous devez définir manuellement l'appareil que vous souhaitez utiliser à chaque fois, mais pour moi, deux secondes, c'est mieux que plusieurs jours de recherche et au mieux, semble-t-il, en définissant la sortie sur l'un ou l'autre et en ne changeant qu'avec un redémarrage . Je n'ai vu aucun correctif pour le problème racine de la détection feuilletée.

Surtout, le son de test a toujours fonctionné pour les écouteurs ou le haut-parleur externe, donc dans mon cas, c'est une question de détection instable. Ce n'est probablement pas le cas universel. J'ai décrit les symptômes de mon cas plus en détail ailleurs .

mlncn
la source
0

Éditer /etc/pulse/default.pa

commentaire suivant:

#load-module module-switch-on-port-available
#load-module module-suspend-on-idle

et commentez les deux dernières lignes:

set-default-sink output
set-default-source input

Maintenant, vos prises Jack seront actives après le démarrage.

linuxmarc
la source