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_save
y cambie el valor de 1 a 0.
Luego escriba sudo nano /sys/module/snd_hda_intel/parameters/power_save_controller
y 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 sudoedit
en lugar de sudo nano
. Tenga en cuenta que también deberá configurar la EDITOR
variable 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 sudoedit
es mejor se explica completamente en esta pregunta de superusuario.sudoedit: ¿por qué usarlo en lugar de sudo vi?