Назад | Перейти на главную страницу

Настройте Singularity для рендеринга без головы / используйте OpenGL / glxgears / glxinfo

Я хочу выполнять рендеринг без головы на сервере, где у меня нет прав 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 необходимо создать сокет в этом каталоге.