LinuxForum.Fans
Тема

Проблема не то с bumblebee, не то с libc

Автор: dirdy_birdy 9 сообщений 5369 просмотров
#358773

Итак, есть один ноут с nVidia Optimus. На нем Debian Wheezy, проприетарные драйвера nvidia (304.88) и bumblebee (3.2.1-4). И все работало замечательно, пока мою голову не посетила идея установить wine поновее. И для этого я не придумал ничего лучше, чем взять новую версию libc6 из репозитория Jessie (2.17-97 вместо 2.13-38). И началось...

text

user@inspiron7720:~$ optirun nvidia-settings -c :8
primus: fatal: failed to load any of the libraries: /usr/$LIB/libGL.so.1:/usr/lib/$LIB/libGL.so.1:/usr/$LIB/mesa/libGL.so.1:/usr/lib/$LIB/mesa/libGL.so.1
/usr/$LIB/libGL.so.1: невозможно открыть разделяемый объектный файл: Нет такого файла или каталога
/usr/lib/$LIB/libGL.so.1: невозможно открыть разделяемый объектный файл: Нет такого файла или каталога
/usr/$LIB/mesa/libGL.so.1: невозможно открыть разделяемый объектный файл: Нет такого файла или каталога
/usr/lib/$LIB/mesa/libGL.so.1: невозможно открыть разделяемый объектный файл: Нет такого файла или каталога

Нагуглилось, что по-видимому таки да, дело в libc (то ли в динамическом линкере, то ли не только).

Оставив попытки сделать даунгрейд libc6 посредством пакетного менеджера (очень настойчиво он хотел снести то, что зависит от libc6, т.е. практически весь пользовательский софт), переставил вручную deb-пакеты из репозитория wheezy (libc6_2.13-38_amd64.deb, libc6_2.13-38_i386.deb, libc6-amd64_2.13-38_i386.deb, libc6-dev_2.13-38_amd64.deb, libc-dev-bin_2.13-38_amd64.deb, locales_2.13-38_all.deb и liblcms2-2_2.2+git20110628-2.2_amd64.deb).

Ничего не изменилось.

Что это может быть?

В /etc/bumblebee/bumblebee.conf написано:

text
# List of paths which are searched for the primus libGL.so.1 when using
# the primus bridge
PrimusLibraryPath=/usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus:/usr/lib/primus:/usr/lib32/primus
# colon-separated path to the nvidia libraries
LibraryPath=/usr/lib/x86_64-linux-gnu/nvidia:/usr/lib/i386-linux-gnu/nvidia:/usr/lib/nvidia

Оно есть:

text
user@inspiron7720:~$ find /usr -name 'libGL*'
/usr/lib/x86_64-linux-gnu/libGL.so.1
/usr/lib/x86_64-linux-gnu/primus/libGL.so.1
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.7
/usr/lib/x86_64-linux-gnu/libGLU.so.1
/usr/lib/x86_64-linux-gnu/nvidia/libGL.so.1
/usr/lib/x86_64-linux-gnu/nvidia/current/libGL.so.1
/usr/lib/x86_64-linux-gnu/nvidia/current/libGL.so.304.88
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.7.0
/usr/lib/x86_64-linux-gnu/libGLU.so.1.3.08005
/usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so.1
/usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so.1.2
/usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1
/usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1.2
/usr/lib/i386-linux-gnu/libGL.so.1
/usr/lib/i386-linux-gnu/primus/libGL.so.1
/usr/lib/i386-linux-gnu/libGLU.so.1
/usr/lib/i386-linux-gnu/nvidia/libGL.so.1
/usr/lib/i386-linux-gnu/nvidia/current/libGL.so.1
/usr/lib/i386-linux-gnu/nvidia/current/libGL.so.304.88
/usr/lib/i386-linux-gnu/libGLU.so.1.3.08005

Единственное упоминание $LIB нашлось в /usr/bin/primusrun:
http://pastebin.com/LLCh30VD

text
# $LIB will be interpreted by the dynamic linker

Где он ищет библиотеки?

