LINUX.ORG.RU

Как разуплотнить VirtualGL 32-bit под bumblebee?

 , , ,


0

1

Собственно есть уныленький такой ноут с двумя видюхами на борту:

00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09) (prog-if 00 [VGA controller])
01:00.0 3D controller: NVIDIA Corporation GF108 [GeForce GT 540M] (rev ff) (prog-if ff)

Для запуска всей этой прелести пытаюсь использовать связку Nvidia + Bumblebee. Всё бы ничего, optirun glxgears стартует, выбивает 500 FPS и крутится дальше. Проблемы возникают как только я пытаюсь запустить под вайном что-нибудь тридцатидвухбитное. Например, варик. Голый wine запускается, wine + -opengl запускается, optirun wine не запускается, optirun wine + -opengl не запускается.

Ещё тонна проблем лезет со стороны проклятого VirtualGL, из которого bumblebee пытается завоевать эту галактику. Если иметь только virtualgl-bin 2.3.1-1, вайн начинает вбрасывать в терминал такие вот нехорошие вещи:

ERROR: ld.so: object 'libdlfaker.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object 'librrfaker.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object 'libdlfaker.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object 'librrfaker.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object 'libdlfaker.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object 'librrfaker.so' from LD_PRELOAD cannot be preloaded: ignored.

Но в итоге игрушка запускается, хоть и, скорее всего, на интеловской видеокарточке. Ок, нету либ в /usr/lib32/, поставим. Ставим мы virtualgl32-bin 2.3.1-1, пытаемся запуститься:

err:wgl:X11DRV_WineGL_InitOpenglInfo  couldn't initialize OpenGL, expect problems
fixme:advapi:SetSecurityInfo stub
err:d3d:WineD3D_CreateFakeGLContext Failed to find a suitable pixel format.
err:d3d:InitAdapters Failed to get a gl context for default adapter
Direct3D8 is not available without OpenGL.
fixme:win:EnumDisplayDevicesW ((null),0,0x33f5bc,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x33f5f4,0x00000000), stub!
err:xvidmode:ComputeGammaFromRamp inverted or flat gamma ramp (0->0), rejected

Ок, в репах где-то был lib32-nvidia-utils-bumblebee, ставим, запускаем:

[look@me Warcraft III]$ cd ~/.wine2/drive_c/Warcraft\ III/ && optirun wine Frozen\ Throne.exe -opengl
err:ole:CoCreateInstance apartment not initialised
fixme:advapi:SetSecurityInfo stub
fixme:win:EnumDisplayDevicesW ((null),0,0x33f378,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x33f5bc,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x33f5f4,0x00000000), stub!
[look@me Warcraft III]$ XIO:  fatal IO error 11 (Ресурс временно недоступен) on X server ":8"
      after 105 requests (105 known processed) with 0 events remaining.
^C

... Щто?!

Лезу в cat /var/log/Xorg.8.log, смотрю на http://pastebin.com/sBSk8tW6 (EE) не вижу, ковыряю дальше.

Лезу в dmesg:

