hdajackretask ist ein Tool, mit dem Sie die Funktion Ihrer Buchsen für verschiedene Eingänge, Ausgänge oder Deaktivierungen neu zuweisen können. Verwandeln Sie z. B. Ihre Mikrofonbuchse in einen zusätzlichen Kopfhörer oder verwenden Sie beide Line-Outs, um sie mit Ihrem Surround-Receiver zu verbinden.
Installieren Sie alsa-tools-gui
sudo apt-get update
sudo apt-get install alsa-tools-gui
Führen Sie hdajackretask
dann einen der Buchsen außer Kraft zu setzen:
- Wählen Sie einen Codec aus
- Aktivieren Sie das Kontrollkästchen "Override" für diesen Pin und wählen Sie die neue gewünschte Funktion aus
- Klicken Sie auf "Jetzt anwenden".
Hinweis: Wenn die Kopfhörerbuchse über einen integrierten Hardware-Schalter verfügt, der das Audio umleitet, sind Sie SOL (Entschuldigung, leider kein Glück). Wenn das Betriebssystem jedoch erkennt, dass eine Leitung an der Kopfhörerbuchse angeschlossen ist, wird der Ton höchstwahrscheinlich nicht mechanisch umgeschaltet.
Ich fand, dass es am besten ist, Kopfhörer und Lautsprecher gleichzeitig außer Kraft zu setzen.
hdajackretask Screenshot zum Umschalten des Kopfhörers auf Lautsprecher:
Nachdem Sie auf "Jetzt anwenden" geklickt haben, wird ein Shell-Skript erstellt, das die Änderungen vornimmt und zur Ausführung des Superuser-Kennworts auffordert. Das Skript wird auch gespeichert, in /tmp
das kopiert und später mit sudo über die Befehlszeile ausgeführt werden kann.
Befehlszeilenausführung
Wie bereits erwähnt, hdajackretask
erstellt ein Skript, script.sh
in /tmp
ähnlich wie /tmp/hda-jack-retask-QW1EEZ/
für die Buchse Funktionen , die Sie sich wünschen:
#!/bin/sh
echo "0x12 0x90a60140" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x14 0x90170150" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x17 0x40000000" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x18 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x19 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x1a 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x1b 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x1d 0x40700001" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x1e 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x21 0x40f000f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo 1 | tee /sys/class/sound/hwC0D0/reconfig 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
Kopieren Sie dieses Skript an eine andere Stelle auf Ihrem System (außer / tmp).
cd /tmp/hda-jack-retask-QW1EEZ
cp script.sh ~username/speaker.sh
Dann editiere speaker.sh
cd ~username
nano speaker.sh
Fügen Sie die Zeile killall pulseaudio &
oben in die Datei ein. Dies ist erforderlich, da die Buchsenfunktion bei pulseaudio
laufendem Betrieb nicht geändert werden kann . Standardmäßig pulseaudio
wird respawnen. Ändern Sie auch den errors.log
Dateipfad nach /tmp
oder wo immer Sie möchten:
#!/bin/sh
killall pulseaudio &
echo "0x12 0x90a60140" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x14 0x90170150" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x17 0x40000000" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x18 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x19 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x1a 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x1b 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x1d 0x40700001" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x1e 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x21 0x40f000f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo 1 | tee /sys/class/sound/hwC0D0/reconfig 2>>/tmp/errors.log
So führen Sie das Skript aus:
sudo ./speaker.sh
Aus der alsa-tools-1.1.5 / hdajackretask / README- Dokumentation:
Dokumentation für hdajackretask
Die meisten HDA-Intel-Soundkarten können bis zu einem gewissen Grad für mehrere Aufgaben verwendet werden. Dieses Tool ist eine grafische Benutzeroberfläche, mit der Sie Ihre Buchsen auf einfache Weise neu zuweisen können. Verwandeln Sie z. B. Ihre Mikrofonbuchse in einen zusätzlichen Kopfhörer, oder verwenden Sie beide Line-Outs, um sie an Ihren Surround-Receiver anzuschließen.
Schnellstart
Starten Sie die Anwendung "hdajackretask" über die Befehlszeile. Wählen Sie in der oberen Leiste einen Codec aus. Manche Leute haben nur einen - wenn Sie mehr als einen haben, ist einer der "wichtigste" und der Rest sind wahrscheinlich HDMI-Codecs.
Alle Buchsen (und andere Ein- / Ausgänge) werden unter "Pin-Konfiguration" angezeigt. Um eine Ihrer Buchsen zu überschreiben, aktivieren Sie das Kontrollkästchen "Override" für diesen Pin und wählen Sie die gewünschte Funktion aus. Hinweis: Wenn Sie eine Überschreibung für "Line out (back)" auswählen, sollte auch eine Überschreibung für "Line out (front)" vorhanden sein. Ein "Line out (Center / LFE)" - Override funktioniert nur mit den beiden vorherigen Overrides und so weiter.
Sie können Ihre neue Konfiguration ausprobieren, indem Sie auf "Jetzt anwenden" klicken. Klicken Sie auf "Boot-Override installieren", um die neue Konfiguration als Standard-Startkonfiguration festzulegen. Für diese Aktionen sind Root-Berechtigungen erforderlich, sodass Sie wahrscheinlich nach Ihrem Kennwort gefragt werden.
Quickend
Hast du es vermasselt? Klicken Sie auf die Schaltfläche "Boot Override entfernen". Fahren Sie nach Abschluss des Vorgangs den Computer herunter, warten Sie eine Weile und schalten Sie ihn wieder ein. Sie sollten jetzt wieder da sein, wo Sie angefangen haben.
Hat es funktioniert?
Wenn ja, sei glücklich, teile deine Freude, tue etwas Nettes!
Wenn dies nicht der Fall ist, versuchen Sie Folgendes:
Rufen Sie alsamixer auf und prüfen Sie, ob neue Lautstärkeregler vorhanden sind. Prüfen Sie, ob diese nicht stummgeschaltet und auf einen angemessenen Wert eingestellt sind.
Manchmal schaltet der Treiber nicht verbundene Pins nicht aus (wenn sie nicht verbunden sind, warum dann?). Möglicherweise können Sie dieses Problem beheben, indem Sie Ihren Computer für eine Weile ganz ausschalten.
Siehe die unten stehende Option "model = auto"
Wenn dies nicht hilft, sind die Chancen hoch, dass Sie entweder auf einen Treiber oder auf eine Hardware-Einschränkung stoßen. Sie könnten auf Treiberfehler stoßen (vielleicht hat noch niemand vier Kopfhörer getestet!). Wenn Sie dies dennoch tun, können Sie diese auf der alsa-devel-Mailingliste melden. Aufgrund des Mangels an Arbeitskräften ist die Wahrscheinlichkeit jedoch sehr gering, dass dies mit einer sehr geringen Priorität behandelt wird (bei einer Standardkonfiguration funktioniert der Sound sofort) wichtiger als die Unterstützung seltsamer Konfigurationen). Wenn Sie jedoch ein Kernel-Hacker sind und einen Patch entwickeln, der Ihr Problem löst, ohne etwas anderes zu vermasseln, ist die Wahrscheinlichkeit hoch, dass er zusammengeführt wird.
Wenn Sie den Verdacht haben, dass das Problem mit dieser GUI-Anwendung und nicht mit dem Kerneltreiber zusammenhängt, schreiben Sie mir bitte eine E-Mail (und wenn Sie möchten, fügen Sie einen Patch bei!). Wenn ja, schreiben Sie an diwic@ubuntu.com.
Optionen
Nicht verbundene Pins anzeigen Ihr BIOS ist dafür verantwortlich, festzulegen, welche Pins des Codecs tatsächlich mit etwas verbunden sind und welche nicht. Manchmal ist das BIOS fehlerhaft und zeigt nicht alle Ihre Buchsen an. Wenn Sie eine Buchse haben, von der Ihr BIOS sagt, dass Sie diese nicht hat, können Sie versuchen, zufällige Pins zu aktivieren und zu prüfen, ob sie funktioniert.
Set Model = auto Einige Codecs, insbesondere ältere und Kernel 3.8 und niedriger, sind für die Verwendung eines bestimmten Modells fest codiert und kümmern sich daher nicht um Ihre Außerkraftsetzungen. In vielen Fällen und mit einem einigermaßen neuen Kernel funktioniert der Auto-Parser nun auch für diese Codecs. Sie können die Verwendung des Auto-Parsers erzwingen, indem Sie dieses Kontrollkästchen aktivieren. In einigen Fällen ist das explizite Modell jedoch aus einem bestimmten Grund vorhanden. In diesem Fall stecken Sie fest.
Erweiterte Außerkraftsetzung Dies ist nur für Experten. Sie können jedes Konfigurationsfeld einzeln auswählen, anstatt nur einige vordefinierte Werte, die sinnvoll sind. Beachten Sie, dass die meisten Kombinationen hier auf die eine oder andere Weise ungültig sind. Sie sollten sich also wahrscheinlich nicht damit anlegen, es sei denn, Sie haben den Abschnitt "Configuration Default" der HD Audio-Spezifikation gelesen und verstanden. (Die zum Zeitpunkt dieses Schreibens hier verfügbar sind:
http://www.intel.com/content/dam/www/public/us/en/documents/product-specifications/high-definition-audio-specification. pdf )
Parser-Hinweise Hiermit können Sie spezielle "Hinweise" an den Treiber senden, die dazu führen, dass sich das Parsing anders verhält. Behalten Sie die Standardeinstellung bei, es sei denn, Sie haben die Treiberdokumentation gelesen. (Diese finden Sie zum Zeitpunkt des Schreibens hier: https://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt - siehe Abschnitt "Hinweiszeichenfolgen".)