环境:ubuntu22.04
防止c盘占用过大,将其迁移到其他盘
导出
wsl --export Ubuntu-22.04 G:\wsl-Ubuntu-22.04.tar
卸载
wsl --unregister Ubuntu-22.04
不知道卸载的名称可以先查看已经安装的
wsl -l -v
导入
wsl --import Ubuntu-22.04 G:\WSL\ubuntu2204 G:\wsl-Ubuntu-22.04.tar --version 2
换源
备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
修改源列表文件
sudo gedit /etc/apt/sources.list
sudo apt update sudo apt upgrade
gazebo黑屏
安装完成gazebo后,打开会出现黑屏,黑屏一会就直接退出。
终端打印信息为
D3D12: Removing Device
后面发现是图形渲染的问题,opengl用不了GPU,所以只能使用cpu版本的opengl。
这里有两种方法:
第一种:
设置控制opengl行为的环境变量
export LIBGL_ALWAYS_SOFTWARE=O
export LIBGL_ALWAYS_SOFTWARE=1
0代表使用GPU
1代表使用CPU
第二种
直接删除wsl下的gpu驱动,这种方法由于wsl每次重新启动都会重新初始化gpu,所以每次开机都要删。
sudo rm -rf /usr/lib/wsl/*
也可以写一个脚本文件
touch rm_gpu.sh
gedit rm_gpu.sh
其中写入
#!/bin/bash
rm -rf /usr/lib/wsl/*
放到主目录下只需要执行该脚本文件
sudo ./rm_gpu.sh
最后,正常启动gazebo等需要gpu和opengl渲染的程序
gz sim
wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。
打开或创建WSL配置文件(位于C:/User/%你的用户名/.wslconfig),并添加以下内容:
[experimental]
autoMemoryReclaim=gradual
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true
然后重启wsl2
ros2 topic list 等命令终端不输出不结束
ros2 topic list --no-daemon