[ 5269.983303] bbswitch: enabling discrete graphics
[ 5270.515188] pci 0000:01:00.0: power state changed by ACPI to D0
[ 5270.515195] pci 0000:01:00.0: power state changed by ACPI to D0
[ 5270.515236] pci 0000:01:00.0: power state changed by ACPI to D0
[ 5270.515239] pci 0000:01:00.0: power state changed by ACPI to D0
[ 5270.610315] nvidia 0000:01:00.0: power state changed by ACPI to D0
[ 5270.610320] nvidia 0000:01:00.0: power state changed by ACPI to D0
[ 5270.610461] NVRM: loading NVIDIA UNIX x86_64 Kernel Module  302.17  Tue Jun 12 16:03:22 PDT 2012
[ 5270.625299] vgaarb: this pci device is not a vga device
[ 5272.533150] vgaarb: this pci device is not a vga device
[ 5273.729327] CPU5: Package power limit notification (total events = 398)
[ 5273.729332] CPU3: Package power limit notification (total events = 399)
[ 5273.729336] CPU0: Package power limit notification (total events = 399)
[ 5273.729341] CPU2: Package power limit notification (total events = 399)
[ 5273.729345] CPU4: Package power limit notification (total events = 399)
[ 5273.729349] CPU6: Package power limit notification (total events = 399)
[ 5273.729353] CPU1: Package power limit notification (total events = 398)
[ 5273.729356] CPU7: Package power limit notification (total events = 400)
[ 5273.739911] CPU4: Package power limit normal
[ 5273.739914] CPU5: Package power limit normal
[ 5273.739918] CPU1: Package power limit normal
[ 5273.739921] CPU6: Package power limit normal
[ 5273.739924] CPU3: Package power limit normal
[ 5273.739927] CPU2: Package power limit normal
[ 5273.739930] CPU0: Package power limit normal
[ 5273.739933] CPU7: Package power limit normal
[ 5277.300213] bbswitch: disabling discrete graphics
[ 5277.300383] bbswitch: Result of Optimus _DSM call: 11000059
[ 5277.312706] pci 0000:01:00.0: Refused to change power state, currently in D0
[ 5277.318289] pci 0000:01:00.0: power state changed by ACPI to D3

vgaarb: this pci device is not a vga device ... ЩТО?! Ок, вспоминаю, что lspci -v радостно называет Intel Card VGA, а Nvidia всего лишь 3D. Не, ну не можешь определиться, ну и хрен с тобой: sudo rm /dev/vga_arbiter

Снова запускаю игрушку, снова XIO: fatal IO error 11, dmesg стал почище:

[ 5788.832968] bbswitch: enabling discrete graphics
[ 5789.355970] pci 0000:01:00.0: power state changed by ACPI to D0
[ 5789.355977] pci 0000:01:00.0: power state changed by ACPI to D0
[ 5789.356019] pci 0000:01:00.0: power state changed by ACPI to D0
[ 5789.356021] pci 0000:01:00.0: power state changed by ACPI to D0
[ 5789.451529] nvidia 0000:01:00.0: power state changed by ACPI to D0
[ 5789.451534] nvidia 0000:01:00.0: power state changed by ACPI to D0
[ 5789.451707] NVRM: loading NVIDIA UNIX x86_64 Kernel Module  302.17  Tue Jun 12 16:03:22 PDT 2012
[ 5798.593510] bbswitch: disabling discrete graphics
[ 5798.593812] bbswitch: Result of Optimus _DSM call: 11000059
[ 5798.606943] pci 0000:01:00.0: Refused to change power state, currently in D0
[ 5798.614706] pci 0000:01:00.0: power state changed by ACPI to D3
[ 5816.987066] CPU7: Package power limit notification (total events = 574)
[ 5816.987071] CPU4: Package power limit notification (total events = 573)
[ 5816.987075] CPU2: Package power limit notification (total events = 573)
[ 5816.987080] CPU5: Package power limit notification (total events = 572)
[ 5816.987084] CPU6: Package power limit notification (total events = 573)
[ 5816.987088] CPU0: Package power limit notification (total events = 573)
[ 5816.987092] CPU1: Package power limit notification (total events = 571)
[ 5816.987095] CPU3: Package power limit notification (total events = 573)
[ 5816.987286] CPU7: Package power limit normal
[ 5816.987289] CPU4: Package power limit normal
[ 5816.987292] CPU6: Package power limit normal
[ 5816.987294] CPU2: Package power limit normal
[ 5816.987297] CPU1: Package power limit normal
[ 5816.987300] CPU5: Package power limit normal
[ 5816.987303] CPU3: Package power limit normal
[ 5816.987305] CPU0: Package power limit normal

Новый выхлоп cat /var/log/Xorg.8.log http://pastebin.com/z3qhNv54

Что я делаю не так? :с

