Los parlantes de Linux Ubuntu suenan cada pocos segundos

Los parlantes de Linux Ubuntu suenan cada pocos segundos

Soy nuevo en Linux Ubuntu, usuario de Windows desde hace mucho tiempo y me alegro de hacer el cambio. Al configurar mi PC de escritorio, estoy sujeto a un molesto y repetitivo "pop" del altavoz cada 2 segundos. Este pop ocurre independientemente del nivel de volumen. Se detiene si desconecto el conector de audio de mis parlantes y solo uso el altavoz integrado en la placa base. Si reproduzco un sonido, el estallido se detiene mientras se reproduce el sonido y durante unos 5 segundos después, y luego se reanuda.

Estoy ejecutando Linux Ubuntu 18.04.3 LTS. La información del sistema reporta dos adaptadores de audio, HDA-Intel - HDA ATI SB y HDA-Intel - HDA NVidia

Finalmente encontré la solución a este problema, pero no tengo suficientes puntos de reputación para publicar preguntas y respuestas juntos.

Respuesta1

El comportamiento predeterminado del sistema operativo es ahorrar energía apagando el adaptador de audio después de 10 segundos. Esta función de ahorro de energía está provocando el estallido y se puede desactivar.

En Terminal escriba sudo nano /sys/module/snd_hda_intel/parameters/power_savey cambie el valor de 1 a 0.

Luego escriba sudo nano /sys/module/snd_hda_intel/parameters/power_save_controllery cambie el valor de Y a N.

En mi sistema, esto resolvió el problema del audio estallando inmediatamente. Sin embargo, al reiniciar, el problema volvió y descubrí que estos valores se habían restablecido. Para mantener estos valores persistentes, tuve que agregar una línea de código. /etc/modprobe.d/alsa-base.conf Agregué esto después de la última línea de código en el archivo.options snd-hda-intel power_save=0 power_save_controller=N

Guarde el archivo y ¡listo!

Gran parte de mi información provino de este video:https://www.youtube.com/watch?v=Pdmy8dMWitg

Tuve que reconstruir la parte de "persistencia después del reinicio" y mi configuración se restableció aunque no tengo TLP instalado. Tenga en cuenta que el video dice lo contrario.

Estaba bastante frustrado con Ubuntu hasta que descubrí esto. ¡Espero que esto ayude a muchas personas a resolver sus problemas de audio!

Respuesta2

Como seguimiento de la respuesta de @Glen, aquí hay un script que realiza la tarea:

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
}

Respuesta3

Como complemento a la respuesta de Glen, por razones de seguridad, es mejor usarlo sudoediten lugar de sudo nano. Tenga en cuenta que también deberá configurar la EDITORvariable de entorno.

Entonces, en lugar de:

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

usar

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

y en lugar de

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

usar

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

La razón por la que sudoedites mejor se explica completamente en esta pregunta de superusuario.sudoedit: ¿por qué usarlo en lugar de sudo vi?

información relacionada