[gelöst] nach Suspend kein Sound - (eingebaute) Lautsprecher unavailable - (nicht vorhandener) Kopfhörer plugged in

Sound, Digitalkameras, TV+Video und Spiele.
Antworten
snowy
Beiträge: 125
Registriert: 12.12.2017 22:32:52

[gelöst] nach Suspend kein Sound - (eingebaute) Lautsprecher unavailable - (nicht vorhandener) Kopfhörer plugged in

Beitrag von snowy » 12.04.2018 23:27:36

Laptop mit interner Soundkarte, eingebaute Lautsprecher
Erstinstallation von Debian 9
keine weitere Software installiert, sofort nach Installation beginnt das Problem

Sound funktioniert reibungslos bis man das System in Suspend-to-RAM schickt,
Nach dem Aufwecken geht kein Sound mehr
Pavucontrol meint nach dem Aufwecken, daß die Lautsprecher unavailable sind, dafür der Kopfhörer plugged-in ist
nach einem Reboot ist der Sound wieder da, pavucontrol findet die Lautsprecher wieder und kein Kopfhörer
nach dem nächsten Suspend sind die Lautsprecher wieder weg und ein unsichtbarer Kopfhörer eingesteckt :evil:

Ratlos :roll:
wie kommt man dem Problem auf die Spur ?
Zuletzt geändert von snowy am 15.04.2018 23:55:42, insgesamt 1-mal geändert.

pferdefreund
Beiträge: 3791
Registriert: 26.02.2009 14:35:56

Re: nach Suspend kein Sound - (eingebaute) Lautsprecher unavailable - (nicht vorhandener) Kopfhörer plugged in

Beitrag von pferdefreund » 13.04.2018 09:15:54

Eventuell mal in den Stromspar-Einstellungen im Bios nachschauen, ob da was Richtung Sound ist. Ansonsten, soweit mir bekannt, kann man für den Wakeup aus dem Suspend auch Scripte laufen lassen. Hier mal einfach den Soundtreiber per rmmod entladen und mit modprobe wieder neu laden. Eventuell hilft das ja schon.

snowy
Beiträge: 125
Registriert: 12.12.2017 22:32:52

Re: nach Suspend kein Sound - (eingebaute) Lautsprecher unavailable - (nicht vorhandener) Kopfhörer plugged in

Beitrag von snowy » 13.04.2018 11:21:40

pferdefreund hat geschrieben: ↑ zum Beitrag ↑
13.04.2018 09:15:54
Eventuell mal in den Stromspar-Einstellungen im Bios nachschauen, ob da was Richtung Sound ist.
werde ich tun, aber Windows hatte bisher keine Sound-Probleme nach dem Aufwachen :oops:
ich will aber Windows los werden :P
pferdefreund hat geschrieben: ↑ zum Beitrag ↑
13.04.2018 09:15:54
mal einfach den Soundtreiber per rmmod entladen und mit modprobe wieder neu laden. Eventuell hilft das ja schon.
bevor ich jetzt suche, wo an welche Stelle ich so ein Skript einbinden müßte, könnte ich ja die Befehle mal in einem Terminal absetzen und schauen ob es überhaupt hilft.
Aber was genau müßte ich mit rmmod und modprobe machen ??? :roll: Bin in Linux noch nicht so richtig fit :oops:

Benutzeravatar
smutbert
Moderator
Beiträge: 8313
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: nach Suspend kein Sound - (eingebaute) Lautsprecher unavailable - (nicht vorhandener) Kopfhörer plugged in

Beitrag von smutbert » 13.04.2018 11:49:53

Der erste Schritt wäre festzustellen welche Audiomodule geladen sind. Das sagt dir der Befehl

Code: Alles auswählen

# lsmod | grep "^snd"

snowy
Beiträge: 125
Registriert: 12.12.2017 22:32:52

Re: nach Suspend kein Sound - (eingebaute) Lautsprecher unavailable - (nicht vorhandener) Kopfhörer plugged in

Beitrag von snowy » 13.04.2018 21:51:22

AlsaMixer v1.1.3 erkennt ein
Gerät: HDA Intel PCH
Chip: Realtek ALC269VB

lsmod-Ausgabe

Code: Alles auswählen

