Cet article explique comment obtenir du son (PulseAudio) pour éditer WSL2 sous Microsoft Windows.
Si vous suivez ces instructions, vous obtiendrez un son fonctionnel avec PulsAudio sur Windows / WSL2 pour les applications console et GUI (cependant, l'article ne couvre pas l'exécution d'applications graphiques sur WSL2). Donc le micro ne marche pas, ou du moins il n'a pas fonctionné pour moi (et par exemple je n'en ai pas eu besoin de toute façon).
Microsoft prévoit d'ajouter une prise en charge intégrée pour l'exécution d'applications graphiques et du son à WSL2. Mais jusque-là, vous pouvez utiliser ces instructions pour que le son fonctionne sur WSL2.
Si vous utilisez toujours WSL1, découvrez comment passer à WSL2 ici. Vous pouvez vérifier si vous utilisez déjà WSL2 en exécutant wsl -l -v
dans WindowsPowerShell. Toute machine utilisant WSL2 doit être listée ici, avec 2 comme la leur VERSION
; Si vous ne voyez pas de numéro de version ou de message d'erreur, vous avez WSL1.
Ci-dessous, une capture d'écran montrant le terminal Windows exécutant Ubuntu / WSL2 où j'utilise le lecteur de musique cmus Console pour écouter de la musique. Vous ne pouvez pas entendre la musique pour voir si cela fonctionne réellement, donc cette capture d'écran est assez inutile, mais j'avais besoin d'une capture d'écran à utiliser comme vignette de l'élément ? ️.
En tant que référence complètement indépendante, au cas où vous voudriez utiliser cmus sur WSL2, modifiez-le ~/.config/cmus/rc
Fichier (créez-le s'il n'existe pas) et ajoutez-le set output_plugin=pulse
afin que la sortie audio fonctionne sur votre bureau Windows.
Voici comment fonctionne le son dans WSL2
1. Téléchargez PulseAudio pour Windows.
Sous Windows :
La dernière version de PulseAudio pour Windows 10 que j'ai pu trouver est la version 7 d'ici, conçue pour X2Go. Vous pouvez soit visiter ce lien et cliquer sur Snapshot pour télécharger PulseAudio pour Windows. ou cliquez ici pour le télécharger.
Ceci sera téléchargé .tar.gz
Archive. Extrayez cette archive et renommez le dossier qui contient pulseaudio.exe
, et les autres fichiers exécutables PulseAudio et fichiers à pulse
, et copiez-le à nouveau pulse
Dossier trop C:
(donc vous devriez avoir, par exemple C:pulsepulseaudio.exe
).
2. Configurez PulseAudio pour Windows.
Sous Windows :
Créez un fichier nommé config.pa
en C:pulse
. Afin de pouvoir renommer l'extension de fichier sous Windows, vous devez activer l'affichage des extensions de fichier dans l'explorateur de fichiers.
Dans ce C:pulseconfig.pa
Fichier, ajoutez ce qui suit et enregistrez le fichier lorsque vous avez terminé :
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
Ici, nous autorisons les connexions à partir de 127.0.0.1
c'est l'adresse IP locale, et 172.16.0.0/12
Il s'agit de l'espace de stockage par défaut (172.16.0.0 – 172.31.255.255) pour WSL2.
3. Configurez PulseAudio dans WSL2.
Sur WSL2 (Ubuntu / tout ce que vous utilisez) :
Assurons-nous que vous l'avez libpulse0
installé, sinon cela ne fonctionnera pas. Le nom et la commande pour l'installer dépendront de la distribution Linux que vous utilisez, vous devrez donc la trouver et l'installer. Sur Ubuntu / Debian vous pouvez l'installer avec :
sudo apt install libpulse0
Vous devez toujours utiliser le ~/.bashrc
Fichier avec un éditeur de texte - avec la commande suivante, nous le modifierons avec l'éditeur de la console Nano :
nano ~/.bashrc
Faites défiler vers le bas de ce fichier et collez-y ce qui suit :
export HOST_IP="$(ip route |awk '/^default/{print $3}')"
export PULSE_SERVER="tcp:$HOST_IP"
#export DISPLAY="$HOST_IP:0.0"
Ici, vous pouvez supprimer les marques de commentaire export DISPLAY
Ligne pour exporter cela aussi DISPLAY
Variable d'environnement (je l'ai commentée par défaut car tout le monde n'en a pas besoin). Ceci est nécessaire si vous souhaitez utiliser quelque chose comme VcxSrv pour lancer des applications graphiques à partir de WSL2 (avec la configuration de cet article, les applications graphiques exécutées dans WSL2 auront un support audio).
Lorsque vous avez terminé, enregistrez le fichier et quittez Nano (Ctrl + o
, Enter
puis x
enregistre le fichier et existe nano). Source suivante le ~/.bashrc
Fichier pour utiliser les nouvelles variables d'environnement :
source ~/.bashrc
4. Installez PulseAudio en tant que service Windows.
Sous Windows :
Pour démarrer PulseAudio en tant que service Windows, nous utiliserons NSSM. Téléchargez NSSM à partir d'ici, décompressez l'archive téléchargée et copiez le win64 nssm.exe
exécutable aussi C:pulse
. Vous pouvez trouver cela dans le win64
Dossier dans l'archive zip NSSM téléchargée.
Ensuite, recherchez PowerShell dans le menu Démarrer de Windows, cliquez avec le bouton droit sur l'entrée PowerShell et sélectionnez Run as Administrator
.
Dans PowerShell, saisissez ou collez :
C:pulsenssm.exe install PulseAudio
L'interface graphique NSSM s'affiche lorsque vous exécutez cette commande. Dans son Application
Tab, utilisez :
- Chemin d'application :
C:pulsepulseaudio.exe
- Répertoire de démarrage :
C:pulse
- Arguments :
-F C:pulseconfig.pa --exit-idle-time=-1
- Nom du service (doit être renseigné automatiquement lors de l'ouverture de la boîte de dialogue NSSM) :
PulseAudio
Dans le champ Arguments, nous utilisons -F
dire à PulseAudio d'exécuter le script spécifié au démarrage tandis que --exit-idle-time=-1
désactive l'option permettant d'arrêter le démon après quelques secondes d'inactivité.
Sur le Details
Tabulation, saisissez PulseAudio
en faisant Display name
Zone :
Lorsque vous avez terminé avec tout cela, cliquez sur Install service
Bouton.
Si vous souhaitez ultérieurement supprimer ce service Windows, exécutez à nouveau PowerShell en tant qu'administrateur et cette fois, exécutez la commande suivante pour supprimer le service :
C:pulsenssm.exe remove PulseAudio
5. Démarrez le service Windows PulseAudio.
Démarrez le Gestionnaire des tâches de Windows, cliquez sur le Services
Tab et faites défiler jusqu'à PulseAudio. Lorsque vous trouvez le service PulseAudio, faites un clic droit dessus et sélectionnez Start
il :
Et nous avons terminé. PulseAudio fonctionne maintenant. Vous devriez pouvoir utiliser des applications compatibles audio dans WSL2 et entendre leur sortie audio sur votre bureau Windows 10.
Depuis que nous avons installé PulseAudio en tant que service sur Windows 10, il démarre automatiquement après avoir démarré lorsque vous vous connectez à votre bureau Windows, vous n'avez donc pas à le redémarrer manuellement.
Références :discours d'Ubuntu, ceci, ceci et le wiki X2Go.