当前位置: 首页 > news >正文

【WSL2】 Ubuntu20.04 GUI图形化界面 VcXsrv ROS noetic Vscode 主机代理 配置

【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 的基础配置
  • 安装并配置 VSCode
  • 主机代理
    • 配置 Blash
    • 在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可视化

整体思路

  1. 配置 Win11 环境并安装 WSL2
  2. 安装 VcXsrv 并配置 WSL2 的 GUI 界面
  3. 安装并配置 ROS Noetic
  4. 安装并配置 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

安装并配置 VSCode

该部分内容建议参考:开始通过适用于 Linux 的 Windows 子系统使用 Visual Studio Code

安装 VSCode

通过在 Windows 中安装 VSCode,并使用 WSL 扩展,直接在 Windows 上操作 WSL 中的项目

VSCode安装页
在这里插入图片描述
ps:当在安装过程中系统提示“选择其他任务”时,请务必选中“添加到 PATH”选项,以便可以使用代码命令在 WSL 中轻松打开文件夹。

安装 WSL 拓展

安装 Remote Development 拓展WSL拓展
在这里插入图片描述
在这里插入图片描述
重启电脑后,您可以在 WSL 中使用 code . 命令,直接打开 Windows 本地的 VSCode 进行 Ubuntu 环境中的开发

主机代理

该部分内容可以参考:WSL2使用Blash代理

在配置 WSL 使用主机代理时,建议关闭防火墙,或者确保防火墙允许访问主机代理的端口。很多连接问题通常是由于防火墙阻止了端口访问引起的。如果无法正常连接主机代理,请检查防火墙设置。

配置 Blash

在这里插入图片描述

在wsl中修改环境变量

  1. 打开配置文件
nano ~/.bashrc
  1. 添加代理地址到环境变量
export https_proxy="http://<hostip>:7890"
export http_proxy="http://<hostip>:7890"

hostip 处填写你的 Windows 主机的 IP 地址

  1. 激活修改后的环境变量
source ~/.bashrc
  1. 测试能否连接到 Google
wget google.com

如果出现以下图示所示的情况,则说明代理配置成功
在这里插入图片描述

常见问题

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 渲染
在这里插入图片描述

重新测试

在这里插入图片描述
问题解决!!!


http://www.mrgr.cn/news/92282.html

相关文章:

  • Redis|持久化
  • 【复习】Redis
  • 【leetcode hot 100 1】两数之和
  • 2025-02-23 学习记录--C/C++-PTA 7-28 猴子选大王
  • 【MySQL】基础篇
  • Web刷题之PolarDN(中等)
  • IO/网络IO基础全览
  • 本地VSCode远程连wsl2中的C++环境的开发配置指南
  • 【DeepSeek】-macOS本地终端部署后运行DeepSeek如何分析图片
  • MySQL数据库连接池泄露导致MySQL Server超时关闭连接
  • EasyExcel 实践案例:打印工资条
  • 基于SpringBoot的“流浪动物救助系统”的设计与实现(源码+数据库+文档+PPT)
  • TLS与自签名证书的创建、作用、用到的工具等知识的介绍
  • Remainder Problem CF1207F
  • Python Django系列—入门实例
  • 垃圾回收算法
  • 【前端】Axios AJAX Fetch
  • 【NLP 23、预训练语言模型】
  • git 命令 设置别名
  • 代码随想录算法训练营第九天| 151.翻转字符串里的单词、右旋转字符串 、28. 实现 strStr()、459.重复的子字符串、字符串总结