Tento článek vysvětluje, jak získat zvuk (PulseAudio) pro úpravu WSL2 v systému Microsoft Windows.
Pokud budete postupovat podle těchto pokynů, získáte funkční zvuk s PulsAudio na Windows / WSL2 pro konzolové a GUI aplikace (článek se však nezabývá spouštěním grafických aplikací na WSL2). Mikrofon tedy nefunguje, nebo alespoň nefungoval mně (a například jsem ho stejně nepotřeboval).
Microsoft plánuje přidat do WSL2 vestavěnou podporu pro spouštění grafických aplikací a zvuku. Ale do té doby můžete použít tyto pokyny, aby zvuk fungoval na WSL2.
Pokud stále používáte WSL1, podívejte se, jak upgradovat na WSL2 zde. Zda již WSL2 používáte, můžete zkontrolovat spuštěním wsl -l -v
v prostředí Windows PowerShell. Zde by měl být uveden jakýkoli počítač používající WSL2, přičemž 2 jako jejich VERSION
; Pokud nevidíte číslo verze nebo chybovou zprávu, máte WSL1.
Níže je snímek obrazovky ukazující Windows Terminal se systémem Ubuntu / WSL2, kde pro přehrávání hudby používám hudební přehrávač cmus Console. Neslyšíte hudbu, abyste viděli, zda to skutečně funguje, takže tento snímek obrazovky je docela k ničemu, ale potřeboval jsem snímek obrazovky, který by se dal použít jako miniatura položky?️.
Jako zcela nezávislou referenci v případě, že chcete použít cmus na WSL2, upravte jej ~/.config/cmus/rc
Soubor (vytvořte jej, pokud neexistuje) a přidejte jej set output_plugin=pulse
aby zvukový výstup fungoval na ploše Windows.
Takto funguje zvuk ve WSL2
1. Stáhněte si PulseAudio pro Windows.
V systému Windows:
Nejnovější verze PulseAudio pro Windows 10, kterou jsem našel, je verze 7 zde, vytvořená pro X2Go. Můžete buď navštívit tento odkaz a kliknutím na Snapshot stáhnout PulseAudio pro Windows. nebo kliknutím sem jej stáhněte.
Toto bude staženo .tar.gz
Archiv. Rozbalte tento archiv a přejmenujte složku, která obsahuje pulseaudio.exe
a další spustitelné soubory a soubory PulseAudio na pulse
a zkopírujte jej znovu pulse
Složka také C:
(měli byste tedy mít například C:pulsepulseaudio.exe
).
2. Nakonfigurujte PulseAudio pro Windows.
V systému Windows:
Vytvořte soubor s názvem config.pa
v C:pulse
. Abyste mohli přejmenovat příponu souboru ve Windows, musíte aktivovat zobrazení přípon souborů v průzkumníku souborů.
V tomto C:pulseconfig.pa
Soubor, přidejte následující a po dokončení soubor uložte:
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
Zde povolujeme připojení od 127.0.0.1
toto je místní IP adresa a 172.16.0.0/12
Toto je výchozí úložný prostor (172.16.0.0 – 172.31.255.255) pro WSL2.
3. Nakonfigurujte PulseAudio ve WSL2.
Na WSL2 (Ubuntu / cokoli, co používáte):
Ujistěte se, že máte libpulse0
nainstalováno, jinak to nebude fungovat. Název a příkaz k instalaci bude záviset na distribuci Linuxu, kterou používáte, takže ji budete muset najít a nainstalovat. Na Ubuntu / Debian jej můžete nainstalovat pomocí:
sudo apt install libpulse0
Stále musíte použít ~/.bashrc
Soubor textovým editorem – následujícím příkazem jej upravíme pomocí editoru konzole Nano:
nano ~/.bashrc
Přejděte dolů na konec tohoto souboru a vložte tam následující:
export HOST_IP="$(ip route |awk '/^default/{print $3}')"
export PULSE_SERVER="tcp:$HOST_IP"
#export DISPLAY="$HOST_IP:0.0"
Zde můžete odstranit značky komentáře export DISPLAY
Řádek pro export také DISPLAY
Proměnná prostředí (standardně jsem ji okomentoval, protože ji ne každý potřebuje). To je vyžadováno, pokud chcete použít něco jako VcxSrv ke spouštění grafických aplikací z WSL2 (s konfigurací v tomto článku budou mít grafické aplikace běžící ve WSL2 podporu zvuku).
Až budete hotovi, uložte soubor a ukončete Nano (Ctrl + o
, Enter
pak x
uloží soubor a existuje nano). Další zdroj ~/.bashrc
Soubor pro použití nových proměnných prostředí:
source ~/.bashrc
4. Nainstalujte PulseAudio jako službu Windows.
V systému Windows:
Ke spuštění PulseAudio jako služby Windows použijeme NSSM. Stáhněte si NSSM odtud, rozbalte stažený archiv a zkopírujte win64 nssm.exe
spustitelný také C:pulse
. Můžete to najít v win64
Složka ve staženém zip archivu NSSM.
Dále najděte PowerShell v nabídce Start systému Windows, klikněte pravým tlačítkem na položku PowerShell a vyberte Run as Administrator
.
V PowerShellu zadejte nebo vložte:
C:pulsenssm.exe install PulseAudio
Po spuštění tohoto příkazu se zobrazí grafické uživatelské rozhraní NSSM. V jeho Application
Tab, použijte:
- Cesta aplikace:
C:pulsepulseaudio.exe
- Počáteční adresář:
C:pulse
- Argumenty:
-F C:pulseconfig.pa --exit-idle-time=-1
- Název služby (měl by být vyplněn automaticky při otevření dialogu NSSM):
PulseAudio
V poli Argumenty používáme -F
sdělující PulseAudio, aby spustil zadaný skript při spuštění při --exit-idle-time=-1
deaktivuje možnost vypnout démona po několika sekundách nečinnosti.
Na Details
Tab, zadejte PulseAudio
provedením Display name
Oblast:
Až budete s tímto vším hotovi, klikněte na Install service
Tlačítko.
V případě, že později budete chtít tuto službu Windows odebrat, spusťte PowerShell znovu jako správce a tentokrát spusťte následující příkaz pro odebrání služby:
C:pulsenssm.exe remove PulseAudio
5. Spusťte službu PulseAudio Windows.
Spusťte Správce úloh systému Windows a klikněte na Services
Tab a přejděte na PulseAudio. Když najdete službu PulseAudio, klikněte na ni pravým tlačítkem a vyberte Start
to:
A máme hotovo. PulseAudio nyní funguje. Měli byste být schopni používat aplikace s podporou zvuku ve WSL2 a slyšet jejich zvukový výstup na ploše Windows 10.
Vzhledem k tomu, že jsme PulseAudio nainstalovali jako službu na Windows 10, spustí se automaticky po spuštění, když se přihlásíte na plochu Windows, takže ji nemusíte znovu spouštět ručně.
Reference:Diskuse o Ubuntu, toto, toto a X2Go Wiki.