目录
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
本文主要参照这个教程,但是需要使用这个链接和这个链接作为补丁,否则用远程桌面链接之后会一直黑屏/蓝屏。
作者注:
如果读者之前安装失败了,可以去最后面这里搜索一下里面是否有你之前看过的教程,本人亲测都不太好用。
软硬件环境:
OS: Windows 11 家庭中文版 23H2 22631.4037WSL 版本: 2.3.17.0内核版本: 5.15.153.1-2WSLg 版本: 1.0.64MSRDC 版本: 1.2.5326Direct3D 版本: 1.611.1-81528511DXCore 版本: 10.0.26100.1-240331-1435.ge-releaseCPU:Intel Core i9-14900HXGPU:NVIDIA GeForce RTX 4060 Laptop GPU
一、在Windows上安装Linux子系统
第一步没什么坑,可以直接参照这个教程,直到安装好系统,出现这个界面,记得更新wsl
版本就行,而且要下载22.04版本的Ubuntu,原教程是22.04:
二、在子系统Ubuntu22.04上安装桌面环境
2.1 更换国内镜像源(以阿里源为例)
先备份原来的软件源(虽然大概不会用到),之后删光当前软件源内的内容,再添加进新的内容。
# 备份原来的软件源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 multiversedeb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
如果想用清华源,就粘贴下面的内容:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiversedeb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiversedeb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiversedeb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiversedeb-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 1
之类的一行,则需要按照下面这个流程先安装systemctl
# 其他教程提到的 systemctl 链接,但新版本的 wsl2 不需要安装这个git clone https://github.com/DamionGans/ubuntu-wsl2-systemd-script.gitcd ubuntu-wsl2-systemd-scriptvim enter-systemd-namespace
把这两行的参数从-a
改成-m -p
,之后保存即可
最后进行安装
bash ubuntu-wsl2-systemd-script.sh
安装之后重启wsl,重新进来之后输入systemctl
应该就有下图的输出了
exitwsl --shutdownsystemctl
https://github.com/microsoft/WSL/discussions/9350
2.3 安装必要的依赖-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分钟内能完事。
这时候我们先回到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/profilefi#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
后按回车
计算机
输入localhost:3390
,用户名
输入之前 Ubuntu 设置的用户名后按回车
下一步选择是
在这里输入Ubuntu的账户和密码并点击OK
在上一步之后可能会有短暂的黑屏,别怕!这不是配置没成功,稍微等待一下就可以看到下面这个图片啦,到此为止说明桌面环境已经成功配置并且可以正常进入啦!
四、安装CUDA
4.1 下载安装CUDA
安装cuda比较简单,进入官网,选择自己需要的版本,按照命令运行即可,这里以CUDA 12.1
为例
CUDA Toolkit Archive | NVIDIA Developer
按照官方给的流程走即可
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pinsudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda-repo-wsl-ubuntu-12-1-local_12.1.0-1_amd64.debsudo dpkg -i cuda-repo-wsl-ubuntu-12-1-local_12.1.0-1_amd64.debsudo cp /var/cuda-repo-wsl-ubuntu-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/sudo apt-get updatesudo apt-get -y install cuda
4.2 配置环境变量
打开~/.bashrc
sudo vim ~/.bashrc
在文件末尾添加如下内容:
export CUDA_HOME=/usr/local/cudaexport PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
测试一下:
五、安装cuDNN
5.1 下载安装cuDNN
进入官网进行下载,选择匹配自己cuda版本,这里以8.9.5
版本为例
cuDNN Archive | NVIDIA Developer
5.2 安装和测试
解压文件,并将其放入cuda对应的文件中
tar -xvf cudnn-linux-x86_64-8.9.5.30_cuda12-archive.tar.xzsudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/includesudo 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
之前浏览过但是各种报错的其他教程链接
https://blog.csdn.net/m0_60171828/article/details/138376726https://blog.csdn.net/wang_dongjian/article/details/141294317https://blog.csdn.net/yellow_hill/article/details/128526709https://blog.csdn.net/zhouzhiwengang/article/details/139729949https://stackoverflow.com/questions/61860208/running-graphical-linux-desktop-applications-from-wsl-2-error-e233-cannot-ophttps://avivarma1.medium.com/gnome-desktop-on-wsl-2-using-ubuntu-db77635ed2aahttps://hackmd.io/@JYU/B1zmv1MCUhttps://askubuntu.com/questions/1405438/how-do-you-run-x-org-and-gnome-on-wslhttps://www.makeuseof.com/tag/linux-desktop-windows-subsystem/#:%7E:text=Windows%20Subsystem%20for%20Linux%20(WSL,install%20and%20run%20Linux%20softwarehttps://bbs.archlinux.org/viewtopic.php?id=273750https://askubuntu.com/questions/1481183/xf86enableio-failed-to-enable-i-o-ports-0000-03ff-operation-not-permittedhttps://unix.stackexchange.com/questions/478742/error-when-trying-to-use-xorg-only-console-users-are-allowed-to-run-the-x-servehttps://stackoverflow.com/questions/60984627/xfce4-session-cannot-connect-display-error