Viewgg
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Пожалуй, задам вопрос здесь, так как вроде он не дистроспецифичный. Общая задача: поднять Bumblebee для поддержки NVidia Optimus на ноутбуке. Система Fedora 21 (64-битная). Пытался использовать готовое решение, примерно как описано здесь или здесь. Отмечу, что данный вариант уже был проверен и работал на старой машине, однако на новой я сталкиваюсь с проблемами. Теперь перейдем к симптомам. На самом наивном уровне --- при загрузке получаем ч0рный экран. Смотрим лог иксов, там интерес представляют вот такие строчки: Код: Failed to load /usr/lib64/xorg/modules/extensions/libglx.so: libnvidia-tls.so.346.47: cannot open shared object file: No such file or directory | И заканчивается все через некоторое время вот чем: Код: (EE) Server terminated successfully (0). Closing log file. | Ладно, разбираемся. # ldd /usr/lib64/xorg/modules/extensions/libglx.so Прежде чем идти дальше, поясню, почему некоторые библиотеки "не найдены". Собственно, у Mesa и NVidia отдельные реализации OpenGL, так что если пытаться накатить драйвер "в лоб", то получим конфликт путей, нвидиевские библиотеки потрут месовские, и будет плохо. Поэтому в данном случае все хозяйство от NVidia устанавливается в отдельную папку, так чтобы не трогать библиотеки Mesa, и используется только тогда, когда задействуется специальным образом дискретная карта NVidia, а остальное все крутится на системных библиотеках OpenGL. В частности, реализует установку вот такой скрипт. Если вкратце, то работает он примерно так: запускает инсталлятор NVidia и в итоге сует их библиотеки в отдельный путь, так что система про них, по идее, "не знает", а реализация Mesa (которая, собственно, и нужна для интегрированной видеокарты) остается на месте. Однако в данном случае наблюдаем проблему: libglx.so из Mesa почему-то зависит от нвидиевских libnvidia-tls.so и libnvidia-glcore.so. Что за ерунда? Понятно, что отсюда неприятности. Кстати, если удалить bumblebee-nvidia (будем так называть эту специальную реализацию с отдельными путями), то имеем вот такое: # ldd /usr/lib64/xorg/modules/extensions/libglx.so Вот это уже больше похоже на правду, ничего не путается. Танцы с бубном типа ldconfig (с очисткой кеша и даже переустановкой библиотеки) и т. д. пробовал, все равно имею кривые зависимости библиотек с вытекающими отсюда последствиями. Я проверял --- libglx.so в итоге остается интеловская (точнее, та, что идет в комплекте с X-сервером), то есть вроде бы не затирается, все правильно в этом плане. Нвидиевские библиоеки лежат в /usr/lib64/nvidia-bumblebee , то есть они мешаться, по идее, не должны (кстати, именно поэтому они not found). Что с этим делать и куда копать, есть идеи? PS На другой машине делал то же самое (тут только пакет установить от пользователя требуется, по-хорошему, и перезагрузиться), и почему-то все работало, что характерно, без конфликтов библиотек.
| Всего записей: 3012 | Зарегистр. 07-12-2004 | Отправлено: 22:17 01-04-2015 | Исправлено: Viewgg, 22:43 01-04-2015 |
|