GNU/Linux >> Tutoriales Linux >  >> Debian

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

Este artículo explica cómo obtener sonido (PulseAudio) para editar WSL2 en Microsoft Windows.

Si sigue estas instrucciones, obtendrá un sonido funcional con PulsAudio en Windows/WSL2 para aplicaciones de consola y GUI (sin embargo, el artículo no cubre la ejecución de aplicaciones gráficas en WSL2). Entonces el micrófono no funciona, o al menos no me funcionó a mí (y por ejemplo, no lo necesitaba de todos modos).

Microsoft planea agregar soporte integrado para ejecutar aplicaciones gráficas y sonido a WSL2. Pero hasta entonces, puede usar estas instrucciones para que el sonido funcione en WSL2.

Si todavía usa WSL1, vea cómo actualizar a WSL2 aquí. Puede verificar si ya está usando WSL2 ejecutando wsl -l -v en Windows PowerShell. Cualquier máquina que use WSL2 debe aparecer aquí, con 2 como suya VERSION; Si no ve un número de versión o un mensaje de error, tiene WSL1.

A continuación se muestra una captura de pantalla que muestra Windows Terminal ejecutando Ubuntu / WSL2 donde estoy usando el reproductor de música cmus Console para reproducir música. No puedes escuchar la música para ver si realmente funciona, por lo que esta captura de pantalla es bastante inútil, pero necesitaba una captura de pantalla para usarla como miniatura del elemento. ️.

Como referencia completamente independiente, en caso de que quiera usar cmus en WSL2, edítelo ~/.config/cmus/rc Archivo (créelo si no existe) y agréguelo set output_plugin=pulse para que la salida de sonido funcione en su escritorio de Windows.

Así es como funciona el sonido en WSL2

1. Descarga PulseAudio para Windows.

En Windows:

La última versión de PulseAudio para Windows 10 que pude encontrar es la versión 7 de aquí, creada para X2Go. Puede visitar este enlace y hacer clic en Instantánea para descargar PulseAudio para Windows. o haga clic aquí para descargarlo.

Esto se descargará .tar.gz Archivo. Extraiga este archivo y cambie el nombre de la carpeta que contiene pulseaudio.exe y los demás archivos ejecutables de PulseAudio y archivos a pulse , y cópialo de nuevo pulse Carpeta demasiado C: (por lo que debería tener, por ejemplo, C:pulsepulseaudio.exe ).

2. Configure PulseAudio para Windows.

En Windows:

Crea un archivo llamado config.pa en C:pulse . Para poder cambiar el nombre de la extensión de archivo en Windows, debe activar la visualización de las extensiones de archivo en el explorador de archivos.

En este C:pulseconfig.pa Archivo, agregue lo siguiente y guarde el archivo cuando haya terminado:

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

Aquí permitimos conexiones desde 127.0.0.1 esta es la dirección IP local y 172.16.0.0/12 Este es el espacio de almacenamiento predeterminado (172.16.0.0 – 172.31.255.255) para WSL2.

3. Configure PulseAudio en WSL2.

En WSL2 (Ubuntu/lo que estés usando):

Asegurémonos de tenerlo libpulse0 instalado, de lo contrario no funcionará. El nombre y el comando para instalarlo dependerán de la distribución de Linux que esté utilizando, por lo que deberá encontrarlo e instalarlo. En Ubuntu/Debian puedes instalarlo con:

sudo apt install libpulse0

Todavía tienes que usar el ~/.bashrc Archivo con editor de texto – con el siguiente comando lo editaremos con el editor de consola Nano:

nano ~/.bashrc

Desplácese hasta la parte inferior de ese archivo y pegue lo siguiente allí:

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

Aquí puede eliminar las marcas de comentario export DISPLAY Línea para exportar eso también DISPLAY Variable de entorno (lo comenté por defecto ya que no todo el mundo lo necesita). Esto es necesario si desea usar algo como VcxSrv para iniciar aplicaciones gráficas desde WSL2 (con la configuración de este artículo, las aplicaciones gráficas que se ejecutan en WSL2 tendrán soporte de sonido).

Cuando haya terminado, guarde el archivo y salga de Nano (Ctrl + o , Enter entonces x guarda el archivo y existe nano). Siguiente fuente el ~/.bashrc Archivo para usar las nuevas variables de entorno:

source ~/.bashrc

4. Instale PulseAudio como un servicio de Windows.

En Windows:

Para iniciar PulseAudio como un servicio de Windows, usaremos NSSM. Descargue NSSM desde aquí, descomprima el archivo descargado y copie el win64 nssm.exe ejecutable también C:pulse . Puedes encontrar eso en el win64 Carpeta en el archivo zip de NSSM descargado.

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

En PowerShell, escriba o pegue:

C:pulsenssm.exe install PulseAudio

La GUI de NSSM se muestra cuando ejecuta este comando. En su Application Pestaña, usa:

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

En el campo Argumentos usamos -F diciéndole a PulseAudio que ejecute el script especificado al inicio mientras --exit-idle-time=-1 desactiva la opción de apagar el daemon después de unos segundos de inactividad.

En el Details Tabulador, entrada PulseAudio haciendo Display name Área:

Cuando haya terminado con todo esto, haga clic en Install service Botón.

En caso de que luego desee eliminar este servicio de Windows, ejecute PowerShell nuevamente como administrador y esta vez 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, haga clic en Services Toque y desplácese hasta PulseAudio. Cuando encuentre el servicio PulseAudio, haga clic derecho sobre él y seleccione Start es:

Y hemos terminado. PulseAudio ahora está funcionando. Debería poder usar aplicaciones habilitadas para audio en WSL2 y escuchar su salida de audio en su escritorio de Windows 10.

Dado que instalamos PulseAudio como un servicio en Windows 10, se inicia automáticamente después de iniciar sesión en el escritorio de Windows, por lo que no tiene que iniciarlo de nuevo manualmente.

Referencias:discurso de Ubuntu, this, this y X2Go Wiki.


Debian
  1. Linux:¿cómo hacer que Oracle Java 7 funcione con Setcap Cap_net_bind_service+ep?

  2. ¿Cómo hacer que Vim funcione correctamente con Tmux?

  3. ¿Cómo hacer que Uuencode funcione?

  4. Aprendiendo Perl, pero ¿cómo obtengo 5.14 en Windows?

  5. Cómo obtener estadísticas del sistema con node.js

Cómo hacer un arranque dual de Linux Mint 20 con Windows 10

Cómo instalar Ubuntu 18.04 Dual Boot con Windows 10

Cómo trabajar con Ansible Provisioner en Vagrant

Cómo instalar Ubuntu junto con Windows

Cómo instalar Podman en Ubuntu 20.04 WSL2

Cómo comenzar con Arch Linux