[Решено] wine x32 не видет OpenGL x32 на Wheezy с Nvidia x64

Автор su16, 18 июня 2014, 11:38:05

« назад - далее »

0 Пользователи и 3 гостей просматривают эту тему.

su16

Wheezy x64 multiarch i386
NVIDIA 331.67 x64 (проприетарный)
wine x32

При запуске 32 битной игрушки вайн ругается:
Открыть содержимое (спойлер)


err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (0x151f1a8 1 C) semi-stub
fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (0x151efe8 1 C) semi-stub
0 SDL joysticks found
0 XInput joysticks found
fixme:win:RegisterDeviceNotificationW (hwnd=0x10050, filter=0x4d8e9d4,flags=0x00000000) returns a fake device notification handle!
fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (0x151f43c 1 C) semi-stub
fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (0x151f474 1 C) semi-stub
fixme:win:EnumDisplayDevicesW ((null),0,0x151f26c,0x00000000), stub!
fixme:win:EnumDisplayDevicesW (L"\\\\.\\DISPLAY1",0,0x151f26c,0x00000000), stub!
fixme:win:EnumDisplayDevicesW (L"\\\\.\\DISPLAY1",0,0x151eeb4,0x00000000), stub!
fixme:win:EnumDisplayDevicesW (L"\\\\.\\DISPLAY1",1,0x151f26c,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),1,0x151f26c,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x151f26c,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),1,0x151f26c,0x00000000), stub!
Initialized video driver: windows
fixme:win:RegisterTouchWindow (0x2003c 00000003): stub
err:winediag:X11DRV_WineGL_InitOpenglInfo Direct rendering is disabled, most likely your 32-bit OpenGL drivers haven't been installed correctly (using GL renderer "GeForce GTX 580/PCIe/SSE2", version "1.4 (2.1.2 NVIDIA 331.67)").
err:wgl:set_pixel_format Invalid format 0
err:wgl:set_pixel_format Invalid format 0
Waiting for process pool tasks to complete...
fixme:msvcrt:__clean_type_info_names_internal (0x2d7358) stub
fixme:msvcrt:__clean_type_info_names_internal (0x2c0044) stub
fixme:msvcrt:__clean_type_info_names_internal (0x288358) stub
fixme:msvcrt:__clean_type_info_names_internal (0x188c504) stub
fixme:msvcrt:__clean_type_info_names_internal (0x275014) stub
[свернуть]
тут две строчки важны для меня:
err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
пакет winbind в Wheezy явно битый и не ставится мотивируя упрямство следующим:

winbind : Зависит: libwbclient0 (= 2:3.6.6-6+deb7u3) но 2:4.1.6+dfsg-1~bpo70+1 будет установлен

- как быть?
но это не совсем по теме - по теме следующее:

err:winediag:X11DRV_WineGL_InitOpenglInfo Direct rendering is disabled, most likely your 32-bit OpenGL drivers haven't been installed correctly (using GL renderer "GeForce GTX 580/PCIe/SSE2", version "1.4 (2.1.2 NVIDIA 331.67)").

в общем, не видет 32 битный OpenGL он в 64 битной системе.

Интернет предлагает для решения проблемы удалить проприетарный дровень и поставить пакет
sudo apt-get install libgl1-nvidia-glx:i386
но дрова удалять я не хочу конечно.
- как быть?

аналогичная проблема мне помнится с 32 битными аудио дровами Альсы:
Инстолятор вежливо предложил деинстолировать дрова Nvidia, я вежливо отказался, но инстоляция завершилась успехом. в случае с OpenGl тоже можно отказать инстолятору, но тогда инсталяция прерывается.
как вариант, можно снести дрова, поставить пакет, поставить дрова... но тогда всё может ухнуться.
какие идеи?
Если вам дают бесплатное, то, скорее всего, товар - это вы.
https://occupyflash.org/

Defman

Цитата: su16 от 18 июня 2014, 11:38:05но дрова удалять я не хочу конечно.
Передай тому, кто это сказал, большой "привет". Удалять дрова не надо, просто поставь пакет libgl1-nvidia-glx:i386. Т.к. у тебя x64, то 32-битный openGL не ставится по-умолчанию. Я на Wheezy как раз это ставил, чтобы запускались игры из стима.
:)

su16

Цитата: Defman от 18 июня 2014, 18:11:02Удалять дрова не надо, просто поставь пакет libgl1-nvidia-glx:i386.
ещё раз: при установке этот пакет требует удаления Нвидевских проприетарных дров. ты предлагаешь удалить, поставить пакет и вернуть дрова? сейчас у тебя вместе с ним какие дрова стоят нуавея или пропер?
Если вам дают бесплатное, то, скорее всего, товар - это вы.
https://occupyflash.org/

