【24年9月亲测可用】Windows11-WSL2-Ubuntu22.04-可视化桌面安装教程(附带CUDA,cuDNN)

Leo9344 2024-10-04 16:07:03 阅读 64

目录

TL;DR作者注:软硬件环境:一、在Windows上安装Linux子系统二、在子系统Ubuntu22.04上安装桌面环境2.1 更换国内镜像源(以阿里源为例)2.2 安装必要的依赖-`systemctl`【非常重要】2.3 安装必要的依赖-`ubuntu-desktop`【非常重要】2.4 安装远程控制软件xrdp

三、从Windows启动桌面版Ubuntu四、安装CUDA4.1 下载安装CUDA4.2 配置环境变量

五、安装cuDNN5.1 下载安装cuDNN5.2 安装和测试

之前浏览过但是各种报错的其他教程链接

TL;DR

本文主要参照这个教程,但是需要使用这个链接和这个链接作为补丁,否则用远程桌面链接之后会一直黑屏/蓝屏。

作者注:

如果读者之前安装失败了,可以去最后面这里搜索一下里面是否有你之前看过的教程,本人亲测都不太好用。

软硬件环境:

<code>OS: Windows 11 家庭中文版 23H2 22631.4037

WSL 版本: 2.3.17.0

内核版本: 5.15.153.1-2

WSLg 版本: 1.0.64

MSRDC 版本: 1.2.5326

Direct3D 版本: 1.611.1-81528511

DXCore 版本: 10.0.26100.1-240331-1435.ge-release

CPU:Intel Core i9-14900HX

GPU:NVIDIA GeForce RTX 4060 Laptop GPU

一、在Windows上安装Linux子系统

第一步没什么坑,可以直接参照这个教程,直到安装好系统,出现这个界面,记得更新wsl版本就行,而且要下载22.04版本的Ubuntu,原教程是22.04

在这里插入图片描述

二、在子系统Ubuntu22.04上安装桌面环境

2.1 更换国内镜像源(以阿里源为例)

先备份原来的软件源(虽然大概不会用到),之后删光当前软件源内的内容,再添加进新的内容。

<code># 备份原来的软件源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

# 编辑软件源

sudo vim /etc/apt/sources.list

如果是vim打开的这个文件,可以连续按D键来删除光标所在的行,之后按I键进入编辑模式,粘贴以下内容后按·ESC退出编辑模式,最后输入:wq保存并退出。

deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

如果想用清华源,就粘贴下面的内容:

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

保存之后更新一下:

# 更新软件源

sudo apt-get update -y

# 升级所有软件

sudo apt-get upgrade -y

2.2 安装必要的依赖-systemctl【非常重要】

首先确认systemctl是否是自带的,很多教程里面会写去下面这个链接下载安装systemctl,但是在新版本的 wsl2 中这个东西是自带的。

请在命令行中输入

systemctl

如果出现以下一大堆输出,那说明systemctl已经安装好了,直接跳到 2.3 就行

在这里插入图片描述

如果在这一步报错了,显示<code>Code 1之类的一行,则需要按照下面这个流程先安装systemctl

# 其他教程提到的 systemctl 链接,但新版本的 wsl2 不需要安装这个

git clone https://github.com/DamionGans/ubuntu-wsl2-systemd-script.git

cd ubuntu-wsl2-systemd-script

vim enter-systemd-namespace

把这两行的参数从-a改成-m -p,之后保存即可

在这里插入图片描述

最后进行安装

<code>bash ubuntu-wsl2-systemd-script.sh

安装之后重启wsl,重新进来之后输入systemctl应该就有下图的输出了

exit

wsl --shutdown

systemctl

在这里插入图片描述

https://github.com/microsoft/WSL/discussions/9350

2.3 安装必要的依赖-<code>ubuntu-desktop【非常重要】

其他的教程在这一步会提示你去安装ubuntu-desktop,但是很多人会遇到一个问题是,安装的时候进度卡在73%左右之后就不动了。

通过这个链接https://github.com/microsoft/WSL/discussions/9350得知,解决方法是首先:

sudo apt-mark hold acpid acpi-support

然后正常安装

# 安装gnome桌面环境

sudo apt-get install ubuntu-desktop

# 安装相关工具

sudo apt-get install gnome-tweak

之后就会进入下图的安装流程,安装快慢视网速而定,大约10分钟内能完事。

在这里插入图片描述

这时候我们先回到<code>Windows,用管理员身份打开PowerShell,并输入:

# 停止服务

net stop LxssManager

# 启动服务

net start LxssManager

来重启服务。

2.4 安装远程控制软件xrdp

我们需要在Ubuntu中安装远程控制软件,然后使用Windows自带的mstsc工具(远程桌面连接)来达到可视化操作Ubuntu的目的。

回到Ubuntu,在Ubuntu命令行中执行安装安装命令:

