我在这个问题上停留了很长一段时间,现在我已经尝试搜索和尝试了一些东西,但我一无所获。我的设置如下:
主持人
linux Distro:Archlinux 内核版本:5.14.2 docker 版本:20.10.8,构建 3967b7d28e nvidia 驱动程序版本:470.63.01-1 nvidia 容器工具包版本:1.5.0-2,禁用 cgroups。amd gpu 驱动程序:xf86-video-amdgpu 21.0.0-1
容器
基础镜像:ubuntu:18.04 命令行:docker run -it --rm --privileged --gpus all -e DISPLAY=$DISPLAY -e XAUTHORITY=~/.Xauthority --network host --volume /tmp/.X11-unix/:/tmp/.X11-unix --volume $XAUTHORITY:/root/.Xauthority gazebo:libgazebo9-bionic gazebo
预期成绩
预期凉亭窗口以硬件加速打开,使用特权访问。
实际结果
使用时--privileged
:
si_init_perfcounters: max_sh_per_se = 2 not supported (inaccurate performance counters)
X Error of failed request: BadAlloc (insufficient resources for operation)
Major opcode of failed request: 149 ()
Minor opcode of failed request: 2
Serial number of failed request: 35
Current serial number in output stream: 36
没有--privileged
并手动指定图形卡--device
:凉亭窗口打开硬件加速并按预期顺利运行。
详细说明
我实际上是在尝试在我创建的ubuntu:18.04
用作基本图像的自定义图像中运行 Gazebo 版本 9。我提到了gazebo:libgazebo9-bionic
,在nvidia/cuda:11.4.1-cudnn8-devel-ubuntu18.04
编写ros:melodic-desktop
dockerfile 时。我什至在同一个基本图像上为凉亭 11 尝试了同样的事情,并得到了与上面相同的问题。而 ubuntu foxy 的完全相同的设置工作顺利。我真的需要使用特权,因为我将在硬件上工作很多时间。请帮助我解决这个问题。多谢
PS 其他 GUI 应用程序(rviz、moveit 等)运行时没有任何问题。我只用凉亭得到这个问题。