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

重新测试

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

点云 Ubuntu20.04-VScode已解决fatal error: Eigen/StdVector: 没有那个文件或目录

原因&#xff1a;路径问题 。 解决&#xff1a;解决方法&#xff1a; 使用下面命令将eigen的安装路径映射到/usr/include路径下:pcl按照z方向渲染点云&#xff0c;但是CMakelists.txt编译找不到pcl/io/pcd_io.h: 没有那个文件或目录&#xff0c;Eigen找不到&#xff0c;open3d…

Redis 面试

Redis 使用场景有哪些&#xff1f; 缓存&#xff1a;缓存热点数据&#xff0c;如数据库查询结果、页面片段等&#xff0c;减少数据库压力&#xff0c;提高系统响应速度。 分布式锁&#xff1a;利用 Redis 的原子操作实现分布式锁&#xff0c;保证在分布式环境下同一时刻只有一…

228页PPT丨制造业核心业务流程优化咨询全案(战略营销计划生产研发质量),附核心系统集成架构技术支撑体系,2月26日资料已更新

一、订单全生命周期管理优化 1. 智能订单承诺&#xff08;CTP&#xff09;系统 ●集成ERP/APS/MES数据&#xff0c;实时计算产能可视性 ●应用蒙特卡洛模拟评估订单交付风险 ●建立动态插单评估模型&#xff08;基于边际贡献与产能占用系数&#xff09; 2. 跨部门协同机制…

mysql5.7离线安装及问题解决

这次主要是讲解mysql5.7离线安装教程和一主一从数据库配置 1、去官网下载自己对应的mysql https://downloads.mysql.com/archives/community/2、查看需要安装mysql服务器的linux的类型 uname -a第二步看一下系统有没有安装mysql rpm -qa|grep -i mysql3、上传安装包 用远程…

AI人工智能机器学习之聚类分析

1、概要 本篇学习AI人工智能机器学习之聚类分析&#xff0c;以KMeans、AgglomerativeClustering、DBSCAN为例&#xff0c;从代码层面讲述机器学习中的聚类分析。 2、聚类分析 - 简介 聚类分析是一种无监督学习的方法&#xff0c;用于将数据集中的样本划分为不同的组&#xff…

springai系列(二)从0开始搭建和接入azure-openai实现智能问答

文章目录 前言1.从0开始搭建项目2.进入微软openai申请key3.配置application.yaml4.编写controller5.测试源码下载地址总结 前言 之前使用openai的官网的api需要科学上网&#xff0c;但是我们可以使用其他的代理间接实现使用chatgpt的相关模型&#xff0c;解决这个问题。比如:本…

2020年蓝桥杯Java B组第二场题目+部分个人解析

#A&#xff1a;门牌制作 624 解一&#xff1a; public static void main(String[] args) {int count0;for(int i1;i<2020;i) {int ni;while(n>0) {if(n%102) {count;}n/10;}}System.out.println(count);} 解二&#xff1a; public static void main(String[] args) {…

DeepSeek 202502 开源周合集

DeepSeek 本周的开源项目体现了其在 AI 技术栈中的深厚积累&#xff0c;从硬件协同优化&#xff08;FlashMLA&#xff09;、通信库&#xff08;DeepEP&#xff09;、核心计算&#xff08;DeepGEMM&#xff09;到推理模型&#xff08;DeepSeek-R1&#xff09;&#xff0c;覆盖了…

Ubuntu2204下使用NVIDIA GeForce RTX 4090进行DeepSeek-R1-Distill-Llama-8B模型微调

Ubuntu2204下使用NVIDIA GeForce RTX 4090进行DeepSeek-R1-Distill-Llama-8B模型微调 环境准备创建Python微调环境准备数据集准备模型文件 模型微调模型预测原始模型预测微调模型预测 使用unsloth&#xff0c;可以方便地对大模型进行微调。以微调DeepSeek-R1-Distill-Llama-8B为…

DeepSeek 开源狂欢周(二)DeepEP深度技术解析 | 解锁 MoE 模型并行加速

