WSL2 GUI 环境配置中遇到的问题

尝试在Windows中使用WSL2实现Linux GUI程序的开发,但是在配置环境阶段就遇到了一些问题。中文社区相关的资料较少,因此我花费了不少时间,特此记录一下。

1 安装WSL 2

以下选一个教程看就可以了,甚至可以互补着看。

  1. 微软官方教程
  2. 其他社区

2 打开Ubuntu App报错

2.1 报「参考的对象类型不支持尝试的操作。」

参考更改注册表

2.2 报「Wsl/Service/0x8007273d」

可能是更新了wsl版本引起的,参考解决方案@Fainelli的回复。

  1. 在应用管理中卸载「Windows Subsystem for Linux Update」「Windows Subsystem for Linux」;
  2. 点击下载 wsl_update_x64.msi 并重新安装wsl内核;
  3. 重启Ubuntu App.

3 无法打开GUI程序

安装完Wsl和Ubuntu后是可以打开终端的,且可以编译代码。但是按照教程安装microsoft-edge或gedit后,启动报错且没有界面。有以下报错。

3.1 failed to connect to the bus
sudo service dbus start
3.1 Missing X server or $DISPLAY 或 wsl cannot open display:

完整错误是

ERROR:ozone_platform_x11.cc(247) Missing X server or $DISPLAY
The platform failed to initialize. Exiting.

解决办法是(原文参考@kvnptl的回复)

  1. 在Windows上安装 vcxsrv
  2. 启动XLaunch.exe
  3. 选择 Multiple Windows (default)
  4. 选择 Start no client (default)
  5. 勾选✅ Disable access control
  6. 取消勾选 ☐ Native opengl(否则会引起GUI程序段错误)
  7. 保存配置文件到启动目录 C:\Users"YOUR_USERNAME"\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup (把 YOUR_USERNAME替换成你本机的)
  8. 打开Ubuntu app, 运行命令 export DISPLAY=$(route.exe print | grep 0.0.0.0 | head -1 | awk '{print $4}'):0.0,阤反命令追加到环境变量 ~/.bashrc
  9. Ubuntu下使用echo $DISPLAY查看IP地址是否是Win的Wsl虚拟网卡的IP,如果不是,使用export DISPLAY=<IP>:0.0手动调整下;
  10. 如果你的程序仍然打不开可试试安装 sudo apt install x11-apps -y 后重试

4 打开edge文字乱码

解决办法

5 可以使用远程登陆Ubuntu桌面

原文参考
Ubuntu中安装xrdp

 sudo apt-get purge xrdp
 sudo apt-get install xrdp -y
 sudo apt-get install xfce4 -y
 sudo apt-get install xfce4-goodies -y

启动

sudo /etc/init.d/xrdp start

最后WIN+R输入mstsc 打开远程桌面连接输入Ubuntu的ip连接即可。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值