Вот на всякий случай вывод LD_DEBUG=libs optirun glxgears:
http://pastebin.com/Y8pNs1hr

Что со всем этим делать?

#358776

Ну чего...
Была схожая проблема... с чего начать...!?!?!
Найти все установленные пакеты содержащие файл "libGL.so.1" на который ругается система и выполнить их переустановку.
Именно переустановку. Чтобы все файлы были переустановлены, а символические ссылки заменены на актуальные.
Если не поможет тогда нужно разбираться.
Драйвер nvidia содержит данный файл, но и другие пакеты так же его содержат. Вот тут и начинается котовасия если где-то чего-то криво прописано.

P/S/
Драйвер не помешало бы обновить на более актуальный.

#358783

Если установили libc6 из Jessie, то тогда я бы и вообще обновил всю систему до jessie.
В Ubuntu-13.04 на ноутбуке с Nvidia Optimus все libGL.so от разный пакетов находятся
и в разных каталогах, но у меня там не работает primus, потрбовалось указать
в bumblebee.conf "Bridge=virtualgl".

Пётр.

#358852
"dirdy_birdy" написал:
И для этого я не придумал ничего лучше, чем взять новую версию libc6 из репозитория Jessie

Каким образом ставили libc6 из jessie?
"apt-get install -f" - что предлагает?

У самого wheezy + libc6 из тестинга. Ставил следующим образом: подключал репозиторий тестинга, прописывал приоритеты в /etc/apt/preferences (чтобы обновлялось только то, что я скажу), смотрел все зависимости libc6 по рекурсии и ставил всё вместе. Проблем не возникало.

#358952

Я так жалею, что купил ноутбук с этой видеокартой! Думал просто nvidia, а оказалось все так сложно! Может сделают когда нибудь нормальный софт под линукс для этой видеокарты?

#358960

Не так уж сложно, вот инструкция:
http://forum.ubuntu.ru/index.php?topic=190100.0
Надо правильно настроить bumblebee.conf и nvidia.xorg.conf, тогда будет работать.

Пётр.

#359302
mozgfx написал:

Найти все установленные пакеты содержащие файл "libGL.so.1" на который ругается система и выполнить их переустановку.
Именно переустановку. Чтобы все файлы были переустановлены, а символические ссылки заменены на актуальные.
Драйвер nvidia содержит данный файл, но и другие пакеты так же его содержат. Вот тут и начинается котовасия если где-то чего-то криво прописано.

А как бы это сделать?
Удалил (purge) все пакеты из nvidia. Теперь:

text
user@inspiron7720:~$ find /usr -name 'libGL*'
/usr/lib/x86_64-linux-gnu/libGL.so.1
/usr/lib/x86_64-linux-gnu/libGL.so.1.2
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.7
/usr/lib/x86_64-linux-gnu/libGLU.so.1
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.7.0
/usr/lib/x86_64-linux-gnu/libGLU.so.1.3.08005
/usr/lib/i386-linux-gnu/libGL.so.1
/usr/lib/i386-linux-gnu/libGL.so.1.2
/usr/lib/i386-linux-gnu/primus/libGL.so.1
/usr/lib/i386-linux-gnu/libGLU.so.1
/usr/lib/i386-linux-gnu/libGLU.so.1.3.08005

Как узнать откуда это?

sandaksatru написал:
Каким образом ставили libc6 из jessie?

Добавил jessie в sources.list, затем

text
apt-get install -t jessie libc6 libc6-dev libc6-dbg

и удалил jessie из sources.list. Апгрейдиться на него пока не собираюсь.

#360208

Ладно, я сдался.
Попытка удалить libc6-amd64 закончилась печально - пришлось переустанавливать систему.
В общем, хотя бы на Debian Stable с драйверами 304.88 все работает как надо.
Всем спасибо за внимание и моральную поддержку.

mozgfx написал:
Драйвер не помешало бы обновить на более актуальный.

Ага, в бэкпортах лежит драйвер 319, но nvidia-settings к нему нет. Буду пока пользоваться тем, что работает, и ждать обновлений бэкпортов.

Войдите или зарегистрируйтесь, чтобы ответить.