Questo articolo spiega come far funzionare l’audio (PulseAudio) su WSL2 in Microsoft Windows.
Seguendo queste istruzioni, avrai un suono funzionante utilizzando PulseAudio su Windows / WSL2 sia per la console che per le applicazioni GUI (l’articolo non copre tuttavia l’esecuzione di applicazioni grafiche su WSL2). Usando questo, il microfono non funzionerà, o almeno non ha funzionato per me (e io, per esempio, non ne avevo bisogno comunque).
Microsoft prevede di aggiungere il supporto integrato per l’esecuzione di applicazioni grafiche e suoni a WSL2. Ma fino ad allora, puoi usare queste istruzioni per far funzionare il suono su WSL2.
Se stai ancora utilizzando WSL1, vedi come eseguire l’aggiornamento a WSL2 qui. Puoi verificare se stai già utilizzando WSL2 eseguendo wsl -l -v
in Windows PowerShell. Ogni macchina che utilizza WSL2 dovrebbe essere elencata qui, con 2 come loro VERSION
; se non vedi un numero di versione, o se vedi un messaggio di errore, hai WSL1.
Di seguito è riportato uno screenshot che mostra il terminale di Windows con Ubuntu / WSL2 in cui sto utilizzando il lettore musicale della console cmus per riprodurre musica. Non riesci a sentire la musica per verificare se funziona effettivamente, quindi questo screenshot è abbastanza inutile, ma avevo bisogno di uno screenshot da utilizzare come miniatura dell’articolo ????️.
Come nota totalmente non correlata, nel caso in cui desideri utilizzare cmus su WSL2, modifica il suo ~/.config/cmus/rc
file (crealo se non esiste) e aggiungi set output_plugin=pulse
per far funzionare l’uscita audio sul desktop di Windows.
Come far funzionare il suono in WSL2
1. Scarica PulseAudio per Windows.
Su Windows:
L’ultima versione di PulseAudio per Windows 10 che ho trovato è la versione 7 da qui, costruita per X2Go. Puoi visitare quel link e fare clic su Snapshot per scaricare PulseAudio per Windows, oppure fare clic qui per scaricarlo.
Questo scarica un file .tar.gz
archivio. Estrai questo archivio e rinomina la cartella che contiene pulseaudio.exe
e gli altri eseguibili e file di PulseAudio in pulse
e copia questo nuovo pulse
cartella in C:
(quindi dovresti avere ad es C:pulsepulseaudio.exe
).
2. Configurare PulseAudio per Windows.
Su Windows:
Crea un file chiamato config.pa
nel C:pulse
. Per poter rinominare l’estensione del file su Windows, è necessario abilitare la visualizzazione delle estensioni dei file da Esplora file.
In questo C:pulseconfig.pa
file, aggiungi quanto segue e salva il file quando hai finito:
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
Qui consentiamo le connessioni da 127.0.0.1
che è l’indirizzo IP locale e 172.16.0.0/12
che è lo spazio predefinito (172.16.0.0 – 172.31.255.255) per WSL2.
3. Configurare PulseAudio in WSL2.
Su WSL2 (Ubuntu / qualunque cosa tu stia utilizzando):
Assicuriamoci di averlo fatto libpulse0
installato, altrimenti non funzionerà. Il suo nome e il comando per installarlo dipendono dalla distribuzione Linux che stai utilizzando, quindi dovrai cercarlo e installarlo. Su Ubuntu / Debian, puoi installarlo usando:
sudo apt install libpulse0
Sempre su WSL2, dovrai anche modificare il file ~/.bashrc
file con un editor di testo – utilizzando il comando seguente lo modificheremo utilizzando l’editor della console Nano:
nano ~/.bashrc
Scorri verso il basso in questo file fino alla fine e incolla quanto segue:
export HOST_IP="$(ip route |awk '/^default/{print $3}')"
export PULSE_SERVER="tcp:$HOST_IP"
#export DISPLAY="$HOST_IP:0.0"
Qui puoi rimuovere il commento dal file export DISPLAY
per esportare anche il file DISPLAY
variabile d’ambiente (l’ho commentata per impostazione predefinita perché non tutti ne avranno bisogno). È necessario se si desidera utilizzare qualcosa come VcxSrv per avviare applicazioni grafiche da WSL2 (utilizzando la configurazione in questo articolo, le applicazioni grafiche in esecuzione in WSL2 avranno supporto audio).
Quando hai finito, salva il file ed esci da Nano (Ctrl + o
, Enter
poi x
salva il file ed esiste Nano). Quindi, procurati il file ~/.bashrc
file per utilizzare le nuove variabili d’ambiente:
source ~/.bashrc
4. Installa PulseAudio come servizio Windows.
Su Windows:
Per avviare PulseAudio come servizio Windows, useremo NSSM. Scarica NSSM da qui, estrai l’archivio scaricato e copia il file win64 nssm.exe
eseguibile in C:pulse
. Puoi trovarlo in win64
cartella nell’archivio zip NSSM scaricato.
Quindi, cerca PowerShell nel menu Start di Windows, fai clic con il pulsante destro del mouse sulla voce PowerShell e scegli Run as Administrator
.
In PowerShell, digita o incolla:
C:pulsenssm.exe install PulseAudio
La GUI di NSSM verrà visualizzata quando si esegue questo comando. Nel suo Application
scheda, usa:
- Percorso dell’applicazione:
C:pulsepulseaudio.exe
- Directory di avvio:
C:pulse
- Argomenti:
-F C:pulseconfig.pa --exit-idle-time=-1
- Nome del servizio (dovrebbe essere compilato automaticamente quando si apre la finestra di dialogo NSSM):
PulseAudio
Nel campo Argomenti che stiamo usando -F
, che dice a PulseAudio di eseguire lo script specificato all’avvio, mentre --exit-idle-time=-1
disabilita l’opzione per terminare il daemon dopo alcuni secondi di inattività.
Sul Details
scheda, entra PulseAudio
nel Display name
campo:
Quando hai finito con tutto questo, fai clic su Install service
pulsante.
Nel caso in cui in seguito desideri rimuovere questo servizio Windows, esegui nuovamente PowerShell come amministratore e questa volta esegui il seguente comando per rimuovere il servizio:
C:pulsenssm.exe remove PulseAudio
5. Avviare il servizio PulseAudio per Windows.
Avvia il Task Manager di Windows, fai clic su Services
scheda e scorrere fino a PulseAudio. Quando trovi il servizio PulseAudio, fai clic con il pulsante destro del mouse e seleziona Start
esso:
E abbiamo finito. PulseAudio ora funziona. Dovresti essere in grado di utilizzare applicazioni con capacità audio all’interno di WSL2 e ascoltare il loro output audio sul desktop di Windows 10.
Poiché abbiamo installato PulseAudio come servizio su Windows 10, una volta avviato, si avvierà automaticamente quando accedi al desktop di Windows, quindi non è necessario riavviarlo manualmente.
Riferimenti: Discorso di Ubuntu, questo, questo e il Wiki di X2Go.