LinuxForum.Fans
Тема

Nvidia Optimus + Direct3D = ?

Автор: dirdy_birdy 7 сообщений 4887 просмотров
#369969

Ноутбук с nVidia GeForce GT 650M, Debian Wheezy, Wine 1.4.

Optirun не хочет дружить с Direcr3D под вайном. dxdiag запускается, спрашивает, искать ли Direct3D-устройства, и сразу же валится:

Показать
[console]user@inspiron7720:~$ optirun wine dxdiag
fixme:process:SetProcessShutdownParameters (00000380, 00000000): partial stub.
fixme:ole:CoInitializeSecurity ((nil),-1,(nil),(nil),1,3,(nil),0,(nil)) - stub!
fixme:wbemprox:wbem_locator_ConnectServer 0x130510, L"\\\\.\\root\\cimv2", (null), (null), (null), 0x00000000, (null), (nil), 0x5991b4)
fixme:win:EnumDisplayDevicesW ((null),0,0x32ec68,0x00000000), stub!
fixme:win:EnumDisplayDevicesW (L"\\\\.\\DISPLAY1",0,0x32e920,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),1,0x32ec68,0x00000000), stub!
primus: fatal: failed to load any of the libraries: /usr/lib/x86_64-linux-gnu/nvidia/libGL.so.1:/usr/lib/i386-linux-gnu/nvidia/libGL.so.1:/usr/lib/nvidia/libGL.so.1
/usr/lib/x86_64-linux-gnu/nvidia/libGL.so.1: неправильный класс ELF: ELFCLASS64
/usr/lib/i386-linux-gnu/nvidia/libGL.so.1: невозможно открыть разделяемый объектный файл: Нет такого файла или каталога
/usr/lib/nvidia/libGL.so.1: невозможно открыть разделяемый объектный файл: Нет такого файла или каталога[/console]

Если указать bridge=none, то он хотя бы не падает, но выдает ошибку:

Показать
[console]user@inspiron7720:~$ optirun -b none wine dxdiag
fixme:process:SetProcessShutdownParameters (00000380, 00000000): partial stub.
fixme:ole:CoInitializeSecurity ((nil),-1,(nil),(nil),1,3,(nil),0,(nil)) - stub!
fixme:wbemprox:wbem_locator_ConnectServer 0x130510, L"\\\\.\\root\\cimv2", (null), (null), (null), 0x00000000, (null), (nil), 0x5991b4)
fixme:win:EnumDisplayDevicesW ((null),0,0x32ec68,0x00000000), stub!
fixme:win:EnumDisplayDevicesW (L"\\\\.\\DISPLAY1",0,0x32e920,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),1,0x32ec68,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x32f0c0,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x32ed68,0x00000000), stub!
fixme:ddraw:ddraw7_Initialize Ignoring guid {67685559-3106-11d0-b971-00aa00342f9f}.
fixme:thread:SetThreadIdealProcessor (0xfffffffe): stub
err:ole:CoGetClassObject class {b9f3eb85-b781-4ac1-8d90-93a05ee37d7d} not registered
err:ole:CoGetClassObject no class object {b9f3eb85-b781-4ac1-8d90-93a05ee37d7d} could be created for context 0x1
err:ole:apartment_getclassobject DllGetClassObject returned error 0x80040111
err:ole:CoGetClassObject no class object {da4e3da0-d07d-11d0-bd50-00a0c911ce86} could be created for context 0x1
err:ole:CoGetClassObject class {cc7bfb41-f175-11d1-a392-00e0291f3959} not registered
err:ole:CoGetClassObject no class object {cc7bfb41-f175-11d1-a392-00e0291f3959} could be created for context 0x1
err:ole:CoGetClassObject class {cc7bfb46-f175-11d1-a392-00e0291f3959} not registered
err:ole:CoGetClassObject no class object {cc7bfb46-f175-11d1-a392-00e0291f3959} could be created for context 0x1
[/console]

Что я делаю не так? Вообще с вайном дел до этого не имел и уже малость запутался в обилии опций. Установил библиотеки и опции, как указано здесь.
Подскажите, в какую сторону копать.

#369992

Хммм... Просто установка libgl1-nvidia-glx-ia32 ничего не дала. Попробую как по ссылке, удалить с концами всё nvidia, bumblebee и иже с ними и переустановить все под 386 архитектуру.
Посмотрим.

#369998
"dirdy_birdy" написал:
Просто установка libgl1-nvidia-glx-ia32 ничего не дала
"dirdy_birdy" написал:
/usr/lib/i386-linux-gnu/nvidia/libGL.so.1: невозможно открыть разделяемый объектный файл: Нет такого файла или каталога

файл то появился? или как теперь ругается? или может пути где неправильные? Возможно, после установки надо было перелогиниться...

#370044
Fat-Zer написал:
файл то появился? или как теперь ругается? или может пути где неправильные? Возможно, после установки надо было перелогиниться...

Ругается так:

