GNU/Linux >> Linux Esercitazione >  >> Debian

Come far funzionare il suono (PulseAudio) con WSL2

Questo articolo spiega come ottenere l'audio (PulseAudio) per la modifica di WSL2 in Microsoft Windows.

Se segui queste istruzioni, otterrai un suono funzionante con PulsAudio su Windows/WSL2 per console e applicazioni GUI (tuttavia, l'articolo non tratta l'esecuzione di applicazioni grafiche su WSL2). Quindi il microfono non funziona, o almeno non ha funzionato per me (e per esempio non mi serviva comunque).

Microsoft prevede di aggiungere il supporto integrato per l'esecuzione di applicazioni grafiche e audio 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. Qualsiasi macchina che utilizza WSL2 dovrebbe essere elencata qui, con 2 come loro VERSION; Se non vedi un numero di versione o un messaggio di errore, hai WSL1.

Di seguito è riportato uno screenshot che mostra il terminale Windows con Ubuntu / WSL2 in cui sto utilizzando cmus Console music player per riprodurre musica. Non riesci a sentire la musica per vedere se funziona davvero, quindi questo screenshot è piuttosto inutile, ma avevo bisogno di uno screenshot da usare come miniatura dell'elemento?️.

Come riferimento completamente indipendente, se vuoi usare cmus su WSL2, modificalo ~/.config/cmus/rc File (crealo se non esiste) e aggiungilo set output_plugin=pulse in modo che l'uscita audio funzioni sul desktop di Windows.

Ecco come funziona 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 di qui, creata per X2Go. Puoi visitare questo link e fare clic su Istantanea per scaricare PulseAudio per Windows. oppure clicca qui per scaricarlo.

Questo verrà scaricato .tar.gz Archivio. Estrai questo archivio e rinomina la cartella che contiene pulseaudio.exe e gli altri file eseguibili PulseAudio e file in pulse e copialo di nuovo pulse Anche la cartella C: (quindi dovresti avere, ad esempio, C:pulsepulseaudio.exe ).

2. Configura PulseAudio per Windows.

Su Windows:

Crea un file chiamato config.pa in C:pulse . Per poter rinominare l'estensione del file in Windows, devi attivare la visualizzazione delle estensioni del file in 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 connessioni da 127.0.0.1 questo è l'indirizzo IP locale e 172.16.0.0/12 Questo è lo spazio di archiviazione predefinito (172.16.0.0 – 172.31.255.255) per WSL2.

3. Configura PulseAudio in WSL2.

Su WSL2 (Ubuntu / qualunque cosa tu stia usando):

Assicuriamoci di averlo libpulse0 installato, altrimenti non funzionerà. Il nome e il comando per installarlo dipenderanno dalla distribuzione Linux che stai utilizzando, quindi dovrai trovarlo e installarlo. Su Ubuntu/Debian puoi installarlo con:

sudo apt install libpulse0

Devi ancora usare il ~/.bashrc File con un editor di testo:con il seguente comando lo modificheremo con l'editor della console Nano:

nano ~/.bashrc

Scorri verso il basso fino alla fine del file 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 i segni di commento export DISPLAY Riga per esportare anche quello DISPLAY Variabile d'ambiente (l'ho commentata per impostazione predefinita poiché non tutti ne hanno bisogno). Questo è necessario se si desidera utilizzare qualcosa come VcxSrv per avviare applicazioni grafiche da WSL2 (con la configurazione in questo articolo, le applicazioni grafiche eseguite in WSL2 avranno supporto audio).

Quando hai finito salva il file ed esci da Nano (Ctrl + o , Enter quindi x salva il file ed esiste nano). Prossima fonte il ~/.bashrc File per utilizzare le nuove variabili di ambiente:

source ~/.bashrc

4. Installa PulseAudio come servizio Windows.

Su Windows:

Per avviare PulseAudio come servizio Windows, utilizzeremo NSSM. Scarica NSSM da qui, decomprimi l'archivio scaricato e copia il nssm.exe di win64 eseguibile anche C:pulse . Puoi trovarlo nel win64 Cartella nell'archivio zip NSSM scaricato.

Quindi, trova PowerShell nel menu Start di Windows, fai clic con il pulsante destro del mouse sulla voce PowerShell e seleziona Run as Administrator .

In PowerShell, digita o incolla:

C:pulsenssm.exe install PulseAudio

La GUI di NSSM viene visualizzata quando si esegue questo comando. Nel suo Application Tab, usa:

  • Percorso dell'applicazione:C:pulsepulseaudio.exe
  • Inizio directory:C:pulse
  • Argomenti:-F C:pulseconfig.pa --exit-idle-time=-1
  • Nome del servizio (da compilare automaticamente all'apertura della finestra di dialogo NSSM):PulseAudio

Nel campo Argomenti utilizziamo -F dicendo a PulseAudio di eseguire lo script specificato all'avvio mentre --exit-idle-time=-1 disabilita l'opzione per spegnere il demone dopo alcuni secondi di inattività.

Sul Details Tab, inserisci PulseAudio facendo Display name Zona:

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 comando seguente per rimuovere il servizio:

C:pulsenssm.exe remove PulseAudio

5. Avvia il servizio PulseAudio Windows.

Avvia Task Manager di Windows, fai clic su Services Tab e scorri fino a PulseAudio. Quando trovi il servizio PulseAudio, fai clic destro su di esso e seleziona Start esso:

E abbiamo finito. PulseAudio ora funziona. Dovresti essere in grado di utilizzare le applicazioni abilitate all'audio in WSL2 e ascoltare il loro output audio sul desktop di Windows 10.

Poiché abbiamo installato PulseAudio come servizio su Windows 10, si avvia automaticamente dopo l'avvio quando accedi al desktop di Windows, quindi non è necessario riavviarlo manualmente.

Riferimenti:discorso di Ubuntu, questo, questo e il Wiki di X2Go.


Debian
  1. Linux:come far funzionare Oracle Java 7 con Setcap Cap_net_bind_service+ep?

  2. Come far funzionare correttamente Vim con Tmux?

  3. Come far funzionare Uuencode?

  4. Linux – Come ottenere Grindeq (plugin in lattice per Word) per lavorare con Word in Wine?

  5. Come far funzionare Jshint?

Come eseguire il dual boot di Linux Mint 20 con Windows 10

Come installare Ubuntu 18.04 Dual Boot con Windows 10

Come lavorare con Ansible Provisioner in Vagrant

Come installare Ubuntu insieme a Windows

Come installare Podman su Ubuntu 20.04 WSL2

Come iniziare con Arch Linux