У меня Debian 8 с XFCE, работающий на виртуализации vmware.
Если я работаю на консоли vSphere, никаких проблем.
Если я подключаюсь через VNC (thighVNC) с использованием «my-hostname: 1», у меня возникают некоторые проблемы (я предполагаю, что две проблемы связаны между собой):
1) Если я хочу перейти в «Меню приложений -> Настройки -> Дисплей», я получаю сообщение: «Невозможно запустить настройки дисплея Xfce. Эта система использует RandR 1.1. Для работы настроек дисплея используется версия 1.2. требуется как минимум ». У меня нет этой проблемы на vSphere Console.
2) Я установил RStudio. Если я захочу его запустить, на консоли появится следующий вывод:
QXcbConnection: Failed to initialize XRandr
Qt:XKEYBOARD extension not presten on the X server
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Unsupported screen format: depth 16, red_mask: 3f, blue_mask:f800
...
then a lot of QWidget and QPainter errors
...
and finally a segmentation fault
Что случилось?
Ответы на вопросы ниже:
sduo find /usr -iname "*libGL.so*" -exec ls -l {} \;
дает:
lrwxrwxrwx 1 root root 14 Aug 19 2015 /usr/lib/x86_64-linux- gnu/libGL.so.1 -> libGL.so.1.2.0
-rw-r--r-- 1 root root 627320 Aug 19 2015 /usr/lib/x86_64-linux-gnu/libGL.so.1.2.0
И
glxgears
дает:
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
libGL: Can't open configuration file /home/bioinf/.drirc: No such file or directory.
libGL: Can't open configuration file /home/bioinf/.drirc: No such file or directory.
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
30063 frames in 5.0 seconds = 6012.055 FPS
Самое главное - программный рендерер. Это означает, что он не может найти драйвер оборудования для вашей видеокарты. Установлено множество библиотек libGL и множество символических ссылок на эти библиотеки.
Чтобы увидеть это, запустите это из строки cmd.
sudo find /usr -iname "*libGL.so*" -exec ls -l {} \;
Вероятная причина вашей проблемы в том, что установка графических драйверов иногда нарушает эти символические ссылки. (В частности, /usr/local/lib/libGL.so.1.2.0, вероятно, будет либо неправильной библиотекой, либо символической ссылкой на неправильную ссылку).
Чтобы выяснить, какую библиотеку пытаются запустить программы opengl, вы можете включить немного подробностей и запустить простую программу opengl. В этом можно убедиться с помощью стандартной тестовой программы opengl:
export LIBGL_DEBUG=verbose
glxgears
Убедитесь, что /usr/local/lib/libGL.so.1.2.0 - это символическая ссылка, указывающая на правую библиотеку opengl.
Итак, решение (в данном случае) - убедиться, что /usr/local/lib/libGL.so.1.2.0 является символической ссылкой, указывающей на правую библиотеку opengl. Например, допустим, у меня есть драйвер nvidia 3.40:
ln -s /usr/lib/nvidia-340/libGL.so.1 /usr/local/lib/libGL.so.1.2.0
Но вы захотите указать его на подходящую для вас библиотеку opengl (указанную в первой команде find).
Установка (проприетарных) графических драйверов может нарушить символические ссылки, используемые для библиотек opengl. Чтобы решить эту проблему, вручную исправьте символические ссылки (сначала исправьте /usr/local/lib/libGL.so.1.2.0).