Follow-up von: Wie bringe ich den Subwoofer meines Lenovo Y50 unter Linux zum Laufen?
Um es kurz zu machen, ich habe ein Lenovo Y50 mit integriertem Subwoofer, das unter Linux Mint nur funktioniert, wenn ich mit HDA Analyzer einige Einstellungen an zwei Pins vorgenommen habe. Die gleiche Lösung funktioniert nicht mit Fedora und anderen Distributionen. Weitere Infos im obigen Link.
Ich hatte etwas Zeit, um etwas genauer nachzuforschen, und bemerkte, dass es Unterschiede in den Text-Dump-Registerkarten von HDA Analyzer gibt, die mir für jeden Pin und für jede Distribution angezeigt werden (Linux Mint links, Fedora rechts):
Ich habe gelernt, dass D0 den vollen Leistungszustand und D3 den niedrigen Leistungszustand bedeutet. Ich habe nachgeforscht, wie ich die Stromsparfunktion meiner Audiokarte vollständig deaktivieren kann. Daher habe ich unter Fedora Folgendes versucht, das Terminal eingegeben und vor und nach dem Neustart getestet, aber mein Problem wurde dadurch nicht gelöst:
echo 0 > /sys/module/snd_hda_intel/parameters/power_save
echo N > /sys/module/snd_hda_intel/parameters/power_save_controller
Ich habe auch versucht , unter Linux Mint den Energiesparmodus zu aktivieren. Der Subwoofer wurde vor dem Neustart deaktiviert (und war nach dem Neustart immer noch deaktiviert).
Ich würde gerne wissen, ob jemand andere Ideen hat, wie man den Stromstatus dieser beiden Pins (0x17 und 0x1a) weiter von D3 auf D0 umschalten kann, damit mein Subwoofer-Ausgang klingt. Vielen Dank!
EDIT: Hier ist eine Lösung, die auf einem Python-Skript basiert, das ich hier erstellt habe . Ignorieren Sie nicht die Antworten unten, die geholfen haben (nochmals vielen Dank!).
quelle
Mit Hilfe
debianuser
des #alsa IRC-Kanals auf freenode hätte ich uns vielleicht ein bisschen näher gebracht. Es scheint, dass die Energiezustände mit dem Tool hda_verb festgelegt werden können, das Teil von alsa-tools ist. Es scheint jedoch keine Option zu gebenpower_save_controller
, die nur spezifisch gesteuert werden kannpower state
. Sie können Informationen darüber erhalten, wasparameters
durch Ausführen festgelegt werden kannhda-verb -L
Beispiel für das Abrufen des Energiezustands eines Geräts:
Beispiel für das Einstellen des Energiezustands eines Geräts:
Im Einzelnen müssen Sie also Folgendes ausführen:
Beachten Sie, dass dies nicht funktioniert, während HDA Analyzer ausgeführt wird. Sie können es jedoch später starten, um zu überprüfen, ob die Änderung erfolgreich war. In meinem Fall wurde es in D0 geändert.
Ich frage mich, ob das Ihr Problem löst.
Wie gesagt, ich habe denselben Computer, obwohl ich nicht ganz sicher bin, ob mein Subwoofer tatsächlich ausgeschaltet ist, da ich keinen großen Unterschied zu einer Beispielsounddatei höre, die ich bei der Wiedergabe in Windows oder Archlinux erstellt habe. Vielleicht ist die Frequenz (65 Hz) zu hoch? Falls jemand anderes es testen möchte:
http://miyalys.eu.org/files/65hzsine.wav
Vielleicht können wir eine Möglichkeit finden, die normalen Lautsprecher zu deaktivieren, sodass nur der Subwoofer eingeschaltet ist?
Bearbeiten: Mit Hilfe der Antwort von leneb habe ich dieses Skript erstellt, das als root ausgeführt werden muss und all diese Dinge nur mit hda-verb ausführt. Ich bin mir jedoch nicht sicher, ob der Lautstärkepegel völlig normal ist. (Rückmeldung erwünscht) Und das Problem mit eingesteckten Kopfhörern, die den Subwoofer nicht ausschalten, bleibt bestehen.
Wenn nötig, können alle diese Schritte auch ohne hda-verb ausgeführt werden, nur mit Python, aber dies würde den Code viel weniger sauber machen.
quelle