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....