Сделайте драйверы 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.