Du bist nicht angemeldet.

#1 09.04.2021 16:10:03

ixolius
Mitglied

Kopfhöreranschluss wird beim Start gemutet + Geisterhafte Datei

Vor einer Weile war mir mein Rechner wegen einer fehlerhaften Systemkonfiguration (mittlerweile behoben) abgeschmiert und ich hatte aus Reflex erst einmal das BIOS aktualisiert. Damit sind mir alle BIOS-Einstellungen verloren gegangen und ich musste neu konfigurieren, unter anderem das Verhalten der Soundkarte. Seitdem ist mein Kopfhöreranschluss bei start automatisch gemutet und auf 0 gesetzt, egal wie die Einstellungen der letzten Sitzung waren.

Ich habe mich mal im Wiki umgeschaut, und bin im Englischen Wiki fündig geworden. Dummerweise funktioniert keine der beiden Methoden. Die zweite (alsa-state) funktioniert nicht, wen ich alsactl deamon nach dem Login ausführe, der Service wird bei einem Neustart nicht aktiviert (Condition not met). Die erste (alsa-restore) ist noch merkwürdiger:

ixoliuspc(pts/0)@15:55:~$ alsactl store                                                                                                                                                                                                                                  [17]
alsactl: state_lock:125: file /var/lib/alsa/asound.state lock error: File exists
ixoliuspc(pts/0)@15:57:~$ rm /var/lib/alsa/asound.state                                                                                                                                                                                                          [1]
rm: das Entfernen von '/var/lib/alsa/asound.state' ist nicht möglich: Datei oder Verzeichnis nicht gefunden

Irgendeine geisterhafte Datei blockiert das Speichern der Einstellungen! Ich habe mal mit lslocks nachgeschaut und auch nichts gefunden.

Ich habe auch versucht eine systemd.user-Unit zu schreiben:

[Unit]
Description=Service to Activate Headphone Output

[Service]
Type=oneshot
RemainAfterExit=yes
ExecPre=/usr/bin/bash -xc 'amixer -c 2 sset Headphone 100% unmute && exit 1 || exit 0'
ExecStart=/usr/bin/amixer -c 1 sset Headphone 100% unmute

[Install]
WantedBy=default.target

Da meine Standard-Soundkarte je nach Laune mal die 1 und mal die 2 sein kann, ist sie etwas komplexer. Starte ich die Unit manuell habe ich den gewünschten Effekt, enable ich sie, hat es beim Start allerdings keine Auswirkungen, die Kopfhörer bleiben stumm.

Meine Fragen, von denen die Beantwortung einer mein Problem wahrscheinlich bereits löst:
-Wann muss man den alsactl daemon starten, damit der Mechanismus mit dem systemd-service alsa.state funktionniert?
-Was mache ich mit dieser merkwürdigen Datei, bekomme ich alsactl store irgendwie noch zum Laufen
-Kann ich irgend ein RequiredBy/After/... in mein Unit-File schreiben, damit es nach dem Anmelden korrekt ausgeführt wird?

Ich versuche, diesmal ein bisschen schneller mit dem Antworten zu sein, als bei meiner letzten Frage....

Offline

#2 09.04.2021 16:54:27

ixolius
Mitglied

Re: Kopfhöreranschluss wird beim Start gemutet + Geisterhafte Datei

Zur 3. Frage: etwas stimmt mit meinem Unit-File nicht, aber ich bin mir nicht sicher was genau.
Da ich in den man-pages gelesen habe, dass systemd Anführungszeichen entfernt, und ExecPre nicht existiert, habe ich die Zeile so geändert:

ExecStartPre=/usr/bin/bash -xc \'/usr/bin/amixer -c 2 sset Headphone 100% unmute && exit 1 || exit 0\'

Funktioniert immer noch nicht, systemctl --user status gibt mir folgende Antwort:

● headphoneActivator.service - Service to Activate Headphone Output
     Loaded: loaded (/home/ixolius/.config/systemd/user/headphoneActivator.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Fri 2021-04-09 16:45:38 CEST; 43s ago
    Process: 628 ExecStartPre=/usr/bin/bash -xc '/usr/bin/amixer -c 2 sset Headphone 100% unmute && exit 1 || exit 0' (code=exited, status=2)

Apr 09 16:45:38 ixoliuspc systemd[619]: Starting Service to Activate Headphone Output...
Apr 09 16:45:38 ixoliuspc bash[628]: -c: Zeile 1: Dateiende beim Suchen nach »'« erreicht.
Apr 09 16:45:38 ixoliuspc bash[628]: -c: Zeile 2: Syntaxfehler: Unerwartetes Dateiende.
Apr 09 16:45:38 ixoliuspc systemd[619]: headphoneActivator.service: Control process exited, code=exited, status=2/INVALIDARGUMENT
Apr 09 16:45:38 ixoliuspc systemd[619]: headphoneActivator.service: Failed with result 'exit-code'.
Apr 09 16:45:38 ixoliuspc systemd[619]: Failed to start Service to Activate Headphone Output.

Kann mir jemand sagen, wie ich diese bash-Fehler vermeiden kann?

Offline

#3 09.04.2021 17:22:01

tuxnix
Mitglied

Re: Kopfhöreranschluss wird beim Start gemutet + Geisterhafte Datei

Über alsa weiß ich wendig, deshalb nur soviel: Die Einstellungen müssen als root vorgenommen werden wenn sie einen Neustart überleben sollen.

Offline

#4 09.04.2021 18:12:28

ixolius
Mitglied

Re: Kopfhöreranschluss wird beim Start gemutet + Geisterhafte Datei

Ich habe das Unit-File jetzt soweit geändert, dass es funktioniert, nicht maskierte Gänsefüßchen funktionieren.
Auch den Hinweis von tuxnix habe ich bachtet und siehe da: Der alsa-resore.service ist aktiv!

Das Problem: Ich habe trotzdem nach dem Einloggen keinen Ton und muss die Kopfhörer manuell unmuten. Es scheint, als würde irgendetwas sie wieder deaktivieren. Was könnte das sein?

Offline

#5 09.04.2021 18:22:45

tuxnix
Mitglied

Re: Kopfhöreranschluss wird beim Start gemutet + Geisterhafte Datei

Zu 3 - Du kannst den Befehl auch erst einmal auf der Konsole testen. Weshalb hier exit 0 || exit 1 steht übersteigt meine Kenntnisse.
Lass mal alles nach 'unmute' weg. Vielleicht macht nur das falsche exit die Fehlermeldung.

Ich würde wenn, dann schräge Anführungszeichen hier einsetzen.  ` so etwas. Mit Taste [GROß]+[Die Taste links neben Backspace]
Die nehme ich gerne in Skripten damit etwas als Einheit erkannt wird.

Zu 4 - dbus könnte da noch mit im Spiel sein. Gibt es denn auch eine GUI Anwendung die automatisch startet? Die GUI allein könnte aber hier schon genügen.

Eventuell, wenn es in der GUI nicht die Einstellung bzw. die Konfigurationsdatei gibt die das macht, dann kannst du auch einen eigenen Service schreiben der mit dbus nach 10s Laufzeit auf unmute stellt.
https://wiki.archlinux.de/title/Qdbus

Und wenn es dann klappt, denke daran die Dateien nochmal mit z.B anderer Dateiendung zu sichern. Nicht, dass das nächste Update alles wieder überschreibt.

Edit: 3x

Beitrag geändert von tuxnix (09.04.2021 19:38:29)

Offline

Schnellantwort auf dieses Thema

Schreibe deinen Beitrag und versende ihn
Deine Antwort

Fußzeile des Forums