Problem: Nach einem Upgrade von Ubuntu 22 zu Ubuntu 24 kam es bei einem Huawei Matebook zu einem Problem mit der Sound-Ausgabe. Es wurde kein Ton mehr abgespielt.
Lösung: Durch die Verwendung der Skripte in diesem GitHub Repository von Smoren konnte das Problem gelöst werden. Die Soundausgabe funktioniert wieder.
Hintergrund: Das eigentliche Problem besteht darin, dass die Kopfhörer- und Lautsprecherkanäle im Soundkartentreiber vertauscht sind:
- Wenn Kopfhörer angeschlossen sind, leitet das System den Ton fälschlicherweise über die Lautsprecher.
- Sind die Kopfhörer nicht angeschlossen, versucht das System, den Ton über diese auszugeben.
Die Ursache liegt in einer ungewöhnlichen Hardware-Designentscheidung, bei der bestimmte Audio-Komponenten (sogenannte Widgets) nicht wie erwartet miteinander verbunden sind. Insbesondere ignoriert der interne Lautsprecher die Verbindungsauswahl und verwendet stattdessen den Wert der Kopfhörerbuchse. Zudem muss die Kopfhörerbuchse über GPIO-Befehle aktiviert werden, während der interne Lautsprecher explizit deaktiviert werden muss.
Zur Behebung dieses Problems implementiert das Repository einen Daemon, der das Ein- und Ausstecken der Kopfhörer überwacht und die Soundkarte entsprechend konfiguriert. Das Hauptskript huawei-soundcard-headphones-monitor.sh
führt dabei folgende Schritte aus:
- Wenn die Kopfhörer nicht angeschlossen sind, wird die Audioausgabe auf die Lautsprecher umgeleitet, der Lautsprecher aktiviert und die Kopfhörer deaktiviert.
- Sind die Kopfhörer angeschlossen, wird die Ausgabe auf diese umgeleitet, der Lautsprecher deaktiviert und die Kopfhörer aktiviert.
Die Installation des Daemons erfolgt durch Ausführen des mitgelieferten install.sh
-Skripts. Anschließend kann der Dienst mit systemd-Befehlen wie systemctl status huawei-soundcard-headphones-monitor
überwacht und gesteuert werden.
Kommentare
Kommentar veröffentlichen