LinuxForum.Fans
Тема

nvidia optimus

Автор: Peter 6 сообщений 1526 просмотров
#334239

Здравствуйте!

В Ubuntu-13.04 на ноутбуке с Nvidia Geforce GT 650M я установил bumblebee, bbswitch, nvidia-313-updates, primus,
nvidia.ko скомпилировался. Однако при старте системы /dev/dri/card0 не создаётся.
Если запустить программу через оptirun, то загружается nvidia.ko, хотя, кажется, не гарантированно,
появляются два устройства в /dev, но не /dri/card0.
glxinfo и с optirun и без него сообщает, что direct rendering yes.
glxgears запускается в обоих случаях, но интересно, что с optirun он показывает на 30 меньше, чем без него:
с ним 680, без него 650.
Какая fps должна быть с этой видеокартой? И как добиться создания /dev/dri/cardo?

Пётр.

#334249

покажите glxinfo | grep OpenGL

ошибки есть в логах?

#334356

Вот этот вывод:

text

OpeOpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.2, 256 bits)
OpenGL version string: 2.1 Mesa 9.1.3
OpenGL shading language version string: 1.20
OpenGL extensions:

ьь
Из ошибок в Xorg.0.log, как и раньше: нет /dev/dri/card0, в /dev/ появляются nvidia0 и nvidiactl,
в syslog сообщения

text
bbswitch: enabling (или disabling) discrete graphics,

а также

text

Aug 25 20:58:29 Eva bumblebeed[1835]: [XORG] (WW) NVIDIA(0): Failed to enable display hotplug notification
Aug 25 20:58:29 Eva bumblebeed[1835]: [XORG] (WW) NVIDIA(0): Unable to get display device for DPI computation.
Aug 25 20:58:29 Eva bumblebeed[1835]: [XORG] (EE) synaptics: ETPS/2 Elantech Touchpad: Synaptics driver unable to detect protocol

Других логов, связанных с этим, пока не вижу.
Всё же какая fps должна быть? При этом glxgears через optirun не запускается, с ней происходит крах.

Пётр.

#345753

Сейчас у меня драйвер nvidia-325, /dev/dri/card0 создаётся при загрузке драйвера,
/var/log/Xorg.8.log тоже создаётся, команда "optirun firefox" выполняется,
драйвер загружен при этом,
команда "optirun -c :8 nvidia-settings" тоже выполняется, панелька появляется,
но с сообщением, что я не имею права пользоваться драйвером NVIDIA,
а команды "optirun glxspheres" и "primusrun glxspheres" не выполняются:
на мгновение появляется рамка от glxspheres, primusrun при этом выпадает
в "segmentation fault", а в /var/log/syslog появляются строки

text

bumblebeed: [XORG] (WW) Unresolved symbol: fbGetGCPrivateKey
bumblebeed: [XORG] (WW) NVIDIA(0): Unable to get display device to DPI computation

в чём причина? У других, если уж драйвер загружается, то и эти команды работают.
М.б., какого-то пакета не хватает?

Пётр.

#353640

Хотел бы уточнить детали работы технологии nvidia optimus.
glxgears и glxspheres используют libGL.so из пакета libgl1-mesa-glx.
При запуске их просто, без optirun, они работают.
При запуске через optirun с ними происходит segmentation fault,
при этом в /var/log/syslog появляется сообщение типа [WW], что есть
неразрешённая ссылка fbGETGCPrivateKey в libGL.so.
1) Это критично или нет?
2) Ни в одной libGL.so из присутствующих в системе этой точки входа нет.
В таком случае в какой библиотеке из какого пакета она есть?
3) Что происходит при запуске программы, той же glxgears, через optirun?
При этом загружается драйвер nvidia-331, у которого есть своя libGL.so,
создаются /dev/dri/card0 и /dev/nvidia0 и /dev/nvidiactl.
Т.е. optirun каким-то образом передаёт обработку графики модулю nvidia,
а потом принимает от него результат и передаёт модулю для Intel.
На каком участке происходит сбой и чего не хватает?
Используется ли при этом libGL.so из libgl1-mesa-glx?

Пётр.

#357689

Оказалось, что причина в primus, я этого никак не ожидал.
По совету, полученному на другом форуме, я для bumblebee в качестве Bridge
указал virtualgl и стали запускаться и glxgears и glxspheres.

Пётр.

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