windows wsl linux环境下搭建 Genesis 引擎开发环境

1 前言

  由于Genesis目前不支持在Windows上开发,只支持仿真,不支持渲染。所以就考虑在linux上进行开发环境的配置。而当前主流方案是在windows上使用wsl进行linux的开发,基本已经弃用了VMware方案。因为wsl是微软自己开发的在windows上使用linux的环境,效率比VMware要高的多。但相应的,linux的配置也很复杂。就本次搭建Genesis的开发环境,作者也是参考了很多篇博文,以及不停的问ChatGPT,最终才完成了Genesis开发环境的配置。可以说整个过程能劝退80%的开发人员,因为太复杂了。基于此,作者吐血整理了自己配置环境的整个过程,希望对后来者有所帮助。
  本文所有环境版本:

WSL:2
Ubuntu:22.04
CUDA:12.4
conda:24.11.1
Pytorch:2.5.1
Genesis:0.x latest
NVIDIA Driver:566.36
Python:3.9.21

写在最前面: 为了确保你的环境是WSL2,最好先在windows cmd里执行以下命令

wsl --update
wsl -v
wsl --shutdown

确保WSLg(windows subsystem linux gui)可用,否则看不到最终的渲染界面。
在这里插入图片描述

如果升级完还是看不到版本信息,可以手动下载wsl安装,地址为https://github.com.microsoft/WSL/release/2.3.26/wsl.2.3.26.0.x64.msi,来自群里小伙伴反馈,感谢。

2 Windows启用Linux和虚拟机平台




如果提示了重启就重启,没提示就不需要

3 安装Ubuntu



进入linux前我们需要在cmd中执行以下命令来切换到wsl2版本,执行完毕之后再进入Ubuntu

wsl --set-default-version 2

4 下载CUDA离线安装包(deb方式和runfile方式二选一,本文选择runfile方式)

CUDA官网下载安装包备用

https://developer.nvidia.com/cuda-12-4-1-download-archive?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=runfile_local


选择好版本之后,直接浏览器里访问后面的下载连接,让浏览器后台下载着,整个过程很慢,我们先回到Ubuntu操作。

5 配置Ubuntu

首先就是要配置Ubuntu的数据源,因为接下来我们要开始更新系统内的各种依赖包了,默认地址太慢

sudo vi /etc/apt/sources.list

i键进入编辑模式,修改后,按 ESC 键退出编辑模式,输入:wq保存并退出。
这里使用中科大的源,将前四个默认地址都换成 https://mirrors.ustc.edu.cn/ubuntu/,保存之后,我们执行下面四个命令来安装环境

sudo apt-get update
sudo apt-get upgrade
sudo apt install build-essential gcc g++ -y
sudo apt install dkms build-essential -y

6 安装CUDA

现在我们将已经下载好的cuda安装包拷贝到Ubuntu的某一路径下

Ubuntu的终端进入到这个路径下执行安装命令

sudo sh cuda_12.4.1_550.54.15_linux.run



输入accept 然后回车

选中 install 然后回车,等待安装完成

看到这句话就表示安装成功了。接下刷新一下环境变量,先查看一下use/local路径下有没有cuda的文件夹

有就可以继续配置了,没有就说明安装失败了,重新安装吧。现在Ubuntu的终端输入以下命令

vim ~/.bashrc

然后新增两行内容,注意:版本号要该成你自己的版本号,我的是cuda-12.4,然后保存退出。

export PATH=/usr/local/cuda-12.4/bin:$PATH

export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH

接着刷新环境,并查看cuda信息

source ~/.bashrc
nvcc -V

如果出现了CUDA的信息,说明就安装配置OK了。

7 安装conda

执行以下命令来安装conda

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh

按住回车,直到询问yes/no时输入yes,回车,询问安装位置,使用默认位置,直接回车即可。

继续回车,完成安装

输入以下命令验证是否安装成功

source ~/.bashrc
conda --version

如果出现了版本信息就说明安装成功了,如果是conda: command not found,则需要再次编辑.bashrc,新增一行

export PATH=/root/miniconda3/bin:$PATH


配置conda镜像地址

vi ~/.condarc

粘贴地址,保存。

channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
  - defaults
show_channel_urls: true
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

8 安装Pytorch

先使用conda创建Python环境,然后确保激活了这个环境

conda create -n torch python=3.9
conda activate torch


接下就可以安装Pytorch了,来到Pytorch的官网选择好版本信息

https://pytorch.org/get-started/locally


默认安装命令是

conda install pytorch torchvision torchaudio pytorch-cuda=12.4 -c pytorch -c nvidia

这里有个小坑,Pytorch现在最高只支持到cuda12.4,所以如果你装了cuda12.6的话,也是无用的。因为上面的命令下载速度太慢了,我们切换到清华的数据源来进行安装,耐心等待完成。

conda install pytorch torchvision torchaudio pytorch-cuda=12.4 -c pytorch -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/

9 安装Genesis

conda activate torch
pip install genesis-world

10 vscode连接linux torch环境

vscode插件中搜索wsl进行插件安装

点击左下角打开wsl连接界面,选择 使用发行版连接到WSL

选择打开文件夹,选择自己的项目路径


Ctrl+Shift+P,选择Python解释器,选择我们之前使用conda创建的torch环境

然后运行右键运行hello_genesis.py


