WSL2 Ubuntu+gnome图形界面的安装血泪史(亲测有效)

写在最前面(血泪史)

前因
近期遇到一个问题,需要在ubuntu虚拟机上用opengl3.3以上的版本(可编程管线),但是虚拟机上查看版本时发现为opengl2.1,查了各种资料才得知是驱动版本太低。
这边一个大坑请注意: 虚拟机无法升级显卡驱动,虚拟机无法升级显卡驱动,虚拟机无法升级显卡驱动!!! 网上的参考资料基本没说清楚是用真linux还是虚拟机下的ubuntu,这点我绕了很多的弯路,也尝试了大部分比较靠谱的资料最后均无法实现!!!

在虚拟化环境中,虚拟机通常无法直接访问物理显卡,而是使用虚拟显卡来模拟图形输出。因此,虚拟机中的显卡性能通常受到限制,无法达到与物理机相同的水平。

然而,一些虚拟化软件(如 VMware、VirtualBox 等)提供了一些特殊的功能,可以使虚拟机在一定程度上利用物理显卡的性能。这些功能通常被称为“虚拟 GPU”(Virtual GPU)或“显卡透传”(GPU Passthrough)。
后果
后来查看资料得知可以使用window子系统,Windows Subsystem for Linux,即适用于 Linux 的 Windows 子系统 (WSL)。
这边已经升级为WSL2,官方资料说明其可以使用windows下的显卡驱动,嗯就很香~,言归正传,看看如何配置WSL2 Ubuntu+gnome图形界面

1.wsl2 安装

必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 才能使用以下命令。
WSL2的安装主要参考官方教程
https://docs.microsoft.com/zh-cn/windows/wsl/install-win10
其他资料网上也比较多一般这一步比较容易这边不展开

2.Ubuntu安装

首先打开windows应用商店,输入ubuntu,这边我下载的是ubuntu 18.04版本的,其他版本的没有尝试过

在这里插入图片描述
ubuntu初始化操作
下载完成后点击打开,需要输入用户名、密码、确认密码。输入密码是不会显示的,直接输入之后回车就可以,出现这个界面即为成功了
在这里插入图片描述

3.VcXsrv安装与启动

连接WSL显示桌面需要用到X Server Windows软件,使用VcXsrv
软件链接:https://sourceforge.net/projects/vcxsrv/
3.1 安装就一路next就好
3.2 启动步骤在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
点下Save configuration保存配置,点击完成,下一次就直接点config文件进入不需要在重新设置一遍,点击进入后应该是黑屏如下:
在这里插入图片描述

4. gnome图形界面的配置

WSL 不支持 systemd 而 Gnome 桌面又是基于 systemd,所以先解决这个问题

sudo apt update
sudo apt install git
git clone https://github.com/DamionGans/ubuntu-wsl2-systemd-script.git
cd ubuntu-wsl2-systemd-script/
bash ubuntu-wsl2-systemd-script.sh

安装完systemd之后,退回windows终端(直接叉掉这个终端就行),务必输入

wsl --shutdown

确认你wsl版本为wsl2

wsl -l -v

在这里插入图片描述
如果wsl version 为1那么需要先将版本转为2

wsl --set-version Ubuntu-18.04 2 

重启ubuntu终端。输入

systemctl

确认systemctl能用,出来一堆log,失败的话会是

System has not been booted with systemd as init system (PID 1). Can't operate.

接下来安装图形界面

sudo apt install ubuntu-desktop

这边可能要多试几次,网络不好容易断掉,确保文件下载并安装完成
安装完毕后
输入以下命令

sudo service dbus restart

输入sudo vi ~/.bashrc
在.bashrc文件中导入(vi的插入用 i,输入完成后按esc 输入:wq保存)

export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0.0

export XDG_SESSION_TYPE=x11

保存后
执行 source ~/.bashrc 生效
保证VcXsrv启动状态下,输入

gnome-session

这边又有一个大坑,很多人在这边发现屏幕还是黑屏,我来来回回试了30多次吧,均也是这种情况,这时候可以去看看是不是VcXsrv被防火墙给拦截了

在这里插入图片描述
设置完成后重启VcXsrv,这个时候应该能够看到这个界面
在这里插入图片描述
恭喜到这里就完成了

5.显卡驱动的升级

因为我这边需要用到opengl3.3以上,但是我查看信息时发现还是opengl2.1,在gnome终端输入查看的命令为

glxinfo | grep OpenGL

这时候不要急着升级驱动,因为wsl2用的是windows的驱动,这边先升级opengl

sudo add-apt-repository ppa:kisak/kisak-mesa
sudo apt update && sudo apt upgrade

升级过后重启ubuntu
再次进入后在gnome终端输入:

glxinfo | grep OpenGL

这个时候应该会出现
在这里插入图片描述
查看显卡驱动为
在这里插入图片描述
完成!!!

6. wsl2与VMware虚拟机共存

只需要将VMware升级到16以上,开启虚拟机平台,即可解决问题
在这里插入图片描述

本地与WSL文件传输

方法一直接命令启动,缺点每次都要输入

explorer.exe .

方法二:添加网络位置,设置完成后,之后直接打开即可
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44478077/article/details/128723158