GNU/Linux >> LINUX-Kenntnisse >  >> Debian

Wie man Sound (PulseAudio) mit WSL2 zum Laufen bringt

Dieser Artikel erklärt, wie man Ton (PulseAudio) zum Bearbeiten von WSL2 unter Microsoft Windows erhält.

Wenn Sie diese Anweisungen befolgen, erhalten Sie einen funktionierenden Sound mit PulsAudio auf Windows / WSL2 für Konsolen- und GUI-Anwendungen (der Artikel behandelt jedoch nicht das Ausführen von grafischen Anwendungen auf WSL2). Das Mikrofon funktioniert also nicht, oder zumindest hat es bei mir nicht funktioniert (und zum Beispiel habe ich es sowieso nicht gebraucht).

Microsoft plant, WSL2 integrierte Unterstützung für die Ausführung von grafischen Anwendungen und Sound hinzuzufügen. Aber bis dahin können Sie diese Anweisungen verwenden, um den Sound auf WSL2 zum Laufen zu bringen.

Wenn Sie noch WSL1 verwenden, erfahren Sie hier, wie Sie ein Upgrade auf WSL2 durchführen. Sie können überprüfen, ob Sie WSL2 bereits verwenden, indem Sie wsl -l -v ausführen in Windows PowerShell. Jeder Computer, der WSL2 verwendet, sollte hier aufgelistet werden, mit 2 als VERSION; Wenn Sie keine Versionsnummer oder Fehlermeldung sehen, haben Sie WSL1.

Unten ist ein Screenshot, der Windows Terminal zeigt, auf dem Ubuntu / WSL2 ausgeführt wird, wo ich den cmus Console Music Player zum Abspielen von Musik verwende. Sie können die Musik nicht hören, um zu sehen, ob sie tatsächlich funktioniert, daher ist dieser Screenshot ziemlich nutzlos, aber ich brauchte einen Screenshot, der als Miniaturansicht des Elements verwendet werden soll ?️.

Als völlig unabhängige Referenz, falls Sie cmus auf WSL2 verwenden möchten, bearbeiten Sie es ~/.config/cmus/rc Datei (erstellen Sie sie, falls sie nicht existiert) und fügen Sie sie hinzu set output_plugin=pulse damit die Tonausgabe auf Ihrem Windows-Desktop funktioniert.

So funktioniert der Sound in WSL2

1. Laden Sie PulseAudio für Windows herunter.

Unter Windows:

Die neueste Version von PulseAudio für Windows 10, die ich finden konnte, ist Version 7 von hier, gebaut für X2Go. Sie können entweder diesen Link besuchen und auf Snapshot klicken, um PulseAudio für Windows herunterzuladen. oder klicken Sie hier, um es herunterzuladen.

Dies wird heruntergeladen .tar.gz Archiv. Extrahieren Sie dieses Archiv und benennen Sie den Ordner um, der pulseaudio.exe enthält , und die anderen ausführbaren PulseAudio-Dateien und Dateien nach pulse , und kopieren Sie das erneut pulse Ordner auch C: (Sie sollten also zum Beispiel C:pulsepulseaudio.exe haben ).

2. Konfigurieren Sie PulseAudio für Windows.

Unter Windows:

Erstellen Sie eine Datei namens config.pa in C:pulse . Um die Dateierweiterung unter Windows umbenennen zu können, müssen Sie die Anzeige der Dateierweiterungen im Dateiexplorer aktivieren.

In diesem C:pulseconfig.pa Datei, fügen Sie Folgendes hinzu und speichern Sie die Datei, wenn Sie fertig sind:

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

Hier erlauben wir Verbindungen von 127.0.0.1 dies ist die lokale IP-Adresse und 172.16.0.0/12 Dies ist der Standardspeicherplatz (172.16.0.0 – 172.31.255.255) für WSL2.

3. Konfigurieren Sie PulseAudio in WSL2.

Auf WSL2 (Ubuntu / was auch immer Sie verwenden):

Stellen wir sicher, dass Sie es haben libpulse0 installiert, sonst funktioniert es nicht. Der Name und der Befehl zum Installieren hängen von der von Ihnen verwendeten Linux-Distribution ab. Sie müssen sie also finden und installieren. Unter Ubuntu / Debian können Sie es installieren mit:

sudo apt install libpulse0

Sie müssen weiterhin den ~/.bashrc verwenden Datei mit einem Texteditor – mit dem folgenden Befehl bearbeiten wir sie mit dem Nano-Konsolen-Editor:

nano ~/.bashrc