重要 重要 重要的事情说三遍:wsl环境跑genesis,请先务必按照教程一步一步走完,顺序不要乱,配置不要漏,否则有很大几率出不来渲染界面。最后还要在Ubuntu里执行 xeyes、glxgears两条命令来检测一下自己的OpenGL环境有没有问题。xeyes出现一对眼睛,glxgears出现齿轮动画才表示OpenGL环境正常。
在这里插入图片描述
在这里插入图片描述

11 问题列表

11.1 libGL error: failed to load driver: swrast

libGL error: MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so,这个错误是由于缺少libgl1-mesa-dri导致的

解决方案:
1.安装libgl1-mesa-dri
2.创建目标目录(如果不存在)
3.创建一个符号链接,将 /usr/lib/dri/swrast_dri.so 指向实际的位置 /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so

sudo apt install libgl1-mesa-dri
sudo mkdir -p /usr/lib/dri
sudo ln -s /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so /usr/lib/dri/swrast_dri.so

11.2 libcuda.so lib not found


解决方案:

export LD_LIBRARY_PATH=/usr/lib/wsl/lib:$LD_LIBRARY_PATH

11.3 pyglet.gl.ContextException: Could not create GL context

解决方案:

conda install -c conda-forge libstdcxx-ng

11.4 OpenGL.error.Error: Attempt to retrieve context when no valid context

解决方案1:
修改python文件,在 import genesis之前导入os,如下:

import os
os.environ['PYOPENGL_PLATFORM'] = 'glx'
import genesis as gs

gs.init(backend=gs.cuda)

scene = gs.Scene()

解释:glxwsl OpenGL的一个实现方案,macOS 用的 'cocoa'、'aqua',嵌入式系统用的'egl',离屏渲染用的'osmesa'

解决方案2:

sudo add-apt-repository ppa:kisak/kisak-mesa
sudo apt update
sudo apt upgrade
export LIBGL_ALWAYS_INDIRECT=0

11.5 function ‘glGetUniformLocation’ not found

解决方案:目前Genesis还不支持在windows上渲染,改用wsl linux环境吧

11.6 CUDA Error CUDA_ERROR_NO_DEVICE

解决方案:CUDA环境被破坏了,重新安装CUDA,如果还不行,重新安装Ubuntu

11.7 CMake Error at src/apps/CMakeLists.txt

解决方案:以下命令任意一条命令执行即可

pip install -e “.[render]”
or
pip install “pybind11[global]”

11.8 c++: fatal error: Killed signal terminated program cc1plus

解决方案:多执行几次cmake --build build -j $(nproc),LuisaRender在构建时可以累积的。

11.9 No module named ‘LuisaRenderPy’

解决方案1:将编译好的LuisaRenderPy整个文件夹拷贝到pythonsite-packages路径下,命令为:

cp -r genesis/ext/LuisaRender/ /root/miniconda3/envs/torch/lib/python3.9/site-packages/genesis/ext

解决方案2:创建符号链接,将site-packages/genesis/ext/LuisaRenderPy映射到genesis/ext/LuisaRender/路径,命令为:

SITE_PACKAGES=$(python -c “import site; print(site.getsitepackages()[0])”)
ln -s genesis/ext/LuisaRender “$SITE_PACKAGES/genesis/ext/LuisaRender”

最后验证一下符号链接是否创建成功了,执行以下命令,如果输出了正确的路径,就成功了:

ls -l $SITE_PACKAGES/genesis/ext/LuisaRender

11.10 ModuleNotFoundError: No module named ‘open3d’

解决方案:

pip install open3d
or
conda install -c conda-forge open3d

11.11 Validation failure (0): b’active samplers with a different type refer to the same texture image unit’

解决方案:先试11.4,再试11.12

11.12 NameError: name ‘trimesh’ is not defined

解决方案1:注释掉shaders.py的检测行(群里小伙伴自己探索出来的)
在这里插入图片描述
解决方案2:安装ffmpeg

sudo add-apt-repository ppa:jonathonf/ffmpeg-4
sudo apt-get update
sudo apt-get install ffmpeg
ffmpeg -version

11.13 [ERROR] No display detected. Use “show viewer=false” for headless mode.

在这里插入图片描述
解决方案:
wsl的环境有问题,首先在windows cmd中执行以下命令,确保wsl环境没问题了

wsl --update
wsl -v
wsl --set-default-version 2
wsl --shutdown

然后在Ubuntu里执行以下两条命令,能看到一对眼睛和一个齿轮动画表示成功

yexes
glxgears

重启windows,再运行HelloGenesis,如果以上都执行完毕了还不行,那就说明wsl的环境彻底被破坏了,百度自行搜索重新安装wsl2,win10安装wsl2参考微软官方文档链接

https://learn.microsoft.com/zh-cn/windows/wsl/install-manual#step-4—download-the-linux-kernel-update-package

12 总结

  本文主要讲解了在windows上进行Genesis开发环境的搭建。从零开始逐步介绍了安装Ubuntu、CUDA、Pytorch、conda、Genesis等等。以及讲解了整个开发环境搭建过程中遇到的各种问题,整个过程相当艰难,Ubuntu环境折腾坏了好多次,各种配置重新安装了一遍又一遍。不过最终还是皇天不负有心人,成功的跑起来了Genesis。每当此时,一股无以言说的感觉就会席卷全身,我骄傲,哈哈哈。本文就介绍了这里了,顺道说一句,作者创建了一个Genesis群,有想加的同学可以公众号回复Genesis交流群,回见~

评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AIGIS.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值