Сделайте драйверы mesa независимыми от предыдущей установки nvidia

На моем Ubuntu Server 16.04 был установлен драйвер nvidia. Мне нужно запустить какое-то приложение, для которого нужен OpenGL, но поскольку машина "без головы", необходимо создать виртуальный экран.

Я пытался сделать это с Xvfb, но приложение не удается с ... не удалось... GLX ... ошибка. Интернет в ~50 местах говорит о том, что невозможно добиться виртуального экрана с установленными драйверами nvidia.

Поэтому я удалил драйверы с помощью apt remove --purge nvidia* Это не решило проблему, поэтому я удалил .so файлы nvidia, присутствующие в ldd /usr/bin/glxinfo, чтобы каким-то образом заставить Xvfb использовать драйверы mesa, так что теперь у меня есть:

# ldd /usr/bin/glxinfo
    libGL.so.1 => /usr/lib/libGL.so.1 (0x00007f37f7f50000)
    libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f37f7c16000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f37f784b000)
    libnvidia-tls.so.340.102 => not found
    libnvidia-glcore.so.340.102 => not found
    libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f37f7638000)

теперь xvfb и glxinfo завершаются ошибкой при загрузке общих библиотек: libnvidia-tls.so.340.102: не удается открыть файл общего объекта: такого файла или каталога нет:(

ldconfig не помогает так же, как apt install --reinstall libgl1-mesa-dri xvfb mesa-utils

Есть ли способ избавиться от остатков драйверов nvidia? или заставить работать xvfb вместе с драйверами nvidia OpenCL?

1 ответ

sudo nvidia-uninstall был лучшим способом удаления драйвера, чем apt remove --purge nvidia *. (драйвер был установлен с помощью sudo./NVIDIA-Linux-x86_64-340.102.run)

После этого ни один из glxinfo, Xvfb и т. Д. Не работал из-за:

ldd /usr/lib/Xvfb
    ...
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fd51461c000)
    libGL.so.1 => not found
    libpixman-1.so.0 => /usr/lib/x86_64-linux-gnu/libpixman-1.so.0 (0x00007fd514374000)
    ...

Пытался исправить это с помощью других попыток apt install libgl1-mesa-dri ..., но похоже, что ldconfig автоматически исправил это.

Теперь я могу успешно запустить любое приложение OpenGL только с именем приложения Xvfb-run -s "-screen 0 640x480x24" без ... без расширения GLX... проблем!:)

Надеюсь, это будет полезно для тех, кто пытается запустить приложение OpenGL на безголовом сервере Ubuntu с предварительно установленными драйверами nvidia.

Другие вопросы по тегам