【问题标题】:VcXsrv WSL X server closes unexpectedly. Do I need to disable GPU?VcXsrv WSL X 服务器意外关闭。我需要禁用 GPU 吗?
【发布时间】:2021-01-23 00:16:31
【问题描述】:

我正在尝试使用 pybullet 运行一些代码。我在 Windows 10 上,拥有最新的 vscode,并且我在带有 ubuntu 18.04 LTS 的 vscode 上使用 WSL 远程。我有一个 GTX 2070 显卡。我只是想看看这项工作,过去 3 小时我一直在尝试修复它。

首先,这是我试图在 WSL 中运行的代码:

import numpy as np
import pybullet as pb 
physicsClient = pb.connect (pb.GUI)
#load plane
import pybullet_data
pb.setAdditionalSearchPath(pybullet_data.getDataPath())
planeId = pb.loadURDF('plane.urdf')
#load visual shape
visualShapeId = pb.createVisualShape(
    shapeType=pb.GEOM_MESH,
    fileName='random_urdfs/000/000.obj',
    rgbaColor=None,
    meshScale=[0.1, 0.1, 0.1])
collisionShapeId = pb.createCollisionShape(
    shapeType=pb.GEOM_MESH,
    fileName='random_urdfs/000/000_coll.obj',
    meshScale=[0.1, 0.1, 0.1])
multiBodyId = pb.createMultiBody(
    baseMass=1.0,
    baseCollisionShapeIndex=collisionShapeId, 
    baseVisualShapeIndex=visualShapeId,
    basePosition=[0, 0, 1],
    baseOrientation=pb.getQuaternionFromEuler([0, 0, 0]))

我没有收到任何错误,但 X 服务器窗口会弹出(黑色)并立即关闭。我读到您需要使用 WSL 禁用 GPU,但我害怕弄乱我的 PC。 我只想在需要查看图形/使用 X 服务器时禁用它,而不是所有 WSL 应用程序。

这是我的 bash 脚本中显示的内容:

user@DESKTOP-######:~/program$ python3 openAI.py
pybullet build time: Sep 22 2020 00:54:31
startThreads creating 1 threads.
starting thread 0
started thread 0 
argc=2
argv[0] = --unused
argv[1] = --start_demo_name=Physics Server
ExampleBrowserThreadFunc started
X11 functions dynamically loaded using dlopen/dlsym OK!
X11 functions dynamically loaded using dlopen/dlsym OK!
Creating context
Failed to create GL 3.3 context ... using old-style GLX context
Indirect GLX rendering context obtained
Making context current
GL_VENDOR=NVIDIA Corporation
GL_RENDERER=GeForce RTX 2070 SUPER/PCIe/SSE2
GL_VERSION=1.4 (4.6.0 NVIDIA 451.67)
GL_SHADING_LANGUAGE_VERSION=(null)
pthread_getconcurrency()=0
Version = 1.4 (4.6.0 NVIDIA 451.67)
Vendor = NVIDIA Corporation
Renderer = GeForce RTX 2070 SUPER/PCIe/SSE2
Segmentation fault (core dumped)
user@DESKTOP-######:~/program$

【问题讨论】:

    标签: server linux-kernel ubuntu-18.04 windows-subsystem-for-linux pybullet


    【解决方案1】:

    @Emilio,我已经完成了这项工作,无需对 GPU 进行任何更改,使用以下过程:

    我使用与本教程相同的方式设置 VcXsrv 应用程序:https://jack-kawell.com/2020/06/12/ros-wsl2/ 其中至关重要的是未选中 Native openGL。

    按照教程导出您的 IP 地址,但不要使用“export DISPLAY={your_ip_address}:0.0”,而是转到 VcXsrv 窗口(此时应为空白)并将 :0.0 替换为任意数量的显示给定的。因此,对于 Display DESKTOP-1234AB:1.0,您将输入 'export DISPLAY={your_ip_address}:1.0'

    在linux终端输入:export LIBGL_ALWAYS_INDIRECT=0

    您可以通过输入:glxinfo 来检查这是否已生效 哪个应该打印出来: 直接渲染:是的

    当你运行你的 python 程序时,它应该会在 VcXsrv 窗口中打开。对我来说,没有可见的光标,但我仍然可以与对象进行交互,就好像我确实有光标一样。

    【讨论】:

      猜你喜欢
      • 2021-01-19
      • 1970-01-01
      • 1970-01-01
      • 2019-11-23
      • 1970-01-01
      • 1970-01-01
      • 2019-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多