Под wine с Bumblebee не удалось запустить StarCraft II, вернулся на Snail. С 32-битами проблем пока не наблюдал. Правда, до арча руки ещё не дошли, чтобы установить и адаптировать...

backbone ★★★★★ ()
Ответ на: комментарий от backbone

Проблема в том, что год-полтора назад бабл на убунте запускал как-то, да и на арче вроде играл в обливион, скайрим и фаллаут с руганью на ERROR: ld.so: object 'libdlfaker.so' from LD_PRELOAD cannot be preloaded: ignored. Не уверен какая и двух карточек юзалась, но мне хватало играть на минималках. Сейчас вообще ни в какую.

ThisNameWasFree ()
Ответ на: комментарий от ThisNameWasFree

Тогда, скорее всего поломали (надо баг-репорт им накатать), а когда работало, версия bumblebee была <3 или уже 3-я?

Snail можно, какой-нибудь livecd для Arch, чтобы записать на флешку не посоветуете? Но лучше всего, конечно, баг-репорт в Bumblebee и чтобы там всё работало как надо.

Сейчас наблюдаю баг (вероятно и раньше был, просто не замечал) с bbswitch. Если загнать в for bbswitch on/off либо просто в неожиданный момент включения карты ноут может тупо зависнуть. Разобраться пока что не успел, но вроде разработчики об этом знают.

backbone ★★★★★ ()
Ответ на: комментарий от backbone

какой-нибудь livecd для Arch, чтобы записать на флешку не посоветуете?

Дык вроде образ арча вполне способен жить на чём угодно из коробки.

ThisNameWasFree ()
Ответ на: комментарий от backbone
[look@me snail]$ sudo snail.configure
Test for acpi_call/vgaswitcheroo
bbswitch is OK! ;-)
Test for nVidia driver
nVidia kernel module found! ;-)
Test for dmidecode utility...
dmidecode utility is OK! ;-)
Detecting your distribution...
Detected distribution:
DISTRIB_ID=arch
DISTRIB_DESCRIPTION=
DISTRIB_RELEASE=
DISTRIB_CODENAME=
Copying system init scripts (SysV/OpenRC/Systemd), start snail-watcher, configuring kernel modules and OpenGL libraries
No rules for Your distribution. Please make a bug report.

Шаманство всё же необходимо.

ThisNameWasFree ()

Дело в том, что в случае

[look@me Warcraft III]$ cd ~/.wine2/drive_c/Warcraft\ III/ && optirun wine Frozen\ Throne.exe -opengl
err:ole:CoCreateInstance apartment not initialised
fixme:advapi:SetSecurityInfo stub
fixme:win:EnumDisplayDevicesW ((null),0,0x33f378,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x33f5bc,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x33f5f4,0x00000000), stub!
[look@me Warcraft III]$ XIO:  fatal IO error 11 (Ресурс временно недоступен) on X server ":8"
      after 105 requests (105 known processed) with 0 events remaining.
^C
игра форкается в бекграунд. Optirun считает, что он завершилась и честно выклчает свой икссервер. Игра естественно падает.

Artificial_Thought ★★★★ ()
Ответ на: комментарий от Artificial_Thought

Именно так. У меня было то же самое со Skyrim. Вылечил тем, что в конфиге bumblebee запретил X Server'у закрываться. Сейчас играю в Skyrim под Wine.

ns_ramesses ()
Ответ на: комментарий от Artificial_Thought

БЛ#АТЬ!11111111111 Оно запустилось!!!!1111 Слава яйцам и KeepUnusedXServer=true.

Artificial_Thought, бро, спасибо огромное, я теперь смогу стать толщее и задротистее :D

Спасибо, риальне. Solved.

ThisNameWasFree ()
Ответ на: комментарий от ThisNameWasFree

А вот и польза от systemd. То есть из срачика вокруг него. Вчера вычитал про эту фишку там, и что с cgroups было бы лучше.

Artificial_Thought ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.