Показать
[console]user@inspiron7720:~$ optirun wine dxdiag
fixme:process:SetProcessShutdownParameters (00000380, 00000000): partial stub.
fixme:ole:CoInitializeSecurity ((nil),-1,(nil),(nil),1,3,(nil),0,(nil)) - stub!
fixme:wbemprox:wbem_locator_ConnectServer 0x130510, L"\\\\.\\root\\cimv2", (null), (null), (null), 0x00000000, (null), (nil), 0x5991b4)
fixme:win:EnumDisplayDevicesW ((null),0,0x32ec68,0x00000000), stub!
fixme:win:EnumDisplayDevicesW (L"\\\\.\\DISPLAY1",0,0x32e920,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),1,0x32ec68,0x00000000), stub!
primus: fatal: failed to load any of the libraries: /usr/lib/x86_64-linux-gnu/nvidia/libGL.so.1:/usr/lib/i386-linux-gnu/nvidia/libGL.so.1:/usr/lib/nvidia/libGL.so.1
/usr/lib/x86_64-linux-gnu/nvidia/libGL.so.1: неправильный класс ELF: ELFCLASS64
/usr/lib/i386-linux-gnu/nvidia/libGL.so.1: невозможно открыть разделяемый объектный файл: Нет такого файла или каталога
/usr/lib/nvidia/libGL.so.1: невозможно открыть разделяемый объектный файл: Нет такого файла или каталога[/console]

Какой-то файл libGL.so.1 лежит в /usr/lib/i386-linux-gnu/primus/, вероятно, откуда-то на него есть симлинки.
Тем не менее:

Показать
[console]user@inspiron7720:~$ sudo update-alternatives --display nvidia
nvidia - автоматический режим
ссылка сейчас указывает на /usr/lib/nvidia/current
/usr/lib/nvidia/current — приоритет 304
подчинённый nvidia--libGL.so.1-x86_64-linux-gnu: /usr/lib/x86_64-linux-gnu/nvidia/current/libGL.so.1
подчинённый nvidia--libXvMCNVIDIA.so.1-x86_64-linux-gnu: /usr/lib/x86_64-linux-gnu/nvidia/current/libXvMCNVIDIA.so.1
подчинённый nvidia--libXvMCNVIDIA_dynamic.so.1-x86_64-linux-gnu: /usr/lib/x86_64-linux-gnu/nvidia/current/libXvMCNVIDIA_dynamic.so.1
подчинённый nvidia--libglx.so: /usr/lib/nvidia/current/libglx.so
подчинённый nvidia--libnvidia-cfg.so.1-x86_64-linux-gnu: /usr/lib/x86_64-linux-gnu/nvidia/current/libnvidia-cfg.so.1
подчинённый nvidia--nvidia-bug-report.sh: /usr/lib/nvidia/current/nvidia-bug-report.sh
подчинённый nvidia--nvidia_drv.so: /usr/lib/nvidia/current/nvidia_drv.so
Текущая «лучшая» версия: «/usr/lib/nvidia/current».
[/console]
Показать
[console]user@inspiron7720:~$ sudo update-alternatives --display glx
glx - ручной режим
ссылка сейчас указывает на /usr/lib/mesa-diverted
/usr/lib/mesa-diverted — приоритет 5
подчинённый glx--libGL.so.1-i386-linux-gnu: /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1
подчинённый glx--libGL.so.1-x86_64-linux-gnu: /usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so.1
/usr/lib/nvidia — приоритет 100
подчинённый glx--libGL.so.1-x86_64-linux-gnu: /usr/lib/x86_64-linux-gnu/nvidia/libGL.so.1
подчинённый glx--libXvMCNVIDIA.so.1-x86_64-linux-gnu: /usr/lib/x86_64-linux-gnu/nvidia/libXvMCNVIDIA.so.1
подчинённый glx--libXvMCNVIDIA_dynamic.so.1-x86_64-linux-gnu: /usr/lib/x86_64-linux-gnu/nvidia/libXvMCNVIDIA_dynamic.so.1
подчинённый glx--libnvidia-cfg.so.1-x86_64-linux-gnu: /usr/lib/x86_64-linux-gnu/nvidia/libnvidia-cfg.so.1
подчинённый glx--linux-libglx.so: /usr/lib/nvidia/libglx.so
подчинённый glx--nvidia-bug-report.sh: /usr/lib/nvidia/nvidia-bug-report.sh
подчинённый glx--nvidia_drv.so: /usr/lib/nvidia/nvidia_drv.so
Текущая «лучшая» версия: «/usr/lib/nvidia».
[/console]

Как будто бы nvidia есть только 64-битные драйвера.

#370046
"dirdy_birdy" написал:
Просто установка libgl1-nvidia-glx-ia32 ничего не дала.

debian? это устаревший пакет... надо установить libgl1-nvidia-glx:i386. Об этом, кстати по ссылке тоже много написано...

#371275
Fat-Zer написал:
debian? это устаревший пакет... надо установить libgl1-nvidia-glx:i386. Об этом, кстати по ссылке тоже много написано...

Да, установка этого пакета помогла. Благодарю.
Осталось теперь настроить звук. *CRAZY*

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