win10子系统运行图形界面和声音
环境
1.win10 64位 ,unbuntu 22.04
2.镜像源国内清华源访问地址
3.wls版本 2
图形化界面
1.参考链接
在适用于 Linux 的 Windows 子系统上运行 Linux GUI 应用。
2.安装如下:
安装 GIMP
sudo apt install gimp -y
安装 X11 应用
sudo apt install x11-apps -y
3.在win10上安装VcXsrv
必须勾选这个不然会报错认证错误
4.在~/.bashrc最后面加入export DISPLAY=192.168.31.220:0.0
(其中192.168.31.220是win10的ip地址)
export DISPLAY=192.168.31.220:0.0
然后source一下
source ~/.bashrc
运行xeyes看到弹框出现运行说明图形化界面成功了
xeyes
播放声音
子系统安装pulseaudio
1.参考链接
Setting Up WSL with Graphics and Audio
在 WSL 中使用 pulseaudio 播放声音
2.安装依赖
sudo apt-get install -y pkg-config intltool libtool libsndfile1-dev libjson-c-dev g++ gcc cmake make
3.下载源代码pulseaudio-7.0.tar.gz(这里我下载的是7.0)并解压缩源代码并将单行补丁应用于src/pulsecore/mutex-posix.c。找到下面的行
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
再后面添加
#undef HAVE_PTHREAD_PRIO_INHERIT
然后进行编译安装命令如下
CFLAGS="$CFLAGS -g -O0" ./configure \
--disable-bluez4 \
--disable-bluez5 \
--disable-rpath \
--disable-asyncns \
--disable-udev \
--disable-systemd-daemon \
--without-caps \
--enable-force-preopen
然后运行 make -j8 和 make install
sudo make -j8
如果出现如上错误,就运行 make clean 和sudo ln -s /usr/include/locale.h /usr/include/xlocale.h 然后重新make
sudo make clean
sudo ln -s /usr/include/locale.h /usr/include/xlocale.h
sudo make -j8
安装pulseaudio
sudo make install
运行paplay如果出现如下
那么就使用查找一下这个链接文件在哪里,然后拷贝到lib64文件夹里面
其中/home/pulseaudio-7.0/src/.libs/libpulse.so.0就是编译安装后产生的。将其拷贝到/lib64里面然后刷新链接库
sudo ldconfig
win10安装pulseaudio
1.下载pulseaudio也可参考Setting Up WSL with Graphics and Audio
去下载
2.修改pulseaudio配置文件\etc\pulse\default.pa在里面加入
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1
load-module module-native-protocol-tcp auth-ip-acl=172.19.115.147 auth-anonymous=1
其中172.19.115.147是子系统的ip地址
然后在 \etc\pulse\daemon.conf里面改exit-idle-time = -1
在cmd中去到 \bin 运行pulseaudio
.\pulseaudio.exe
测试新开一个cmd 然后去到 \bin运行
.\paplay.exe -p --server=tcp:localhost C:\Windows\Media\ding.wav
运作正常的话,Windows 应该会播放「叮」的一声.
子系统配置连接win的pulseaudio并播放声音
1.修改~/.bashrc,在最后添加一行 export PULSE_SERVER=tcp:192.168.31.220,
192.168.31.220是win的地址。
2.运行测试
source ~/.bashrc
paplay -p /mnt/c/Windows/Media/ding.wav
运作正常的话,Windows 应该会播放「叮」的一声.
最后也可以安装ffmpeg播放一段视频测试。
以上都是基于子系统能够访问到win的ip,保证网络是通的。最好双向都是通的。
一般安装好后都是双向通的。如果不行就自己配置静态路由ip地址等。