sudo apt-get install xrdp

将端口从3389改为3390,因为此前默认的3389端口已保留用于ubuntu shell

sudo sed -i 's/3389/3390/g' /etc/xrdp/xrdp.ini

配置启动session,否则远程桌面登录输入密码之后会直接闪退

echo "gnome-session" > ~/.xsession

重新启动xrdp服务

sudo systemctl restart xrdp

这时可以查看xrdp服务状态,左上角是个小绿灯,输出日志里面没有报错就OK。

sudo systemctl status xrdp

踩坑的点来了,需要修改以下文件,否则远程桌面连接进去之后会黑屏/蓝屏

xrdp连接后平面始终为黑色,首先打开 /etc/xrdp/startwm.sh 文件

sudo vim /etc/xrdp/startwm.sh

添加两行unset,完成以后可以尝试重连一下,注释两行test和exec,再添加一行 gnome-session,如下图所示

unset DBUS_SESSION_BUS_ADDRESS # 新增

unset XDG_RUNTIME_DIR # 新增

if test -r /etc/profile; then

. /etc/profile

fi

#test -x /etc/X11/Xsession && exec /etc/X11/Xsession # 注释

#exec /bin/sh /etc/X11/Xsession # 注释

gnome-session # 新增

完成后重启xrdp即可

sudo service xrdp restart

这个解决方案来自https://blog.csdn.net/taxuebufeng/article/details/141063474

三、从Windows启动桌面版Ubuntu

按住Windows+ R,在运行框中输入mstsc后按回车

在这里插入图片描述

<code>计算机输入localhost:3390用户名输入之前 Ubuntu 设置的用户名后按回车

在这里插入图片描述

下一步选择<code>是

在这里输入Ubuntu的账户和密码并点击OK

在这里插入图片描述

在上一步之后可能会有短暂的黑屏,别怕!这不是配置没成功,稍微等待一下就可以看到下面这个图片啦,到此为止说明桌面环境已经成功配置并且可以正常进入啦!

在这里插入图片描述

四、安装CUDA

4.1 下载安装CUDA

安装cuda比较简单,进入官网,选择自己需要的版本,按照命令运行即可,这里以<code>CUDA 12.1为例

CUDA Toolkit Archive | NVIDIA Developer

在这里插入图片描述

按照官方给的流程走即可

<code>wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin

sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600

wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda-repo-wsl-ubuntu-12-1-local_12.1.0-1_amd64.deb

sudo dpkg -i cuda-repo-wsl-ubuntu-12-1-local_12.1.0-1_amd64.deb

sudo cp /var/cuda-repo-wsl-ubuntu-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/

sudo apt-get update

sudo apt-get -y install cuda

4.2 配置环境变量

打开~/.bashrc

sudo vim ~/.bashrc

在文件末尾添加如下内容:

export CUDA_HOME=/usr/local/cuda

export PATH=/usr/local/cuda/bin:$PATH

export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

测试一下:

在这里插入图片描述

五、安装cuDNN

5.1 下载安装cuDNN

进入官网进行下载,选择匹配自己cuda版本,这里以<code>8.9.5版本为例

cuDNN Archive | NVIDIA Developer

在这里插入图片描述

5.2 安装和测试

解压文件,并将其放入cuda对应的文件中

<code>tar -xvf cudnn-linux-x86_64-8.9.5.30_cuda12-archive.tar.xz

sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include

sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64

sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

测试一下

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

在这里插入图片描述

之前浏览过但是各种报错的其他教程链接

<code>https://blog.csdn.net/m0_60171828/article/details/138376726

https://blog.csdn.net/wang_dongjian/article/details/141294317

https://blog.csdn.net/yellow_hill/article/details/128526709

https://blog.csdn.net/zhouzhiwengang/article/details/139729949

https://stackoverflow.com/questions/61860208/running-graphical-linux-desktop-applications-from-wsl-2-error-e233-cannot-op

https://avivarma1.medium.com/gnome-desktop-on-wsl-2-using-ubuntu-db77635ed2aa

https://hackmd.io/@JYU/B1zmv1MCU

https://askubuntu.com/questions/1405438/how-do-you-run-x-org-and-gnome-on-wsl

https://www.makeuseof.com/tag/linux-desktop-windows-subsystem/#:%7E:text=Windows%20Subsystem%20for%20Linux%20(WSL,install%20and%20run%20Linux%20software

https://bbs.archlinux.org/viewtopic.php?id=273750

https://askubuntu.com/questions/1481183/xf86enableio-failed-to-enable-i-o-ports-0000-03ff-operation-not-permitted

https://unix.stackexchange.com/questions/478742/error-when-trying-to-use-xorg-only-console-users-are-allowed-to-run-the-x-serve

https://stackoverflow.com/questions/60984627/xfce4-session-cannot-connect-display-error



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。