Linux Ubuntu Lautsprecher knallen alle paar Sekunden

Linux Ubuntu Lautsprecher knallen alle paar Sekunden

Ich bin neu bei Linux Ubuntu, schon lange Windows-Benutzer und froh, dass ich umsteige. Wenn ich meinen Desktop-PC einrichte, höre ich etwa alle 2 Sekunden ein nerviges und sich wiederholendes Lautsprecher-„Knackgeräusch“. Dieses Knacken tritt unabhängig von der Lautstärke auf. Es hört auf, wenn ich den Audiostecker meiner Lautsprecher abziehe und nur den in der Hauptplatine eingebauten Lautsprecher verwende. Wenn ich einen Ton abspiele, hört das Knacken auf, während der Ton abgespielt wird, und für etwa 5 Sekunden danach, dann geht es weiter.

Ich verwende Linux Ubuntu 18.04.3 LTS. Die Systeminformationen melden zwei Audioadapter, HDA-Intel - HDA ATI SB & HDA-Intel - HDA NVidia

Ich habe schließlich die Lösung für dieses Problem gefunden, aber ich habe nicht genügend Reputationspunkte, um Fragen und Antworten gemeinsam zu veröffentlichen.

Antwort1

Das Betriebssystem schaltet den Audioadapter standardmäßig nach 10 Sekunden aus, um Strom zu sparen. Diese Energiesparfunktion verursacht das Knacken und kann deaktiviert werden.

Geben Sie im Terminal ein sudo nano /sys/module/snd_hda_intel/parameters/power_saveund ändern Sie den Wert von 1 auf 0.

Geben Sie dann sudo nano /sys/module/snd_hda_intel/parameters/power_save_controllerden Wert ein und ändern Sie ihn von Y in N.

Auf meinem System löste dies das Problem mit dem Audio-Popping sofort. Beim Neustart trat das Problem jedoch erneut auf und ich stellte fest, dass diese Werte zurückgesetzt worden waren. Um diese Werte dauerhaft beizubehalten, musste ich eine Codezeile hinzufügen. Ich /etc/modprobe.d/alsa-base.conf fügte diese nach der letzten Codezeile in der Datei hinzu:options snd-hda-intel power_save=0 power_save_controller=N

Speichern Sie die Datei, und schon kann es losgehen!

Viele meiner Informationen stammen aus diesem Video:https://www.youtube.com/watch?v=Pdmy8dMWitg

Ich musste den Teil „Persistenz nach Neustart“ zusammensetzen und meine Einstellung wurde zurückgesetzt, obwohl ich TLP nicht installiert habe. Beachten Sie, dass das Video etwas anderes behauptet.

Ich war ziemlich frustriert über Ubuntu, bis ich das herausgefunden habe. Ich hoffe, das hilft vielen Leuten, ihre Audioprobleme zu lösen!

Antwort2

Als Follow-up zu @Glens Antwort ist hier ein Skript, das die Aufgabe ausführt:

fix_ubuntu_18_04_sound_pop_issue(){
    __heredoc__="""
    Script that fixes a popping sound due to a power saving feature

    References:
        https://superuser.com/questions/1493096/linux-ubuntu-speakers-popping-every-few-seconds
        https://www.youtube.com/watch?v=Pdmy8dMWitg
    """
    sudo echo "obtaining sudo"
    # First, there are two system files that need modification
    # Changing the values here should fix the issue in your current session. 
    cat /sys/module/snd_hda_intel/parameters/power_save
    cat /sys/module/snd_hda_intel/parameters/power_save_controller
    # Flip the 1 to a 0
    sudo sh -c "echo 0 > /sys/module/snd_hda_intel/parameters/power_save"
    # Flip the Y to a N
    sudo sh -c "echo N > /sys/module/snd_hda_intel/parameters/power_save_controller"

    # To make this change persistant we must modify a config file
    if [ -f "/etc/default/tlp" ]; then
        # Some systems (usually laptops) have this controlled via TLP 
        sudo sed -i 's/SOUND_POWER_SAVE_ON_BAT=1/SOUND_POWER_SAVE_ON_BAT=0/' /etc/default/tlp
        # This line contained a typo, addressed on 2020-10-11 11:11 Bcn time
        sudo sed -i 's/SOUND_POWER_SAVE_CONTROLLER=Y/SOUND_POWER_SAVE_CONTROLLER=N/' /etc/default/tlp
    elif [ -f "/etc/modprobe.d/alsa-base.conf" ]; then
        # Append this line to the end of the file
        text="options snd-hda-intel power_save=0 power_save_controller=N"
        fpath="/etc/modprobe.d/alsa-base.conf"
        # Apppend the text only if it doesn't exist
        found="$(grep -F "$text" "$fpath")"
        if [ "$found" == "" ]; then
            sudo sh -c "echo \"$text\" >> $fpath"
        fi
        cat "$fpath"
    else
        echo "Error!, unknown system audio configuration" 1>&2
        exit 1
    fi
}

Antwort3

Als Ergänzung zu Glens Antwort: Aus Sicherheitsgründen ist es besser, sudoeditanstelle von zu verwenden. Beachten Sie, dass Sie auch die Umgebungsvariable sudo nanofestlegen müssen .EDITOR

Also statt:

sudo nano /sys/module/snd_hda_intel/parameters/power_save

verwenden

EDITOR=nano sudoedit /sys/module/snd_hda_intel/parameters/power_save

und statt

sudo nano /sys/module/snd_hda_intel/parameters/power_save_controller

verwenden

EDITOR=nano sudoedit /sys/module/snd_hda_intel/parameters/power_save_controller

Der Grund, warum sudoedites besser ist, wird in dieser SuperUser-Frage ausführlich erklärt.sudoedit: Warum es anstelle von sudo vi verwenden?

verwandte Informationen