snd_hda_codec_hdmi     49152  1
snd_hda_codec_realtek    90112  1
snd_hda_codec_generic    69632  1 snd_hda_codec_realtek
snd_hda_intel          36864  6
snd_hda_codec         135168  4 snd_hda_intel,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek
snd_hda_core           86016  5 snd_hda_intel,snd_hda_codec,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek
snd_hwdep              16384  1 snd_hda_codec
snd_pcm               110592  6 snd_hda_intel,snd_hda_codec,snd_hda_core,snd_hda_codec_hdmi
snd_timer              32768  1 snd_pcm
snd                    86016  18 snd_hda_intel,snd_hwdep,snd_hda_codec,snd_timer,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek,snd_pcm

Benutzeravatar
smutbert
Moderator
Beiträge: 8313
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: nach Suspend kein Sound - (eingebaute) Lautsprecher unavailable - (nicht vorhandener) Kopfhörer plugged in

Beitrag von smutbert » 13.04.2018 23:12:04

Das sind dieselben wie bei mir – die ersten 4 bis 5 der Liste würdest du denke ich entladen müssen
Habe es gerade bei mir ausprobiert und wegen der Abhängigkeiten untereinander nicht geschafft auch nur eines der Module geordnet zu entladen (erzwungenes entladen habe ich nicht versucht).

Wenn Pferdefreund nicht noch eine Idee für das Entladen der Module hat, würde ich glatt versuchen ob es nicht möglicherweise eine einfachere Lösung gibt.

Ändert sich zum Beispiel etwas, wenn du nach dem Aufwachen mit

Code: Alles auswählen

$ pulseaudio -k
Pulseaudio beendest, woraufhin es sich automatisch neu starten sollte?

snowy
Beiträge: 125
Registriert: 12.12.2017 22:32:52

Re: nach Suspend kein Sound - (eingebaute) Lautsprecher unavailable - (nicht vorhandener) Kopfhörer plugged in

Beitrag von snowy » 13.04.2018 23:51:43

Der Restart von pulseaudio hat genau einmal eine Änderung bewirkt.
Daraufhin war der unsichtbare Kopfhörer weg, Lautspecher angeblich wieder angeschlossen, aber der Ton weiterhin nicht zu hören.
Erst ein Reboot hat den Ton wieder hervor gezaubert. Danach verändert ein Restart von pulseaudio überhaupt nichts mehr :roll:

nach einem Suspend bleibt der Ton weg und ein unsichtbarer Kopfhörer ist angeblich eingesteckt

snowy
Beiträge: 125
Registriert: 12.12.2017 22:32:52

Re: nach Suspend kein Sound - (eingebaute) Lautsprecher unavailable - (nicht vorhandener) Kopfhörer plugged in

Beitrag von snowy » 14.04.2018 10:06:25

bin bei der :google: Suche auf einen Hinweis gestossen:

Code: Alles auswählen

alsactl init
Wenn ich diesen ausführe, kommen zwei Fehlermeldungen

Code: Alles auswählen

asus:~$ /usr/sbin/alsactl init
Found hardware: "HDA-Intel" "Realtek ALC269VB" "HDA:10ec0269,104313c7,00100100 HDA:80862805,80860101,00100000" "0x1043" "0x13c7"
Hardware is initialized using a generic method
/usr/share/alsa/init/default:263: value write error: Input/output error
/usr/share/alsa/init/default:263: value write error: Input/output error
ich verstehe die dabei genannte Datei NoPaste-Eintrag40263 leider nicht :oops:
Aber vielleicht kapiert ja jemand anders den Inhalt und es entwickelt sich daraus eine neue Idee :roll:

Benutzeravatar
smutbert
Moderator
Beiträge: 8313
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: nach Suspend kein Sound - (eingebaute) Lautsprecher unavailable - (nicht vorhandener) Kopfhörer plugged in

Beitrag von smutbert » 14.04.2018 10:59:36

alsactl init stellt die Lautstärkeregler und Schalter des Mixers auf (soweit ich weiß hardwareunabhängige) Standardwerte, die in der Datei »/usr/share/alsa/init/default« hinterlegt sind. Im Fehler steht etwas von Zeile 263 und in dieser Zeile geht es offensichtlich um den Wert von "Capture Volume" also den Wert eines Aufnahmereglers.

Ich würde also vermuten, dass der Fehler harmlos ist und nichts mit dem Suspend-Problem zu tun hat.


