【WSL2】 Ubuntu20.04 GUI图形化界面 VcXsrv ROS noetic Vscode 配置
- 前言
- 整体思路
- 安装 WSL2
- Windows 环境
- 升级为 WIN11 专业版
- 启用window子系统及虚拟化
- 安装WSL2
- 通过 Windows 命令提示符安装 WSL
- 安装所需的 Linux 发行版(如 Ubuntu 20.04)
- 查看和设置 WSL 版本
- 配置 WSL2 的 GUI 图形界面
- 更新 WSL 并重启
- 安装 VcXsrv
- 配置 VcXsrv
- VcXsrv 参数配置
- 设置显示环境变量
- 安装并配置 ROS Noetic
- ROS 的换源与安装
- ROS 的测试
- ROS 的基础配置
- 安装 VS Code 和 WSL 扩展
- 常见问题
- VcxSrv 报错 qt.qpa.xcb: QXcbConnection: XCB error: 147 (Unknown), sequence: 178, resource id: 0, major code: 141 (Unknown), minor code: 20 Segmentation fault
前言
本文基于 Win11专业版,实现了在 WSL2 环境下配置 Ubuntu 20.04,支持Rviz Gazebo等图形化界面应用运行,安装并配置 ROS Noetic、VSCode
参考资料:
- 如何使用 WSL 在 Windows 上安装 Linux
- 在适用于 Linux 的 Windows 子系统上运行 Linux GUI 应用
- 开始通过适用于 Linux 的 Windows 子系统使用 Visual Studio Code
- 通过 VcXsrv 在 WSL2 上使用图形化界面
- Install ROS Noetic on WSL2
- wsl rviz可视化
整体思路
- 配置 Win11 环境并安装 WSL2
- 安装 VcXsrv 并配置 WSL2 的 GUI 界面
- 安装并配置 ROS Noetic
- 安装并配置 VSCode,启用 WSL 扩展
安装 WSL2
Windows 环境
升级为 WIN11 专业版
安装 WSL2 前,请确保你的 Windows 系统为 Win11 专业版,因为只有专业版及以上版本支持启用 Windows 虚拟化功能,缺乏该功能会影响 WSL2 的正常配置和运行
升级到 Win11 专业版的方法可以参考:小白升级–Win11家庭版到专业版
ps:如果显示激huo密钥失效,可以尝试使用 2025年Windows 10/11永久激huo码汇总 中的激huo密钥,或者在网上搜索并多尝试
启用window子系统及虚拟化
搜索 启用或关闭Windows功能
勾选 Hyper-V、适用于Linux的Windows子系统 、虚拟机平台
点击确认后重启
安装WSL2
建议参考微软官方文档:如何使用 WSL 在 Windows 上安装 Linux
通过 Windows 命令提示符安装 WSL
wsl --install
安装所需的 Linux 发行版(如 Ubuntu 20.04)
法一:命令行安装
wsl --install Ubuntu-20.04
法二:Microsoft Store 微软商店安装
安装你所需要的 Ubuntu版本,第一次进入需要设置 Ubuntu 的账户名和密码
ps: 开启代理可能会导致无法打开微软商店。关闭代理后,访问微软商店时速度较慢,请耐心等待。
查看和设置 WSL 版本
查看当前 WSL 版本
wsl --list --verbose
如果当前版本不是 WSL2,可以通过 PowerShell 设置 WSL 默认版本为 WSL2
设置默认 WSL 版本
wsl --set-default-version 2
此部分可以参考微软官方文档中的将版本从 WSL 1 升级到 WSL 2章节
)
配置 WSL2 的 GUI 图形界面
此部分可以参考微软官方文档中的 在适用于 Linux 的 Windows 子系统上运行 Linux GUI 应用 章节
更新 WSL 并重启
在 PowerShell 中输入 WSL 更新命令
wsl --update
需要重启 WSL,更新才能生效
wsl --shutdown
安装 VcXsrv
在 Windows 上安装 X-Server VcXsrv,用于接收和显示 WSL 中的图形界面应用。
下载VcXsrv 建议安装 1.20.14.0 版本
配置 VcXsrv
VcXsrv 参数配置
打开 Xlaunch,进行 VcXsrv 的配置
PS:最后点击 Save Configuration 保存配置,之后可以直接双击配置文件,按照保存的配置快速启动 VcXsrv
设置显示环境变量
打开 .bashrc
文件
sudo nano ~/.bashrc
在文件末尾添加以下内容:
export DISPLAY=xx.xx.xx.xx:0.0
其中 xx.xx.xx.xx 是您 Windows 主机的 IPv4 地址。您可以在 Windows 中通过 PowerShell 使用 ipconfig 命令来查找该地址
重新加载 ~/.bashrc
配置文件
source ~/.bashrc
安装并配置 ROS Noetic
该部分建议参考:Install ROS Noetic on WSL2
ROS 的换源与安装
更换 ROS 源为 ustc 中科大源
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
导入 ROS 的公钥
curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -
更新软件包索引
sudo apt update
安装 ROS Noetic Desktop 和 Python3 rosdep
sudo apt install -y ros-noetic-desktop python3-rosdep
初始化 rosdep
sudo rosdep init
更新 rosdep
rosdep update
将 ROS 环境变量的自动加载添加到 .bashrc
文件中
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
ROS 的测试
此部分可以参考Install ROS Noetic on WSL2中的Testing Installation of ROS
测试:
cd
roscore
ROS 的基础配置
创建工作空间
mkdir -p catkin_ws/src
构建工作空间
cd ~/catkin_ws
catkin_make
安装 VS Code 和 WSL 扩展
该部分内容建议参考:开始通过适用于 Linux 的 Windows 子系统使用 Visual Studio Code
安装 VSCode
通过在 Windows 中安装 VSCode,并使用 WSL 扩展,直接在 Windows 上操作 WSL 中的项目
VSCode安装页
ps:当在安装过程中系统提示“选择其他任务”时,请务必选中“添加到 PATH”选项,以便可以使用代码命令在 WSL 中轻松打开文件夹。
安装 WSL 拓展
安装 Remote Development 拓展和 WSL拓展
重启电脑后,您可以在 WSL 中使用 code .
命令,直接打开 Windows 本地的 VSCode 进行 Ubuntu 环境中的开发
常见问题
VcxSrv 报错 qt.qpa.xcb: QXcbConnection: XCB error: 147 (Unknown), sequence: 178, resource id: 0, major code: 141 (Unknown), minor code: 20 Segmentation fault
该部分可参考文章:wsl rviz可视化
问题原因
该问题大概率与 OpenGL 配置和兼容性相关。WSL2 默认不支持硬件加速 OpenGL,导致图形渲染时可能出现错误。缺少正确的 OpenGL 库或驱动、硬件加速设置不当、或者 VcXsrv 的配置问题,都可能导致 Qt 应用程序在与图形界面交互时崩溃。此外,某些 OpenGL 功能和库(如 libGL 或 libGLU)可能未正确安装或配置,从而影响图形渲染的稳定性和性能
问题解决
编辑 .bashrc
文件
sudo nano ~/.bashrc
在文件末尾添加以下内容:
export LIBGL_ALWAYS_INDIRECT=0
如果遇到后续报错,可以尝试将其更改为
export LIBGL_ALWAYS_INDIRECT=1
在 VcXsrv 的 XLaunch 配置程序中,在“附加参数”选项框中添加 -nowgl
,以禁用硬件加速的 OpenGL 渲染
重新测试
问题解决!!!