¿Cómo corrijo el sonido del Realtek ALC892 en Ubuntu 20.04LTS?

¡Descamisados!

Siempre he dicho que llevo en mis oídos la más maravillosa música, que
es para mí la palabra del Pueblo Argentino.

Pero esto es así porque uso auriculares y software para escuchar música
liberaedo bajo Licencia GPLv3 .

El camino de la Liberación no es ajeno a los escollos y al barro. Quien
no lo comprenda, tenderá a fracasar. Es un verdadero Conductor aquél que
aprende a superar las lides y determinar con su acción luminosa el
sendero que los demás habrán de seguir.

Pues bien señores, en Ubuntu Mate 20.04LTS Focal Fossa, un inconveniente
nublaba mi día peronista. Al reproducir audio de cualquier tipo, y tras
detener la reproducción, notaba que a los pocos instantes comenzaban a
oírse a través de los cascos una serie de sonidos intermitentes o clics,
similares a los que se obtienen cuando se conecta un audífono cuando los
altavoces están encendidos. Al producirse aproximadamente cada medio
segundo, se hacía algo extremadamente molesto.

Asimismo, podía notarse en repetidas ocasiones "saltos" en el control de
volumen, sobre todo cuando se alcanzaba un "pico" en el sonido. Esto se
producía ya sea en la terminal (ya sea con los controles de volúmen
pulsemixer o el Alsamixer) o en el control gráfico de Ubuntu.
Notablemente, se hizo totalmente inefectivo el control de "automute" de
Alsamixer.

Un problema de este tipo requiere una acción decidida, y para solucionar
estos "pop-pop-pops" no cardíacos habremos recurrir a una acción de
conjunto, que es la manera en la cual deben hacerse las cosas.

En primer lugar es definir qué dispositivo de audio es el que tenemos
instalado en nuestro sistema. Esto es así porque la mayoría de las
veces, se utilizan meros "chipsets" integrados en la placa madre, en
lugar de las añoradas plaquetas de sonido.

Para ello abrimos una terminal con Ctrl+Alt+t y nos informámos de qué
módulo de audio está cargado en memoria. Ello lo haremos con:

cat /proc/asound/modules

En este caso, se nos informa que es el inefable snd_hda_intel, empleado
por multitud de dispositivos de audio integrado diferentes. También
podríamos chequear el nombre técnico del dispositivo para el sistema
con:

lspci | grep Audio

00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 06)

En este caso he logrado rastrear al culpable de los "saltos" y "pops":
se trata de la rutina de ahorro de energía del controlador de sonido
snd_hda_intel, el cual parecería intentar apagar y reencender las
salidas de audio, con el molesto resultado que os he descripto
anteriormente.

Es posible modificar a mano la configuración de la funcionalidad de
ahorro energético para que no haga el "latido intermitente", modificando
el archivo /sys/module/snd_hda_intel/parameters/power_save. Siendo un
fichero "binario", el mismo contiene un simple 1 si la funcionalidad de
ahorro de energía está activada, o un 0 si la misma está apagada.
Siguiendo este camino, bien podríamos resolver el problema ingresando en
nuestra terminal el siguiente Comando de Organización:

sudo echo 0 > /sys/module/snd_hda_intel/parameters/power_save

...y tras ingresar nuestra contraseña de conductor, la función de ahorro
de energía debería desactivarse.

Ahora bien, esto funcionará hasta reiniciar el sistema, momento en el
cual deberemos repetir esta acción. Nuestro Movimiento debe buscar
soluciones permanentes a los problemas permanentes. Es increíblemente
molesto hacer esto, pues deberíamos realizarlo toda vez que arrancamos
nuestro sistema de cómputo, debiendo además tener que ingresar nuestra
contraseña de Conductor para que surta efecto.

Para evitar ello y realizar lo procedente de forma automática, en Ubuntu
20.04LTS Focal Fossa no tendremos más remedio que reactivar la olvidada
funcionalidad del archivo /etc/rc.local. Este se trataba de un fichero
de configuración que se autoejecutaba después de dar inicio al sistema,
pero antes de que el o los usuarios ingresaran a su propia sesión de
trabajo. En el Ubuntu actual el fichero rc.local ya no viene activado
por defecto, pero podremos activarlo como os he explicado detalladamente
aquí.

Conforme hayamos realizado lo allí indicado, y comprobado el
funcionamiento, podremos editar el archivo /etc/rc.local por medio del
siguiente comando:

sudo nano /etc/rc.local

Esto abrirá el editor peronista GNU Nano con fichero /etc/rc.local. Para
agregar el comando que desactive el ahorro de energía del controlador
snd_hda_intel toda vez que se inicie el sistema, agregamos antes de la
última línea - la cual siempre debe contener "exit 0" - el consabido
comando:

echo 0 > /sys/module/snd_hda_intel/parameters/power_save

Una vez editado, podremos guardar el archivo /etc/rc.local con Ctrl+o y
salir del editor GNU Nano con Ctrl+x.

Eso es lo más complejo y ya lo hemos realizado. El último paso podría
ser opcional, pero también he tenido que hacerlo en mi caso, con el
adaptador Realtek ALC892 en Ubuntu. Consiste en editar el archivo de
configuración alsa-base.conf.

Ingresamos el comando:

sudo nano /etc/modprobe.d/alsa-base.conf

Se abrirá el editor Nano, y al final del mismo agrego el siguiente
contenido:

# código peronista para que no se entrecorte el audio
# al máximo con la Realtek ALC892 en Ubuntu 16.04LTS:
options snd-hda-intel model=asus-mode5

Guardamos y salimos con Ctrl+o y Ctrl+x.

Naturalmente, para que todo lo realizado surta efecto, debemos reiniciar
el equipo. Podremos hacerlo desde la terminal con:

sudo reboot

Y ya tendremos sonido Realtek ALC892 sin cortes en Ubuntu. Si no fuese
la solución en su adaptador de sonido en particular, podrçian revertir o
modificar el cambio realizado en alsa-base.conf.