Mich stört weniger, dass Pulseaudio zu den Kopfhörern umschaltet - ähnliche Bugs gab es in Pulseaudio bereits in früheren Versionen, sondern viel mehr, dass Pulseaudio meint die Lautsprecher wären nicht verfügbar. Und das ändert sich nun auch mit einem Neustart von Pulseaudio nicht mehr?

Dann klingt das nämlich weniger nach einem Problem von Pulseaudio sondern von Kernel/Treibern. Mach vielleicht noch einen anderen Test:
Leg – egal ob vor oder nach dem Suspend – einen neuen Benutzer an und melde dich nach dem Aufwachen aus dem Suspend als dieser Benutzer an. Besteht unter diesem Benutzer das Problem ebenfalls?

snowy
Beiträge: 125
Registriert: 12.12.2017 22:32:52

Re: nach Suspend kein Sound - (eingebaute) Lautsprecher unavailable - (nicht vorhandener) Kopfhörer plugged in

Beitrag von snowy » 14.04.2018 12:10:18

smutbert hat geschrieben: ↑ zum Beitrag ↑
14.04.2018 10:59:36
Dann klingt das nämlich weniger nach einem Problem von Pulseaudio sondern von Kernel/Treibern. Mach vielleicht noch einen anderen Test:
Leg – egal ob vor oder nach dem Suspend – einen neuen Benutzer an und melde dich nach dem Aufwachen aus dem Suspend als dieser Benutzer an. Besteht unter diesem Benutzer das Problem ebenfalls?
okay, ausprobiert, der neue Benutzer hat auch keinen Sound

Benutzeravatar
smutbert
Moderator
Beiträge: 8313
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: nach Suspend kein Sound - (eingebaute) Lautsprecher unavailable - (nicht vorhandener) Kopfhörer plugged in

Beitrag von smutbert » 14.04.2018 13:37:52

Verflixt, ich fürchte dann wäre tatsächlich Audiomodule vor dem suspend ent- und beim Aufwachen wieder laden ein geeigneter Ansatz. Ich hab aber wie gesagt momentan keine Idee wie man das sauber machen könnte.

Was mir sonst noch einfällt:

Ausprobieren ob die Moduloption power_save_controller eventuell für einen Reset des Audiocontrollers beim Suspend sorgt und so die Probleme beseitigt. Dazu legst du eine beliebige .conf-Datei in »/etc/modprobe.d«, zum Beispiel »/etc/modprobe.d/snd-powersave.conf« an und schreibst dort

Code: Alles auswählen

options snd_hda_intel power_save_controller=1
hinein. Sicherheitshalber führst du danach noch

Code: Alles auswählen

# update-initramfs -u
aus, damit die Änderungen auch in der initrd landen und startest neu. Ändert sich dann etwas am Verhalten?


und wenn das auch nichts hilft dieser Ansatz
https://www.reddit.com/r/archlinux/comm ... estarting/
und zwar die Antwort von ropid. Also einfach einmal

Code: Alles auswählen

$ lspci -bD
ausführen, dort sollte dann ein Intel HD Audio Controller auftauchen und mit der Adresse am Anfang der Zeile sollte man dann dieses Gerät aus dem System sozusagen entfernen und dann wieder neu erkennen können.
Am besten probierst du einfach einmal nach einem Suspend aus, ob das den gewünschten Effekt (und vielleicht irgendwelche unerwünschten Nebenwirkungen) hat, zum Beispiel (du musst natürlich die Adresse aus der lspci-Ausgabe verwenden)

Code: Alles auswählen

# echo 1 > "/sys/bus/pci/devices/0000:00:1b.0/remove"
# echo 1 > /sys/bus/pci/rescan

snowy
Beiträge: 125
Registriert: 12.12.2017 22:32:52

Re: nach Suspend kein Sound - (eingebaute) Lautsprecher unavailable - (nicht vorhandener) Kopfhörer plugged in

Beitrag von snowy » 15.04.2018 14:38:24

@Smutbert, Du bist genial :THX:
smutbert hat geschrieben: ↑ zum Beitrag ↑
14.04.2018 13:37:52
Ausprobieren ob die Moduloption power_save_controller eventuell für einen Reset des Audiocontrollers beim Suspend sorgt und so die Probleme beseitigt. Dazu legst du eine beliebige .conf-Datei in »/etc/modprobe.d«, zum Beispiel »/etc/modprobe.d/snd-powersave.conf« an und schreibst dort