在大模型时代&#xff0c;Mixture-of-Experts (MoE) 模型凭借其强大的容量和高效的计算能力&#xff0c;成为研究和应用的热点。然而&#xff0c;MoE 模型的训练和推理面临着巨大的专家并行通信挑战。近日&#xff0c;DeepSeek 开源了 DeepEP 项目&#xff0c;为解决这一难题提…

(IDE接入DeepSeek)简单了解DeepSeek接入辅助开发与本地部署建议

重点&#xff1a;IDE接入DeepSeek是否收费 收费&#xff01; 本文章主要是为了给小白避雷&#xff0c;目前很多文章告诉大家怎么接入DeepSeek&#xff0c;但是并未告知大家是否收费。如果是想白嫖的&#xff0c;就可以不用去接入了。 一、引言 最近爆火的AI人工智能工具DeepSe…

FPGA开发时序图绘制

开始的时候画时序图都是拿 visio 硬连&#xff0c;但是那个线宽太难统一了&#xff0c;丑不拉几的&#xff0c;遂学习 waveform 语法使用代码来画时序图。 开始 Vscode 中安装 waveform render 或者在 GitHub 搜索 wavedrom 安装即可。由于 vscode 是我常用的编辑器&#xff…

windows下安装pyenv+virtualenv+virtualenvwrapper

1、下载pyenv 进入git官网&#xff0c;打包下载zip到本地 2、解压到安装目录 解压下载好的pyenv-win-master.zip到自己的安装目录&#xff0c;如D:\Program Files 3、配置环境变量 右击桌面 此电脑 --> 属性 --> 高端系统设置 --> 环境变量 --> 新建系统变量…

自动化设备对接MES系统找DeepSeek问方案

项目需要现场的PLC设备HTTP协议JSON格式的方式对接MES系统平台&#xff0c;于是试了一下&#xff1a; 找到的相关资源链接在这里。

李代数(Lie Algebras)与Attention:深度学习中的数学之美

李代数与Attention&#xff1a;深度学习中的数学之美 引言 作为一名深度学习研究者&#xff0c;您一定对Transformer模型和其中的注意力机制&#xff08;Attention&#xff09;不陌生。Attention通过查询&#xff08;Query&#xff09;、键&#xff08;Key&#xff09;和值&a…

OpenCV给图像添加噪声

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 如果你已经有了一张干净的图像&#xff0c;并希望通过编程方式向其添加噪声&#xff0c;可以使用 OpenCV 来实现这一点。以下是一个简单的例子&a…

vscode下载安装教程(附安装包)vscode图文安装教程最新版

文章目录 一、vscode下载二、vscod安装教程1.启动vscode安装程序&#xff1a;2.应对提示&#xff1a;3.接受协议&#xff1a;4.更改vscode安装路径&#xff1a;5.推进安装vscode&#xff1a;6.创建vscode快捷方式&#xff1a;7.开始安装vscode&#xff1a;8.完成vscode安装&…

深度解读 Chinese CLIP 论文:开启中文视觉对比语言预训练

目录 论文概述1.论文摘要2.论文脑图3.论文创新3.1模型构建3.2训练方法3.3数据构建3.4部署优化 4.模型架构 论文解析1. 引言2. 方法2.1数据说明2.2预训练方法2.2.1模型初始化方法2.2.2两阶段预训练方法 2.3预训练细节2.3.1模型初始化2.3.2第一阶段预训练2.3.3第二阶段预训练2.3.…

【开源】低代码 C++程序框架,Linux多线程程序

大家好&#xff0c;欢迎来到停止重构的频道。 本期介绍我们新的C低代码框架&#xff1a;Bees&#xff0c;用于编写Linux/Unix的多线程程序。 低代码框架一般是不会对C程序下手的&#xff0c;因为C程序一般是比较复杂的程序&#xff0c;光是多线程同步就够头疼的了。 但是我们…

重新审视 ChatGPT 和 Elasticsearch:第 2 部分 - UI 保持不变

作者&#xff1a;来自 Elastic Jeff Vestal 本博客在第 1 部分的基础上进行了扩展&#xff0c;介绍了基于 RAG 的搜索系统的功能齐全的 Web UI。最后&#xff0c;你将拥有一个将检索、搜索和生成过程结合在一起的工作界面&#xff0c;同时使事情易于调整和探索。 不想读完整个内…