Cómo hacer que el sonido (PulseAudio) funcione en WSL2

Este artículo describe cómo obtener el sonido (PulseAudio) para procesarlo.WSL2Bajo Microsoft Windows.

Siga estas instrucciones y podrá utilizarAudio de pulsoSe utiliza tanto para aplicaciones de consola como de GUI en Windows/WSL2 (aunque este artículo no implica la ejecución de aplicaciones gráficas en WSL2). Con esta característica el micrófono no funcionará, o al menos a mí no me funcionará (y yo, uno de ellos, no lo necesito).

microsoftplanAgregue soporte integrado para ejecutar aplicaciones de gráficos y sonidos a WSL2. Pero hasta entonces, puedes utilizar estas instrucciones para que el sonido funcione en WSL2.

Si todavía usa WSL1, consulte cómo actualizar a WSL2Aquí. Puede comprobar si ya está utilizando WSL2 ejecutando el siguiente comandowsl -l -vEn Windows PowerShell. Todas las máquinas que usan WSL2 deben aparecer aquí, 2 de las cuales son suyas.VERSION; Si no ve el número de versión o si ve un mensaje de error, tiene WSL1.

La siguiente es una captura de pantalla que muestra que estoy usando la Terminal de Windows de Ubuntu/WSL2.PeinesEl reproductor de música de la consola reproduce música. No puedes escuchar la música para comprobar si realmente funciona, por lo que esta captura de pantalla es casi inútil, pero necesito usarla como miniatura de un artículo.

Como nota completamente irrelevante, si desea utilizar cmus en WSL2, edítelo~/.config/cmus/rcArchivo (crear si no existe) y agregarset output_plugin=pulseHaga que su salida de sonido funcione normalmente en el escritorio de Windows.

Cómo hacer que el sonido funcione en WSL2

1. Descargue PulseAudio para Windows.

En Windows:

La última versión de PulseAudio para Windows 10 que puedo encontrar es la versión 7Aquí, Está diseñado para X2Go. Puede visitar el enlace y hacer clic en "Instantánea" para descargar PulseAudio para Windows.O haga clic aquí para descargar.

Esto descargó un.tar.gzfile.Descomprima este archivo y cambie el nombre de la carpeta que contiene lo siguientepulseaudio.exe, Y otros archivos ejecutables de PulseAudio y archivos parapulseY luego copia este nuevopulseCarpeta aC:(Entonces deberías tener, por ejemplo,C:pulsepulseaudio.exe).

2. Configure PulseAudio para Windows.

En Windows:

Crea un archivo llamadoconfig.paenC:pulse. Para poder cambiar el nombre de las extensiones de archivos en Windows, debe habilitar la visualización de extensiones de archivos desde el Explorador de archivos.

en estoC:pulseconfig.paArchivo, agregue el siguiente contenido y guarde el archivo cuando haya terminado:

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;172.16.0.0/12load-module module-esound-protocol-tcp auth-ip-acl=127.0.0.1;172.16.0.0/12load-module module-waveout sink_name=output source_name=input record=0

Aquí permitimos desde127.0.0.1Esta es la dirección IP local y172.16.0.0/12Este es el espacio predeterminado de WSL2 (172.16.0.0-172.31.255.255).

3. Configure PulseAudio en WSL2.

En WSL2 (Ubuntu/cualquier dispositivo que utilices):

Asegurémonos de que tieneslibpulse0Ha sido instalado, de lo contrario no funcionará correctamente. Su nombre y comando de instalación dependen de la distribución de Linux que esté utilizando, por lo que debe buscarlo e instalarlo. En Ubuntu/Debian, puede usar el siguiente comando para instalar:

sudo apt install libpulse0

Aún en WSL2, aún necesitas editar~/.bashrcEdite el archivo con un editor de texto; usando el siguiente comando, lo editaremos con el editor de la consola Nano:

nano ~/.bashrc

Desplácese hasta el final de este archivo y pegue lo siguiente:

export HOST_IP="$(ip route |awk '/^default/{print $3}')"export PULSE_SERVER="tcp:$HOST_IP"#export DISPLAY="$HOST_IP:0.0"

Aquí puedes descomentarexport DISPLAYTambién exportarDISPLAYVariable de entorno (la he comentado por defecto porque no todo el mundo la necesita). Si desea utilizar algo como VcxSrv para iniciar aplicaciones de gráficos desde WSL2, debe hacerlo (utilizando la configuración de este artículo, las aplicaciones de gráficos que se ejecutan en WSL2 tendrán un buen soporte).

Cuando termine, guarde el archivo y salga de Nano (Ctrl + o,EnterentoncesxGuarde el archivo y guárdelo en Nano).A continuación, cambie~/.bashrcArchivo para usar las nuevas variables de entorno:

source ~/.bashrc

4. Instale PulseAudio como un servicio de Windows.

En Windows:

Para iniciar PulseAudio como servicio de Windows, usaremos NSSM.Descarga NSSM desde aquí, Descomprima el archivo descargado y copie win64nssm.exeEjecutable paraC:pulse.Puedewin64La carpeta en el archivo zip NSSM descargado.

A continuación, busque PowerShell en el menú Inicio de Windows, haga clic derecho en la entrada de PowerShell y seleccioneRun as Administrator.

En PowerShell, escriba o pegue:

C:pulsenssm.exe install PulseAudio

Después de ejecutar este comando, se mostrará la GUI de NSSM. En suApplicationEtiqueta, uso:

NSSM application tab

  • Ruta de aplicación:C:pulsepulseaudio.exe
  • Directorio de inicio:C:pulse
  • parámetro:-F C:pulseconfig.pa --exit-idle-time=-1
  • Nombre del servicio (debe completarse automáticamente cuando se abre el cuadro de diálogo NSSM):PulseAudio

En el campo "Parámetros", estamos usando-F, Le indica a PulseAudio que ejecute el script especificado al inicio, y--exit-idle-time=-1Deshabilite la opción para finalizar el demonio después de unos segundos de inactividad.

enDetailsEtiqueta, entrarPulseAudioadentroDisplay namesitio:

NSSM details tab

Después de completar todas estas operaciones, haga clic enInstall serviceBotón.

Si necesita eliminar este servicio de Windows en el futuro, ejecute PowerShell nuevamente como administrador y luego ejecute el siguiente comando para eliminar el servicio:

C:pulsenssm.exe remove PulseAudio

5. Inicie el servicio PulseAudio de Windows.

Inicie el Administrador de tareas de Windows y haga clic enServicesTabulador y desplácese hasta PulseAudio. Cuando encuentre el servicio PulseAudio, haga clic derecho sobre él y seleccioneStartél:

Windows Task Manager Service PulseAudio

Hemos terminado. PulseAudio ya está funcionando. Debería poder utilizar aplicaciones habilitadas para audio en WSL2 y escuchar su salida de audio en el escritorio de Windows 10.

Dado que hemos instalado PulseAudio como un servicio en Windows 10, una vez iniciado, se iniciará automáticamente cuando inicie sesión en el escritorio de Windows, por lo que no es necesario volver a iniciarlo manualmente.

referencia:Discurso de Ubuntu,Éste,ÉsteconWiki X2Go.

Fuente

Actualizaciones del boletín

Ingrese su dirección de correo electrónico a continuación para suscribirse a nuestro boletín