Scrollen Sie zum Ende dieser Datei und fügen Sie dort Folgendes ein:

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

Hier können Sie die Kommentarzeichen export DISPLAY entfernen Zeile, um das auch zu exportieren DISPLAY Umgebungsvariable (ich habe sie standardmäßig auskommentiert, da sie nicht jeder braucht). Dies ist erforderlich, wenn Sie etwas wie VcxSrv verwenden möchten, um grafische Anwendungen von WSL2 zu starten (mit der Konfiguration in diesem Artikel haben grafische Anwendungen, die in WSL2 ausgeführt werden, solide Unterstützung).

Wenn Sie fertig sind, speichern Sie die Datei und beenden Sie Nano (Ctrl + o , Enter dann x speichert die Datei und existiert nano). Geben Sie als nächstes ~/.bashrc ein Datei zur Verwendung der neuen Umgebungsvariablen:

source ~/.bashrc

4. Installieren Sie PulseAudio als Windows-Dienst.

Unter Windows:

Um PulseAudio als Windows-Dienst zu starten, verwenden wir NSSM. Laden Sie NSSM von hier herunter, entpacken Sie das heruntergeladene Archiv und kopieren Sie die Datei win64 nssm.exe auch ausführbar C:pulse . Das finden Sie im win64 Ordner im heruntergeladenen NSSM-Zip-Archiv.

Suchen Sie als Nächstes PowerShell im Windows-Startmenü, klicken Sie mit der rechten Maustaste auf den PowerShell-Eintrag und wählen Sie Run as Administrator .

Geben oder fügen Sie in PowerShell ein:

C:pulsenssm.exe install PulseAudio

Die NSSM-GUI wird angezeigt, wenn Sie diesen Befehl ausführen. In seinem Application Tab, verwenden Sie:

  • Anwendungspfad:C:pulsepulseaudio.exe
  • Startverzeichnis:C:pulse
  • Argumente:-F C:pulseconfig.pa --exit-idle-time=-1
  • Dienstname (sollte beim Öffnen des NSSM-Dialogs automatisch ausgefüllt werden):PulseAudio

Im Feld Argumente verwenden wir -F PulseAudio anweisen, das angegebene Skript beim Start auszuführen, während --exit-idle-time=-1 deaktiviert die Option, den Daemon nach einigen Sekunden Inaktivität herunterzufahren.

Auf der Details Tab, geben Sie PulseAudio ein indem Sie Display name ausführen Bereich:

Wenn Sie damit fertig sind, klicken Sie auf Install service Schaltfläche.

Falls Sie diesen Windows-Dienst später entfernen möchten, führen Sie PowerShell erneut als Administrator aus und führen Sie dieses Mal den folgenden Befehl aus, um den Dienst zu entfernen:

C:pulsenssm.exe remove PulseAudio

5. Starten Sie den PulseAudio-Windows-Dienst.

Starten Sie den Windows Task-Manager, klicken Sie auf Services Tippen und scrollen Sie zu PulseAudio. Wenn Sie den PulseAudio-Dienst finden, klicken Sie mit der rechten Maustaste darauf und wählen Sie Start es:

Und wir sind fertig. PulseAudio funktioniert jetzt. Sie sollten in der Lage sein, audiofähige Anwendungen in WSL2 zu verwenden und ihre Audioausgabe auf Ihrem Windows 10-Desktop zu hören.

Da wir PulseAudio als Dienst unter Windows 10 installiert haben, wird es nach dem Start automatisch gestartet, wenn Sie sich bei Ihrem Windows-Desktop anmelden, sodass Sie es nicht erneut manuell starten müssen.

Referenzen:Ubuntu-Diskurs, dies, dies und das X2Go-Wiki.


Debian
  1. Linux – Wie bringt man Oracle Java 7 dazu, mit Setcap Cap_net_bind_service+ep zu arbeiten?

  2. Wie bringt man Vim dazu, richtig mit Tmux zu arbeiten?

  3. Wie bekomme ich Uuencode zum Laufen?

  4. Linux – Wie bekomme ich Grindeq (Latex-Plugin für Word), um mit Word in Wine zu arbeiten?

  5. Wie bekomme ich Jshint zum Laufen?

Anleitung zum Dual-Booten von Linux Mint 20 mit Windows 10

So installieren Sie Ubuntu 18.04 Dual Boot mit Windows 10

So arbeiten Sie mit Ansible Provisioner in Vagrant

So installieren Sie Ubuntu zusammen mit Windows

So installieren Sie Podman unter Ubuntu 20.04 WSL2

Erste Schritte mit Arch Linux