【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 的基础配置
  • 安装 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可视化

整体思路

  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

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

重新测试

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/23623.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7.建立文件版题库|编写model文件|使用boost split字符串切分(C++)

建立文件版题库 题目的编号题目的标题题目的难度题目的描述,题面时间要求(内部处理)空间要求(内部处理) 两批文件构成第一个:questions.list : 题目列表(不需要题目的内容)第二个:题目的描述,题目的预设置…

LabVIEW中CFURL.llb 工具库说明

CFURL.llb 是 LabVIEW 2019 安装目录下 C:\Program Files (x86)\National Instruments\LabVIEW 2019\vi.lib\Platform\ 路径下的工具库,主要用于处理 LabVIEW 与 URL 相关的操作,涵盖 URL 解析、HTTP 请求发送、数据传输等功能模块,帮助开发者…

网络运维学习笔记 017 HCIA-Datacom综合实验01

文章目录 综合实验1实验需求总部特性 分支8分支9 配置一、 基本配置(IP二层VLAN链路聚合)ACC_SWSW-S1SW-S2SW-Ser1SW-CoreSW8SW9DHCPISPGW 二、 单臂路由GW 三、 vlanifSW8SW9 四、 OSPFSW8SW9GW 五、 DHCPDHCPGW 六、 NAT缺省路由GW 七、 HTTPGW 综合实…

6.✨Python学习价值与优势分析

✨Python 是一种值得深入学习的编程语言,其设计哲学、广泛的应用场景以及强大的社区支持使其成为当今最受欢迎的编程语言之一。以下从多个角度分析为什么 Python 值得深入学习: 1.🦋 简洁易学的语法 Python 以简洁、可读性强著称&#xff0c…

Android Audio其他——数字音频接口(附)

数字音频接口 DAI,即 Digital Audio Interfaces,顾名思义,DAI 表示在板级或板间传输数字音频信号的方式。相比于模拟接口,数字音频接口抗干扰能力更强,硬件设计简单,DAI 在音频电路设计中得到越来越广泛的应用。 一、音频链路 1、模拟音频信号 可以看到在传统的…

Spring AI + Ollama 实现调用DeepSeek-R1模型API

一、前言 随着人工智能技术的飞速发展,大语言模型(LLM)在各个领域的应用越来越广泛。DeepSeek 作为一款备受瞩目的国产大语言模型,凭借其强大的自然语言处理能力和丰富的知识储备,迅速成为业界关注的焦点。无论是文本生…

2.3 变量

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 变量是用来存放某个值的数据,它可以表示一个数字、一个字符串、一个结构、一个类等。变量包含名称、类型和值。在代码中…

LLM大语言模型私有化部署-使用Dify的工作流编排打造专属AI诗词数据分析师

背景 前面的文章通过 Ollama 私有化部署了 Qwen2.5 (7B) 模型,然后使用 Docker Compose 一键部署了 Dify 社区版平台。 LLM大语言模型私有化部署-使用Dify与Qwen2.5打造专属知识库:在 Dify 平台上,通过普通编排的方式,创建了基于…

ESP32S3:参考官方提供的led_strip组件使用 SPI + DMA 方式驱动WS2812 RGB灯的实现思路 (实现各个平台移植使用该方式)

目录 引言使用SPI + DMA 方式实现思路分析1. 查看WS2812的datasheet手册2. 根据官方的led_strip组件的方式,自己手把手实现一遍3.完整的程序(实现霓虹灯效果)引言 参考官方提供的led_strip组件使用 SPI + DMA 方式驱动WS2812 RGB灯的实现思路,只有明白实现的思路,方能将其…

工程师 - VSCode的AI编码插件介绍: MarsCode

豆包 MarsCode MarsCode AI: Coding Assistant Code and Innovate Faster with AI 豆包 MarsCode - 编程助手 安装完成并使能后,会在下方状态栏上显示MarsCode AI。 安装完并重启VSCode后,要使用这个插件,需要注册一下账号。然后授权VSCod…

DPVS-5: 后端服务监控原理与测试

后端监控原理 被动监测 DPVS自带了被动监控,通过监控后端服务对外部请求的响应情况,判断服务器是否可用。 DPVS的被动监测,并不能获取后端服务器的详细情况,仅仅通过丢包/拒绝情况来发觉后端服务是否可用。 TCP session state…

Tag标签的使用

一个非常适合运用在vue项目中的组件:Tag标签。 目录 一、准备工作 1、安装element-plus库 2、配置element-plus库 二、Tag标签入门 1、打开element官网,搜索tag标签 2、体验Tag标签的基础用法 三、Tag标签进阶训练1 1、定义一个数组,…

算法-图-数据结构(邻接矩阵)-BFS广度优先遍历

邻接矩阵广度优先遍历(BFS)是一种用于遍历或搜索图的算法,以下是具体介绍: 1. 基本概念 图是一种非线性的数据结构,由顶点和边组成,可分为无向图、有向图、加权图、无权图等。邻接矩阵是表示图的一种数…

Ryu:轻量开源,开启 SDN 新程

1. Ryu 控制器概述 定位:轻量级、开源的SDN控制器,专为开发者和研究人员设计,基于Python实现。开发者:由日本NTT实验室主导开发,遵循Apache 2.0开源协议。核心理念:简化SDN应用开发,提供友好的…

内容中台架构下智能推荐系统的算法优化与分发策略

内容概要 在数字化内容生态中,智能推荐系统作为内容中台的核心引擎,承担着用户需求与内容资源精准匹配的关键任务。其算法架构的优化路径围绕动态特征建模与多模态数据融合展开,通过深度强化学习技术实现用户行为特征的实时捕捉与动态更新&a…

【odoo18-文件管理】在uniapp上访问odoo系统上的图片

在uniapp上访问odoo系统上的图片 1、以url的形式访问 a:以odoo本身的域名,比如http://127.0.0.1:8069/web/image/product.template/3/image_128?unique1740380422000,这种方式需要解决跨域的问题。 b:以文件服务器的形式&…

DeepSeek掘金——基于DeepSeek-R1构建文档问答机器人

DeepSeek掘金——基于DeepSeek-R1构建文档问答机器人 在这个项目中,我们将结合本地 AI 的隐私与 Deepseek R1 的智能,创建一个完全本地化、推理驱动的问答机器人。 在人工智能 (AI) 日益融入我们日常生活的时代,一个问题仍然处于最前沿:隐私。尽管基于云的 AI 系统功能强大…

计算机毕业设计Hadoop+Spark+DeepSeek-R1大模型民宿推荐系统 hive民宿可视化 民宿爬虫 大数据毕业设计(源码+文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

将maya模型物体材质转化为面材质

将maya模型物体材质转化为面材质,以在导出abc时继承材质信息; 运行一下python代码: import maya.cmds as cmds objListcmds.ls(slTrue) for obj in objList:shapeNodeNamecmds.listRelatives(obj, shapesTrue)sgNodesListcmds.listConnecti…

数据库面试题(基础常考!!!)

在数据库领域,无论是日常开发还是面试场景,都有一些高频且重要的问题需要我们深入理解和掌握。本文将对这些常见面试题进行详细阐述,帮助大家更好地应对面试和实际工作中的挑战。 面试题一:三范式详解 什么是三范式 三范式是关…