Hallo,
wenn "smutbert" in seiner ersten Antwort (25.11.2020 22:36:46) den Eintrag von: "bernd 2020-10-17 09:05:12 UTC (Comment 5)" unter:
https://bugzilla.kernel.org/show_bug.cgi?id=205045 meint, wovon ich ausgehe, dann habt ihr mich gefunden.
Ich kämpfe seit ca. einem Jahr mit dem gleichen Problem (kein Sound unter normalen Umständen). Laptop ist ein "Schenker Dock 15". Das verbaute Mainboard ist ein "N350TW" von "Clevo". Als Prozessor habe ich den "Intel© Core™ i9-9900T CPU @ 2.10GHz × 8". Das Betriebssystem meiner Wahl ist "Linux Mint 20 Cinnamon" mit dem LTS-Kernel 5.4.0-**-generic.
Die Idee mit dem Script stammt in seine Urform von Tuxedo (
https://deb.tuxedocomputers.com/ubuntu/ ... audio-fix/). Wenn man das installiert, erhält man unter /usr/sbin/ das Script "restore-audiocards". Es entspricht dem Inhalt, wie "LinuxFanKR13" es in seiner Antwort (29.11.2020 23:26:45) dargestellt hat. Durch die Installation des "tuxedo-restore-audio-fix" wird zusätzlich unter /lib/systemd/system/ ein restore-audiocards.service angelegt, welcher das erwähnte Script nach meinen Beobachtungen einmalig beim Bootvorgang ausführt.
Gibt es Empfehlungen, welchen Kernel ich testen sollte?
Am besten hat bei mir bisher "5.4.0-47-generic" funktioniert. Bei dieser und älteren Kernelversion (5.4.0-**-generic) steht die "sys/devices/pci0000:00/0000:00:1f.3/power/control" bereits nach dem Bootvorgang auf "auto". Alle neueren Kernelversionen setzen den Wert auf "on". Informationen, was diese Werte verursachen, findet man unter:
https://www.kernel.org/doc/Documentatio ... ices-power.
Welches Linux Live-System könnte vielleicht sinnvoll sein?
Ich persönlich würde nicht mit einem Live-System hantieren, da alle gemachten Einstellungen nicht gespeichert werden können. Welche Linux-Distribution man wählt, ist in meinen Augen "reine Geschmackssache", da alle auf den Linux-Kernel (er enthält die Treiber und Scripte für die Hardware) aufbauen. Welcher der richtige Kernel ist, findet man vermutlich nur durch Testen raus.
Oder gibt es über diesen Codec nicht ausreichend Informationen, dass die versierten Kernel-Entwickler gar keine Möglichkeit haben, diesen Baustein in Zukunft zu unterstützen?
Der "ALC892" ist nun gerade nicht "brandneu". Eine Suche im Internet fördert Einträge aus 2011 zu Tage. Und ja, auf dem "N350TW" von "Clevo" ist der "ALC892" verbaut. Das Problem auf dem "N350TW" ist vermutlich die Kombination der verschiedenen PCI-Geräte, die, oder auch nicht bzw. falsch, vorhandenen Treiber und Scripte im Kernel und die daraus resultierenden Behandlung des PCI-Buses durch Linux.
Zurück zum Script, dem geheimnisvollen Knacken und der Schleife.
Das Knacken der Lautsprecher zeigt an, dass der Soundchip in den Ruhemodus (suspend) gegangen ist. Erst dann ist ein "echo 1 > /sys/bus/pci/rescan" auf meinem Laptop erfolgreich. Deshalb die Idee mit der Schleife, was aber nur bedingt funktioniert (siehe: "bernd 2020-10-17 09:05:12 UTC (Comment 5)" unter:
https://bugzilla.kernel.org/show_bug.cgi?id=205045). Nach einem erfolgreichen "echo 1 > /sys/bus/pci/rescan" erscheint der ALC892 unter /sys/devices/pci0000:00/0000:00:1f.3/hdaudioC0D0/. Daraus nehme ich mir einen Dateinamen und baue meine Schleife, inklusive Zählwerk und Logdatei:
Code: Alles auswählen
#!/bin/sh
# erstelle eine Logdatei
echo "--/usr/sbin/restore-audiocards gestartet--" > /var/log/restore-audiocards.log
# definiere die Variable COUNTERRESCAN mit dem Wert Null
COUNTERRESCAN=0
# definiere die Variable FILEREALTEK mit dem Inhalt /sys/devices/pci0000:00/0000:00:1f.3/hdaudioC0D0/power/control
FILEREALTEK=/sys/devices/pci0000:00/0000:00:1f.3/hdaudioC0D0/power/control
# so lange die Datei mit dem Namen aus der Variable FILEREALTEK nicht existiert
until test -f "$FILEREALTEK"
# mache folgendes immer wieder
do
# erhöhe den Wert der Variable COUNTERRESCAN um 1
COUNTERRESCAN=$(( $COUNTERRESCAN + 1 ))
# schreibe in Logdatei
echo "--$COUNTERRESCAN. Schleife gestartet--" >> /var/log/restore-audiocards.log
echo auto > '/sys/devices/pci0000:00/0000:00:1f.3/power/control'
sleep 1
echo 1 > '/sys/devices/pci0000:00/0000:00:1f.3/remove'
sleep 1
echo 1 > /sys/bus/pci/rescan
# Ende der Schleife
done
# schreibe in Logdatei
echo "--Rescan erfolgreich--" >> /var/log/restore-audiocards.log
exit 0
Leider habe ich bisher keine Möglichkeit gefunden, den Ruhemodus des Soundchips aktiv auszulösen, um es ins Script zu integrieren.
Wenn jemand dazu Ideen hat, immer her damit!
Des weiteren würde es mich auch interessieren, was "Tuxedo" zu dem Problem sagt. Ich meine, die liefern Support nur für Tuxedo-Kunden. "Schenker" gibt explizit an, nur "Windows" zu unterstützen. Vielleicht könnte jemand ja mal "Tuxedo" einen Link zu diesem Thread senden.
Bei BIOS-Update wäre ich vorsichtig. Das war anfangs auch meine Idee, gab aber nur Bluescreens. Ich vermute, die richtige BIOS-Version ist stark vom verbauten Prozessor abhängig. Zudem finde ich das BIOS auf dem "N350TW" eine Zumutung. Jaja, "Augen auf" beim Laptopkauf.
P.S.: Frohe Weihnachten und Guten Rutsch an alle