Instaló Steam en Linux, luego algunos juegos de su biblioteca y continuó disfrutando de los juegos. Lanzaste tu juego favorito, encendiste los parlantes o te pusiste los audífonos y luego corriste a silenciarlos debido al molesto crujido. ¿Es esa tu experiencia con los juegos de Steam para Windows jugando bajo Linux?
La fuente del problema es un parámetro configurado incorrectamente en Pulseaudio y puede aparecer en cualquier distribución de Linux. Afortunadamente, hay una solución fácil. Siga leyendo para descubrir cómo puede solucionar el problema de sonido de craqueo de los juegos de Steam en Linux con un simple ajuste.
Ajustar el demonio PulseAudio
La solución a nuestro problema es un proceso de dos partes, con la posibilidad de solucionar algunos problemas después, por si acaso. Comencemos por ajustar el demonio de PulseAudio.
Enciende tu terminal favorito e ingresa:
sudo nano /etc/pulse/daemon.conf
Busque los parámetros «default-fragments» y «default-fragment-size-msec». Ambos ya deberían existir, pero si no es así, puedes agregarlos tú mismo. Establezca sus valores en 2 y 4, respectivamente. Deberían verse algo como esto:
default-fragments = 2 default-fragment-size-msec = 4
Guarde el archivo actualizado y reinicie PulseAudio para aplicar los cambios. Puedes hacer eso con:
pulseaudio -k
Con eso concluye la primera parte de nuestros ajustes. No te preocupes, ¡el que sigue es aún más fácil!
Ajustar el servidor de sonido
Reinicie su editor de texto favorito, pero esta vez edite el archivo que define cómo debe iniciarse el servidor de sonido PulseAudio, con:
sudo nano /etc/pulse/default.pa
Busque la sección que le dice a PulseAudio que cargue los módulos del controlador usando udev. Se verá así:
### Automatically load driver modules depending on the hardware available .ifexists module-udev-detect.so load-module module-udev-detect .else ### Use the static hardware detection module (for systems that lack udev support) load-module module-detect .endif
Actualízalo agregando tsched=0
al final de «load-module module-udev-detect», de modo que la nueva versión se lea así:
### Automatically load driver modules depending on the hardware available .ifexists module-udev-detect.so load-module module-udev-detect tsched=0 .else ### Use the static hardware detection module (for systems that lack udev support) load-module module-detect .endif
Guarde los cambios y reinicie PulseAudio una vez más con:
pulseaudio -k
Y eso es todo, con suerte, el problema desaparecerá.
Solucionar problemas
Si los ajustes anteriores mejoraron su situación, pero aún no se corrigió por completo, vuelva a editar el primer archivo y aumente los valores de los parámetros «default-fragments» y «default-fragment-size-msec». Pruebe valores como «3» y «5» o «4» y «8», respectivamente. No se vuelva loco desde el principio, sino que aumente los valores progresivamente hasta que se elimine el problema.
Por otro lado, si esos ajustes empeoraron el problema, vale la pena ir al revés. Disminuya los valores de esos dos parámetros, luego vuelva al segundo archivo y modifique su ajuste para tsched=1
.
Reinicie PulseAudio una vez más y compruebe si su problema se ha solucionado esta vez. Si no es así, vuelva a ambos archivos y deshaga los cambios. Desafortunadamente, en este caso, la fuente del problema está en otra parte.
Vale la pena probar diferentes controladores para su subsistema de audio, pero dado que estos tienden a estar incluidos en el kernel, eso significaría cambiar el kernel de su distribución por uno diferente. Compruebe si hay uno más nuevo disponible. De lo contrario, vuelva a uno anterior o instale un kernel alternativo, como Licorix.
Controladores, búferes, programación
Quizás se pregunte por qué esos parámetros (posiblemente) solucionaron su problema. Todo tiene que ver con el hardware de su subsistema de audio, sus controladores y cómo lo usa PulseAudio.
Los dos primeros parámetros que cambiamos dividen el búfer del dispositivo de audio en fragmentos. Dependiendo de su subsistema de audio, esto puede ayudar al sistema operativo a transmitir datos a su subsistema de audio, que luego se convierte en sonido.
El segundo parámetro cambia el enfoque de programación de PulseAudio. Desde la versión 0.9.11, PulseAudio utiliza un modelo basado en temporizador del sistema. Sin embargo, esto exige que el hardware y el controlador devuelvan información de tiempo precisa. Algunos lo hacen, como las soluciones de Intel. Este se considera el enfoque moderno y mejor. Algunas, como muchas tarjetas de sonido de Creative, no lo hacen. Dependiendo de su hardware y controladores, activar el programador del temporizador (el tsched
parámetro que introdujimos) encendido o apagado (valores 1 o 0) puede hacer una gran diferencia.
Si, en cambio, tiene el problema de falta de sonido en Ubuntu, aquí se explica cómo solucionarlo.