web analytics

[GUIDA] Come far funzionare l’audio (PulseAudio) sul WSL 2

wsl linux microsoft wslconf

Torniamo a parlare di WSL 2 (Windows Subsystem for Linux) dopo i recenti articoli sull’aggiornamento del kernel via Windows Update e sul tool di terze parti Hello Sudo, che consente di abilitare l’autenticazione biometrica. Argomento di oggi è l’audio nel WSL 2. Microsoft ha già in programma di aggiungere il supporto integrato per l’audio, vediamo però come fare per abilitarlo fino a quando la casa di Redmond non rilascerà un aggiornamento ufficiale.

Abilitiamo l’audio sul WSL 2

Questa guida funziona solo con il WSL 2 (qui trovate la nostra guida all’installazione). Se volete essere certi di avere la versione 2 attiva aprite un’istanza di PowerShell e date wsl -l -v: dovrebbe restituirvi VERSION = 2. Se non vedete un numero di versione, o se appare un messaggio di errore, state usando il WSL 1.

Su Windows

Dopo aver verificato di avere a bordo il WSL 2 la prima cosa da fare è scaricare PulseAudio su Windows. Estraete il contenuto dell’archivio e rinominate la cartella che contiene il file eseguibile pulseaudio.exe e gli altri eseguibili chiamandola pulse. Copiate la cartella pulse in C:\ (creando di fatto il percorso C:\pulse\pulseaudio.exe). Create poi un file config.pa in C:\pulse\ e aggiungete le seguenti righe all’interno del file per abilitare le connessioni locali:

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

127.0.0.1 è il localhost mentre 172.16.0.0/12 è lo spazio degli indirizzi (172.16.0.0 – 172.31.255.255) per il WSL2.

Sul WSL 2

Assicuratevi di avere libpulse0 installato, se non l’avete installatelo. Su Ubuntu/Debian può essere installato dando il seguente comando:

sudo apt install libpulse0

Il nome del pacchetto potrebbe cambiare da distribuzione a distribuzione. Terminata l’installazione devete modificare il file ~ /.bashrc con un editor di testo aggiungendo in fondo al file le seguenti righe:

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

Potete scommentare la variabile DISPLAY se siete interessati anche alle app grafiche. Salvate le modifiche e applicatele dando source ~/.bashrc.

Installate PulseAudio su Windows

Per avviare PulseAudio come servizio Windows useremo NSSM, che può essere scaricato da qui. Estraete il contenuto dell’archivio scaricato e poi copiate l’eseguibile nssm.exe, posto nella cartella win64, in C:\pulse\. Quindi lanciate PowerShell eseguendolo come amministratore (tasto destro, esegui come amministratore) e date C:\pulse\nssm.exe install PulseAudio. Se tutto procede come previsto si aprirà una finestra come la seguente:

pulseaudio wsl 2

Nella scheda Application impostate i seguenti percorsi:

  • Path: C:\pulse\pulseaudio.exe
  • Startup directory: C:\pulse
  • Arguments: -F C:\pulse\config.pa --exit-idle-time=-1. Dove -F permette il lancio all’avvio mentre --exit-idle-time=-1 consente di chiudere il demone dopo un periodo di inattività.
  • Service name: PulseAudio

Recatevi poi nella scheda Details e alla voce Display name digitate PulseAudio. Al termine cliccate su Install service. Per rimuovere PulseAudio date C:\pulse\nssm.exe remove PulseAudio in PowerShell.

A questo punto nel Task Manager di Windows, scheda Servizi, avviate il servizio PulseAudio (tasto destro, Start). Dopo un riavvio del PC il servizio si avvierà automaticamente, non dovrete lanciarlo a mano. Il gioco è fatto, PulseAudio ora dovrebbe funzionare correttamente. Dovreste essere in grado di sentire l’audio delle applicazioni all’interno del WSL 2!

Dubbi? Domande? Problemi? Scrivete nel box dei commenti Disqus qui sotto!!!😄😄😄

sharing-caring-1Seguiteci sul nostro canale Telegram, sulla nostra pagina Facebook e su Google News. Nel campo qui sotto è possibile commentare e creare spunti di discussione inerenti le tematiche trattate sul blog.