Code: Alles auswählen

options snd_hda_intel power_save_controller=1
hinein. Sicherheitshalber führst du danach noch

Code: Alles auswählen

# update-initramfs -u
aus, damit die Änderungen auch in der initrd landen und startest neu. Ändert sich dann etwas am Verhalten?
leider keine Änderung :roll: , aber ...... :D
smutbert hat geschrieben: ↑ zum Beitrag ↑
14.04.2018 13:37:52
und wenn das auch nichts hilft dieser Ansatz
https://www.reddit.com/r/archlinux/comm ... estarting/
und zwar die Antwort von ropid. Also einfach einmal

Code: Alles auswählen

$ lspci -bD
ausführen, dort sollte dann ein Intel HD Audio Controller auftauchen und mit der Adresse am Anfang der Zeile sollte man dann dieses Gerät aus dem System sozusagen entfernen und dann wieder neu erkennen können.
Am besten probierst du einfach einmal nach einem Suspend aus, ob das den gewünschten Effekt (und vielleicht irgendwelche unerwünschten Nebenwirkungen) hat, zum Beispiel (du musst natürlich die Adresse aus der lspci-Ausgabe verwenden)

Code: Alles auswählen

# echo 1 > "/sys/bus/pci/devices/0000:00:1b.0/remove"
# echo 1 > /sys/bus/pci/rescan
genial, Ton ist wieder da :hail:

Interessanter Nebenaspekt. Der Remove+Rescan ist scheinbar nur einmalig nach einem Reboot notwendig. Alle weiteren Suspends behalten dann weiterhin die Ton-Ausgabe

Kommen wir damit nun der Problemursache auf den Grund oder nehmen wir dies als funktionsfähigen Workaround, im Sinne prophylaktisch noch einem Suspend ablaufen lassen?
Wobei sich dann hier für mich noch die Frage stellt, wie ich das wo am besten anstelle.
Im Moment habe ich die Commands immer als root ablaufen lassen, ich gehe ja mal davon aus, daß diese Commands kein anderer ausführen darf.

Benutzeravatar
smutbert
Moderator
Beiträge: 8313
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: nach Suspend kein Sound - (eingebaute) Lautsprecher unavailable - (nicht vorhandener) Kopfhörer plugged in

Beitrag von smutbert » 15.04.2018 21:29:10

Also, dass es nur einmal notwendig ist, ist interessant. Ich würde es als Workaround nehmen, solange es nicht durch ein BIOS- oder Kernel-Update überflüssig wird (ich hätte bei dem beschriebenen Verhalten vor allem das BIOS in Verdacht, liege aber möglicherweise komplett falsch).

Ja, root ist notwendig und einbauen ließen sich die Befehle zum Beispiel in eine systemd-Unit, aber ich bin mir ein bisschen unsicher wie man das am geschicktesten macht. Denn im Link wird zwischen den beiden Befehlen eine Sekunde gewartet – ich nehme an es muss keine Sekunde sein, könnte mir aber schon vorstellen, dass eine kurze Wartezeit bis zum PCI-rescan wichtig ist.
Eventuell ließe sich das mit einer systemd.timer-Unit oder komplett anderes eleganter lösen, aber ich würde mangels besseren Wissens einfach ein kurzes Shellskript »/usr/local/bin/sound-workaround« mit dem Inhalt

Code: Alles auswählen

#!/bin/sh

/bin/echo 1 > "/sys/bus/pci/devices/0000:00:1b.0/remove"
/bin/sleep 0.5
/bin/echo 1 > /sys/bus/pci/rescan
schreiben, ausführbar machen

Code: Alles auswählen

# chmod +x /usr/local/bin/sound-workaround
und mit einer systemd-unit »/etc/systemd/system/sound-workaround.service«

Code: Alles auswählen

[Unit]
Description=Reset Onboardsound to work around suspend Bug
ConditionFileExecutable=/usr/local/bin/sound-workaround

[Service]
Type=oneshot
ExecStart=/usr/local/bin/sound-workaround

[Install]
After=sound.target
WantedBy=multi-user.target
die du mit

Code: Alles auswählen

