docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]]
See original GitHub issueHi there,
I am unable to get either docker or pip installation to run with GUI on a remote server (Ubuntu 18.04.5 LTS).
nvidia-smi
shows
NVIDIA-SMI 450.80.02 Driver Version: 450.80.02 CUDA Version: 11.0
With a GeForce RTX 2080 SUPER
After installing docker according to these direction: https://docs.docker.com/engine/install/ubuntu/
sudo docker run hello-world
runs successfully
I cloned the repository
git clone git@github.com:StanfordVL/iGibson.git cd iGibson ./docker/pull-images.sh
docker images
shows that I have these repositories download:
igibson/igibson-gui latest f1609b44544a 6 days ago 8.11GB
igibson/igibson latest e2d4fafb189b 6 days ago 7.48GB
But sudo ./docker/headless-gui/run.sh
elicits this error:
Starting VNC server on port 5900 with password 112358
please run “python simulator_example.py” once you see the docker command prompt:
docker: Error response from daemon: could not select device driver “” with capabilities: [[gpu]].
sudo ./docker/base/run.sh
also elicits:
docker: Error response from daemon: could not select device driver “” with capabilities: [[gpu]].
One guess is that something is wrong with OpenGL, but I don’t know how to fix it.
If I run glxinfo -B
, I get
name of display: localhost:12.0
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
display: localhost:12 screen: 0
direct rendering: No (If you want to find out why, try setting LIBGL_DEBUG=verbose)
OpenGL vendor string: Intel Inc.
OpenGL renderer string: Intel® Iris™ Plus Graphics 655
OpenGL version string: 1.4 (2.1 INTEL-14.7.8)
Note: I can successfully run xeyes
on the server and have it show up on my local machine.
And glxgears
shows the gears image but the gears are not rotating.
(and returns this error:
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
)
I also tried the steps from the trouble shooting page:
ldconfig -p | grep EGL
yields
libEGL_nvidia.so.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libEGL_nvidia.so.0
libEGL_nvidia.so.0 (libc6) => /usr/lib/i386-linux-gnu/libEGL_nvidia.so.0
libEGL_mesa.so.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libEGL_mesa.so.0
libEGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libEGL.so.1
libEGL.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libEGL.so
And I checked that
/usr/lib/x86_64-linux-gnu/libEGL.so -> libEGL.so.1.0.0
I also do not appear to have any directories such as /usr/lib/nvidia-vvv (I only have /usr/lib/nvidia, /usr/lib/nvidia-cuda-toolkit, and /usr/lib/nvidia-visual-profiler)
Any help would be very much appreciated! Thank you so much.
Issue Analytics
- State:
- Created 3 years ago
- Comments:10
Top GitHub Comments
Okay, I solved the docker issue by installing the nvidia container toolkit (nvidia-docker2) Following this: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \ && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee
/etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker
sudo docker run --rm --gpus all nvidia/cuda:10.0-base nvidia-smi
----> It works (for this example) Now to try iGibsonsudo ./docker/headless-gui/run.sh
It would still be great to figure out why the other install methods don’t work here, though
For the build error, looks like
CUDA_TOOLKIT_ROOT_DIR
is not set, can you set it to where your cuda is located?something like
export CUDA_TOOLKIT_ROOT_DIR=/usr/loca/cuda-<version>
you can also configure the build not to use cuda (this way rendering to tensor is not available, but you can still use most of iGibson features), by changing this line to FALSE:
https://github.com/StanfordVL/iGibson/blob/master/gibson2/render/CMakeLists.txt#L11