0.前言&参考

为什么要使用win11系统?因为可以直接在Windows 子系统上运行 Linux GUI 应用。
本文为本人在win11下使用wsl2配置ubuntu20.04 + ROS的过程,期间碰到了一些问题,汇总记录成本篇博客。
参考文章:
Win10下使用WSL2安装ROS1并使用独显的方法
Ubuntu 20.04更换下载源详细教程
win11 安装Ubuntu加可视化桌面(最新保姆级教程)

1.开启子系统

打开控制面板-所有控制面板项-程序和功能-启用或关闭Windows功能
勾选
在这里插入图片描述

2.安装Ubuntu20.04

直接在Microsoft Store搜索并下载Ubuntu20.04即可。
第一次启动时输入用户名,注意首字母不要大写。
然后输入两次密码即可,注意输入的时候密码不显示。
安装完成。

3.换源

我们需要换成国内源,例如阿里源、清华源、华为源、中科大源等。
目前推荐的是阿里源和华为源,其中实测华为源速度最高,下面以阿里源为例:
首先编辑镜像源文件:

sudo vim /etc/apt/sources.list

按I开始编辑,将其中的内容更换为

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

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

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

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

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

按esc完成编辑,然后输入:wq保存并退出。
最后更新源,依次输入以下三个命令:

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get upgrade

4.安装ROS

首先添加软件源:

sudo sh -c '. /etc/lsb-release && echo "deb <http://mirrors.ustc.edu.cn/ros/ubuntu/> $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

设置密钥

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

更新并安装,如果在安装中出错了,通常是网络的问题,重新输入以下两个命令即可。

sudo apt update
sudo apt install ros-noetic-desktop-full

5.迁移系统盘

打开PowerShell,终止正在运行的分发或虚拟机:

wsl --shutdown

对需要迁移的分发或虚拟机导出(我安装的版本是Ubuntu-20.04):

wsl --export Ubuntu-20.04 D:\wsl-Ubuntu-20.04

卸载分发版或虚拟机

wsl --unregister Ubuntu-20.04

导入新的分发版或虚拟机:

wsl --import Ubuntu-20.04 新的安装路径 D:\wsl-Ubuntu-20.04 --version 2

此时,可以看一下c盘,发现空间已经空出来了。
接下来需要找回一下账户:

ubuntu2004 config --default-user 用户名

6.安装可视化桌面

首先下载并安装https://sourceforge.net/projects/vcxsrv/
打开XLaunch,选择:“one large window”,Display number设置成0
在这里插入图片描述
下图中,都要选中
在这里插入图片描述

下面这个界面选择save,保存到桌面,以后直接点击这个启动文件进入即可。
在这里插入图片描述
完成后,会出现一个黑色的窗口,保持窗口打开,然后在ubuntu中输入以下命令依次进行安装:

sudo apt-get install ubuntu-desktop unity compizconfig-settings-manager
apt-get install xfce4-terminal
apt-get install xfce4

安装时会有两种桌面给你选择,选择后按Tab并回车确认,继续下载
在这里插入图片描述

下载完成以后重启一下
接着,打开防火墙:
在这里插入图片描述
在这里插入图片描述
确保vcxsrv的两个框都是勾选的
在这里插入图片描述
如果没有发现vcxsrv,需要手动添加,点击
在这里插入图片描述
点击浏览,加入vcxsrv.exe文件,确认后勾选即可。

在ubuntu终端中输入:

sudo vim ~/.bashrc

在文件中添加:

export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 # in WSL 2

保存退出后更新下环境:

source .bashrc

然后,在windows中打开cmd命令行,输入ipconfig查找ip:
在这里插入图片描述
在ubuntu的终端中输入下列代码,稍等即可

export DISPLAY=自己WSL的IP
startxfce4

以后每次需要可视化时均先打开可视化软件,键入以上代码。

在这里插入图片描述
注:如果再次进入桌面时无法连接,可以试试在填写ip的时候填写端口号:0

其它问题:切换到WSL2.0后无法连接到x-server Unable to init server: Could not connect: Connection refused无法显示窗口

当然,我们也可以直接在windows桌面中打开linux gui应用,这也是为什么选择win11的原因,步骤如下:
https://www.doyleturner.net/linux-gui-apps-from-wsl2/

wsl --update
wsl --shutdown

然后重新打开wsl2即可.
打开gedit效果图:
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