# systemctl enable sound-workaround.service
für zukünftige Systemstarts aktivieren kannst.
Zuletzt geändert von smutbert am 15.04.2018 22:52:37, insgesamt 1-mal geändert.

snowy
Beiträge: 125
Registriert: 12.12.2017 22:32:52

Re: nach Suspend kein Sound - (eingebaute) Lautsprecher unavailable - (nicht vorhandener) Kopfhörer plugged in

Beitrag von snowy » 15.04.2018 22:46:36

wenn man einen kleinen Schreibfehler korrigiert, wird es auch gestartet :D

Code: Alles auswählen

mit einer systemd-unit »/etc/systemd/systemd/sound-workaround.service« 
3.Unterorder heißt nur system (ohne d)

Leider funktioniert diese Art des Workarounds nicht, denn meine Tests waren unvollständig. Die Befehle nützen nichts, wenn man sie direkt nach dem Booten ausführt.
Sie müssen nach einem ersten Suspend ausgeführt werden. Nach weiteren Suspends sind sie nicht mehr nötig, aber wohl auch nicht schädlich.

Kann man eine systemd-Unit auch in Abhängigkeit von einem Suspend (genauer nach/während einem Resume) starten.
Ich habe einen Hinweis darauf gefunden, aber nicht wirklich verstanden :oops:
https://unix.stackexchange.com/question ... -suspend-t

Benutzeravatar
smutbert
Moderator
Beiträge: 8313
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: nach Suspend kein Sound - (eingebaute) Lautsprecher unavailable - (nicht vorhandener) Kopfhörer plugged in

Beitrag von smutbert » 15.04.2018 23:06:03

Entschuldige den Tippfehler (und das obwohl ich mir die Pfadangaben 3 Mal durchgelesen habe bevor ich den Beitrag abgeschickt habe).

Immerhin wird es dadurch einfacher. Die systemd-Unit kannst du wieder deaktivieren und löschen und stattdessen das Skript leicht modifizieren und nach »/lib/systemd/system-sleep/« verschieben (ich frage mich gerade ob auch ein selbst erstelltes Verzeichnis »/etc/systemd/system-sleep/« funktionieren würde – eleganter wäre es unter /etc/...).
Skripte in diesem Verzeichnis werden beim suspend und resume aufgerufen und zwar beim Aufwachen mit der Option resume oder thaw, also könnte die Anpassung so aussehen (resume ist Aufwachen von Suspend2ram und thaw ist „auftauen“ von Suspend2disk)

Code: Alles auswählen

#!/bin/bash

case "${1}" in
	post)
		/bin/echo 1 > "/sys/bus/pci/devices/0000:00:1b.0/remove"
		/bin/sleep 0.5
		/bin/echo 1 > /sys/bus/pci/rescan
		;;
esac
edit:
Habe gerade wo gesehen, dass jetzt laut manpage statt "resume|thaw" "post" für das Aufwachen benutzt wird. Habe es ausgebessert und hoffe es stimmt...

snowy
Beiträge: 125
Registriert: 12.12.2017 22:32:52

Re: nach Suspend kein Sound - (eingebaute) Lautsprecher unavailable - (nicht vorhandener) Kopfhörer plugged in

Beitrag von snowy » 15.04.2018 23:54:59

nach »/lib/systemd/system-sleep/« verschieben (ich frage mich gerade ob auch ein selbst erstelltes Verzeichnis »/etc/systemd/system-sleep/« funktionieren würde – eleganter wäre es unter /etc/...).
super :THX:
unter /lib/systemd/system-sleep funktioniert es bisher prima :D
ich glaube mit diesem Workaround kann ich prima leben und der letzte Windows-Rechner scheint endgültig auf Linux umgestellt :mrgreen:

unter »/etc/systemd/system-sleep/« wird das Skript leider gar nicht aufgerufen

@smutberd vielen herzlichen Dank für die tolle Unterstützung


snowy
Beiträge: 125
Registriert: 12.12.2017 22:32:52

Re: [gelöst] nach Suspend kein Sound - (eingebaute) Lautsprecher unavailable - (nicht vorhandener) Kopfhörer plugged in

Beitrag von snowy » 28.10.2018 20:39:21

Der Workaround funktioniert scheinbar nun nicht mehr --> viewtopic.php?f=25&t=171144

Antworten