Я хочу выполнять рендеринг без головы на сервере, где у меня нет прав root. Поэтому я создал такой контейнер Singularity:
Bootstrap: docker
From: nvidia/cuda:9.0-runtime-ubuntu16.04
%post
apt-get update && apt-get -y install \
python3-pip \
python3-tk \
libgtk2.0-dev \
libgl1-mesa-glx \
xvfb \
mesa-utils \
xserver-xorg \
nvidia-settings \
touch /usr/bin/nvidia-smi
touch /usr/bin/nvidia-xconfig # not working
После того, как я выполнил свой контейнер:
singularity exec --nv rendering.img bash
Хочу проверить, все ли работает:
export DISPLAY=:99.0
Xvfb :99 -screen 0 640x480x24 &
Xvfb :99 -screen 0 640x480x24 &
[1] 20059
XSERVTransmkdir: ERROR: euid != 0,directory /tmp/.X11-unix will not be created.
glxinfo | grep "OpenGL version"
Error: couldn't find RGB GLX visual or fbconfig
Когда я делаю: nvidia-smi
все работает (драйвера должны быть в порядке). Что мне здесь не хватает?
nvidia-smi не запускает openGL при выполнении,
В каталоге /tmp/.X11-unix есть сокет unix для связи с X-сервером.
по какой-то причине у вас нет разрешения на запись в /tmp/.X11-unix, потому что Xvfb необходимо создать сокет в этом каталоге.