Defman

#3
У меня стояли пропер.дрова. И я накатил на них этот пакет. И все, ничего у меня не удалялось. Сейчас у меня дров вообще не стоит, ибо не подходят они почему-то :(
Хотя не просило удаления может быть потому, что я ставил на wheezy именно пакет nvidia-glx.
И как мне кажется, libgl1-nvidia-glx:i386 требует удаления именно 32-битного OpenGL, чтобы заново его правильно поставить.
:)

su16

Цитата: Defman от 18 июня 2014, 20:09:53ибо не подходят они почему-то
ну вот снесёшь пакет и будут подходить, я так чувствую))))) сорри за сарказм))
потому что этот пакет линкует нувовский драйвер, а не Нвидевский, как мне кажется.
Если вам дают бесплатное, то, скорее всего, товар - это вы.
https://occupyflash.org/

Defman

Цитата: su16 от 18 июня 2014, 22:27:16ну вот снесёшь пакет и будут подходить, я так чувствую))))) сорри за сарказм))
Я примерно 5 день использую xrandr, потому что под мою Jessie нихрена из дров нвидии не встает!11 Но мне абсолютно пофиг. Я в игры уже почти не играю, только коддинг :)
:)

qupl

Цитата: Defman от 18 июня 2014, 22:58:49Я примерно 5 день использую xrandr, потому что под мою Jessie нихрена из дров нвидии не встает!
Давайте без домыслов, Вам просто лень их устанавливать. Раздел не продрайвера nvidia, не отклоняемся от темы.

su16

#7
Итак, удалил дровень 331.67 его же инсталятором, поставил пакет libgl1-nvidia-glx:i386... и, о чудо (!), он подтянул в зависимостях старый... нет, не угадали, не Nouveau, a
304.117 x64 non-free!

игра, как ожидалось, запустилась, но это меня не интересует.
конечно же меня волнует как теперь снести 304.117 и поставить свежинький 331.79,
не потеряв при этом ценный трофей - пакет libgl1-nvidia-glx:i386 ?! 

пока колдую, пишите идеи.
мне интересно, из какого пакета дровень подтянулся...  ???
Если вам дают бесплатное, то, скорее всего, товар - это вы.
https://occupyflash.org/

su16

короче, у libgl1-nvidia-glx:i386 есть зависимость от nvidia-installer-cleanup, кототорый нарочно мешает ставить свежий драйвер.
Есть у меня подозрение, что wine был прав, когда говорил, что "OpenGL drivers haven't been installed correctly".
Здаётся мне, что с дровами Nvidia всё в порядке, и не хватало только симлинков в i386, ибо сам он какбэ мультиарч.

что скажите?
Если вам дают бесплатное, то, скорее всего, товар - это вы.
https://occupyflash.org/

su16

окей, прошу прощения, я ступил.  ;D

Короче, всё элементарно! По всей видимости, я ставил дрова Nvidia сразу после установки Дебиана, когда мультиарч не был у меня включён за ненадобностью, поэтому я естественно не стал ставить 32-битные либы, предложенные установщиком и забыл об этом. :D

щас переустановил свежий драйвер, как положено, и вайн воспрял духом.
всем спасибо, тему можно считать закрытой.

PS:
Открыть содержимое (спойлер)

чтоб тема не была совсем скучная, расскажу баян, вдруг кто не знает:
чтобы собрать модуль ядра dkms, что предлагается во время установки проприетарного дровня Nvidia, нужно чтобы версия компилятора совпала с той, что использовалась для сборки самого ядра.
по традиции, в дебиана компиляторов два, тот что поновей - активный, поэтому установка фейлится на этом этапе.
поэтому перед установкой смотрим, какой компилятор нужен:

Цитироватьcat /proc/version
Linux version 3.2.0-4-amd64 (debian-kernel@lists.debian.org) (gcc version 4.6.3 (Debian 4.6.3-14) ) #1 SMP Debian 3.2.57-3+deb7u2
apt-get install gcc-4.6

ls -l /usr/bin/gcc
lrwxrwxrwx 1 root root 16 Июн 19 23:14 /usr/bin/gcc -> /usr/bin/gcc-4.7

rm /usr/bin/gcc
ln -s /usr/bin/gcc-4.6 /usr/bin/gcc

chmod a+x NVIDIA-Linux-x86_64-331.79.run
./NVIDIA-Linux-x86_64-331.79.run

rm /usr/bin/gcc
ln -s /usr/bin/gcc-4.7 /usr/bin/gcc
[/quote]

[свернуть]
Если вам дают бесплатное, то, скорее всего, товар - это вы.
https://occupyflash.org/