Comment désactiver l'économie d'énergie sur les broches audio du subwoofer de mon Lenovo Y50?

Suivi de: Comment puis-je faire fonctionner le subwoofer de votre Lenovo Y50 sur linux?

Pour réduire les choses, j'ai un Lenovo Y50 qui possède un subwoofer intégré, qui ne fonctionne que sur Linux Mint si j'ai configuré certains paramètres sur deux broches à l'aide de HDA Analyzer. La même solution ne fonctionne pas sur Fedora et d'autres distributions. Plus d'infos dans le lien ci-dessus.

J'ai eu un certain temps pour enquêter un peu plus loin et j'ai remarqué qu'il y a des différences dans ce que les onglets de vidage de texte de HDA m'indiquent pour chacune des broches, sur chacune des distros (Linux Mint à gauche, Fedora à droite):

Image 1

Image 2

J'ai appris que D0 signifie un état de puissance complet et D3 signifie un état de puissance faible. J'ai étudié comment désactiver complètement l'économie d'énergie sur ma carte audio, alors j'ai essayé ce qui suit sur Fedora, en entrant dans le terminal et en testant avant et après le redémarrage, mais cela n'a pas résolu mon problème:

echo 0 > /sys/module/snd_hda_intel/parameters/power_save

echo N > /sys/module/snd_hda_intel/parameters/power_save_controller

J'ai également essayé d' autoriser l' économie d'énergie sur Linux Mint et il a effectivement désactiver le subwoofer avant de redémarrer (et était encore désactivé après le redémarrage).

J'aimerais savoir si quelqu'un d'autre a des idées sur la façon d'essayer de changer l'état de courant sur ces deux broches (0x17 et 0x1a) de D3 à D0 afin de faire monter le son de sortie de subwoofer. Je vous remercie!

EDIT: Voici une solution basée sur un script python créé par moi ici . Ne pas tenir compte des réponses ci-dessous qui ont aidé (merci encore!).

En plus de régler l'état d'alimentation sur D0 pour les broches 0x17 et 0x1a, essayez d'augmenter le volume de sortie du nœud 0x3 (AUD_OUT).

Testé sur le même modèle d'ordinateur portable exécutant des tests debian, le subwoofer fonctionne maintenant.

Une façon simple de le tester est de brancher vos écouteurs, le subwoofer ne sera pas coupé.

Avec l'aide de debianuser dans la chaîne #alsa IRC sur freenode, je pense que je pourrais nous avoir rapproché un peu. Il semble que les états de puissance puissent être définis avec l'outil hda_verb, qui fait partie d'alsa-tools, mais il ne semble pas y avoir d'option de contrôler spécifiquement le contrôleur power_save_controller , seul power state . Vous pouvez obtenir des informations sur les parameters qui peuvent être définis en exécutant hda-verb -L

Exemple obtenant l' état de l' alimentation d'un périphérique:

Sudo hda-verbe / dev / snd / hwC1D0 0x1a GET_POWER POWER_STATE

Exemple de réglage de l' état de l' alimentation d'un périphérique:

Sudo hda-verbe / dev / snd / hwC1D0 0x17 SET_POWER 0x0 POWER_STATE

Donc, spécifiquement, ce que vous semblez faire doit être exécuté:

Sudo hda-verb / dev / snd / hwC1D0 0x17 SET_POWER 0x0
Sudo hda-verb / dev / snd / hwC1D0 0x1a SET_POWER 0x0

Notez que cela ne fonctionnera pas lorsque HDA Analyzer est en cours d'exécution, mais il peut être lancé ensuite pour vérifier si le changement a fonctionné. Dans mon cas, il l'a changé en D0.

Je me demande si cela résout votre problème?
Comme je l'ai dit, j'ai le même ordinateur, mais je ne suis pas entièrement sûr de savoir si mon subwoofer est réellement désactivé, car je ne peux pas entendre beaucoup de différence avec un exemple de fichier audio que j'ai créé lors de la lecture dans Windows ou Archlinux. Peut-être que la fréquence (65 hz) est trop élevée? Dans le cas où quelqu'un d'autre veut le tester:
http://miyalys.eu.org/files/65hzsine.wav

Peut-être que nous pouvons trouver un moyen de désactiver les enceintes habituelles, de sorte que seul le subwoofer est activé?

Edit: Avec l'aide de la réponse de leneb , j'ai créé ce script qui doit être exécuté en tant que root, ce qui fait toutes ces choses, en utilisant uniquement hda-verb. Je ne suis pas certain que le niveau de volume soit totalement sain. (Commentaires appréciés) Et le problème avec le casque branché, ne pas faire taire le subwoofer, persiste.

 #! /usr/bin/env sh # Run this script as root! dev="/dev/snd/hwC1D0" hda-verb $dev 0x17 SET_POWER 0x0 hda-verb $dev 0x1a SET_POWER 0x0 hda-verb $dev 0x03 0x300 0xa055 hda-verb $dev 0x03 0x300 0x9055 hda-verb $dev 0x17 0x300 0xb000 hda-verb $dev 0x17 0x707 0x40 hda-verb $dev 0x1a 0x707 0x25 

Si nécessaire, toutes ces étapes peuvent également être effectuées sans hda-verb, en utilisant uniquement python, mais cela rendrait le code beaucoup moins propre.