回首页

x410抄来的Windows Subsystem Linux 发声教程

先决条件

Windows 10 1709版以上

做法

打开powershell的管理员模式
开启Windows Subsystem Linux功能
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

再从Windows store / microsoft store下载Windows Subsystem Linux系统
安装chocolatey scoop 接着使用powershell的管理员模式
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
choco install pulseaudio notepad2

打开普通权限的powershell
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
scoop install git scoop bucket add extras scoop install vcxsrv archwsl
Arch.exe run "pacman-key --init;pacman-key --populate archlinux;yes|pacman -Syyu;pacman -S xfce4 firefox rxvt-unicode"

Scoop Apps 中的 VCXsrv 的快捷方式复制一份到桌面
把属性中的目标加上" -multiwindow",这样启动了X服务器方便了一般程序不受干扰
接着使用 powershell 的管理员模式修改
切换到
C:\ProgramData\chocolatey\lib\pulseaudio\tools\etc\pulse\

目录,
使用
notepad2.exe C:\ProgramData\chocolatey\lib\pulseaudio\tools\etc\pulse\default.pa

其中
第42行

load-module module-waveout sink_name=output source_name=input

改成
load-module module-waveout sink_name=output source_name=input record=0

第61行

#load-module module-native-protocol-tcp

改成
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1

文件 C:\ProgramData\chocolatey\lib\pulseaudio\tools\etc\pulse\daemon.conf

第39行

; exit-idle-time = 20

改成
exit-idle-time = -1

接着直接运行
pulseaudio.exe

碰到windows防火墙,就放行。
接着设计一个启动程序的批处理
start /B vcxsrv.exe -multiwindow
start "" /B "pulseaudio.exe"
Arch.exe run "if [ -z \"$(pidof xfce4-session)\" ]; then DISPLAY=127.0.0.1:0.0 PULSE_SERVER=tcp:127.0.0.1 startxfce4; pkill '(gpg|ssh)-agent'; taskkill.exe /IM vcxsrv.exe /F; taskkill.exe /IM pulseaudio.exe /F; fi;"

参考
1.x410

爱发电
技术讨论qq群:125969956 仅限打赏者加入

支付宝