These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

Linux

 
  • Topic is locked indefinitely.
 

Linux+NVidia w/ Optimus+Bumblebee+Wine+Eve = Success!

Author
Daradz Navagel
#1 - 2013-06-23 02:37:16 UTC
This is for fellow capsuleers that run Eve on Linux based laptops with Nvidia cards that use 'Optimus'. For those unfamiliar with Optimus, read about it more here (Nvidia) and here (Wikipedia).

My wife and I were headed to the mountains this weekend, and in case of downtime, I brought my laptop with me (which is running ArchLinux). The night before we left, I decided to try to get Eve running... and what an adventure it was. I'll spare the details on how the bootloader was completely mangled after a simple package update, and that I spent an hour just trying to get grub working again.

For reference, the machine I'll be referring to has the following hardware, and started with the following software:
Lenovo W520
CPU: i7-2760QM
Platform: x86_64
Video: Intel Chipset w/ Quadro 1000M [running Optimus]
BIOS: Video settings set to Integrated w/ Optimus support
X Server: v1.14.1
X Server Video Driver: Intel and Nouveau both installed

To get the whole project working, I decided to break it up into the following pieces:
1) Figure out, and successfully run (and prove) that a piece of software is using the Nvidia chipset with Optimus
2) Install Wine (required to run Eve on Linux)
3) Install Eve through Wine
4) Run Eve in Wine
5) Run Eve in Wine using Optimus

Without further adieu:
1) To get Optimus working in Linux, you need to use the Bumblebee project. Arch has support for Bumblebee out of the box, so I used my normal package tools to install it. Once installed, to test, I opened a terminal and started the server (with sudo) in debug mode '/usr/bin/bumblebeed --debug'. Once the server was started, I used the bumblebee client to test support with glxgears '/usr/bin/optirun glxgears -info' : Fail!

Apparently, the nouveau driver and bumblebee don't play nice together, so I installed the nvidia driver available from the Arch repositories. The only comment I have here is to make sure you install the lib32 libraries for every single driver you install. The reason is because wine runs as a 32-bit process, and can't use the 64-bit drivers you have installed. In my case, I made sure that lib32-nvidia-utils was installed. In addition, the default engine used by bumblebee is called virtualGL. I also made sure that lib32-virtualgl was also installed.

Adjusted /etc/bumblebee/bumblebee.conf to use the Nvidia driver instead of the Nouveau, and restarted the daemon. Tested with glxgears again, and it worked! Step 1 complete.

2) Next was to install wine. Using the Arch packagment tools, I installed it from the regular repositories without issue. I tested notepad.exe to make sure it would everything was installed properly. The only configuration change I made was with winecfg, to set the default operating system to 'Windows 7'.

3) For this, I used the notes available on this winehq page.

The section that I found most useful was called 'HOWTO - Eve Online install on Linux', specifically using winetricks to install the packages that are required for eve. I stopped after as soon as I used the 'Virtual Desktops' section. The only other section that I found relevant was 'Current Overrides Required for Eve''. Since Arch has wine 1.6-rc2 in the repository, I applied the configuration changes applicable to 'Wine 1.5.20 and newer'.

Once all the configuration changes were made, I downloaded the client via my normal OS browser, and then ran the installer using the wine executable. It ran and installed without issue.

4) The next step was to simply run eve in wine, so that I could confirm that I made the right changes to my wine installation to support eve. The first time I ran the eve executable in wine, the launcher started, permitted me to log in, let me click 'Play', but once the game started, I was met with a black screen, and a mouse icon. The output in the terminal window that I ran wine from, clearly showed deficiencies in the Direct3D calls, showing that Eve was only using the Intel card, and not the Nvidia card. Time for Optimus through Bumblebee!

5) I killed the eve, and wine processes respectively. Restarted my bumblebee daemon, and ran the same exact wine command line prepended with the bumblebee client. The entire string looked like this:
'/usr/bin/optirun /usr/bin/wine ~/.wine/drive_c/games/eve/eve.exe'

Success! I was able to log in through the launcher, click play, and eventually made it to the UI, logged into the station, ready to fly! The only issue I encountered was that audio was extremely choppy!!

I re-read the bumblebee arch wiki entry, and noticed a line talking about the 'primus' engine as another render-bridge. I decided that I had nothing to lose, and installed it. I also made sure to install the appropriate lib32 libraries. I killed the bumblebee daemon once again, edited /etc/bumblebee/bumblebee.conf to change the 'Bridge' value from auto to primus, an restarted the bumblebee daemon.

The last change was to the command line to start eve. Instead of using optirun, I used primusrun as so:
'/usr/bin/primusrun /usr/bin/wine ~/.wine/drive_c/games/eve/eve.exe'

... and it works! I was able to interact with the UI, undock, and fly around! Granted, I wasn't in a busy system, so I don't know what performance will look like in one of the major hubs. YMMV!

In the case where you don't see the textboxes in the launcher, and/or the 'Log In' button, try the following
1) Restart the client by killing the processes, and rerunning the command line string
2) Kill the client, restart the bumblebee daemon, and then rerun the client command line string
3) Kill the client, restart the bumblebee daemon, run repair.exe.

Feel free to post/send me a note regarding your experience!

-- Daradz
Ro'Dauqa
All Things Dead.
#2 - 2013-06-24 12:23:50 UTC
was ubuntu than mint user for ~ year switch to arch few days ago... i'm also on optimus leptop... have installed bumblebee optirun glxspheres run with high fps, than installed wine had problems with installing some dlls (vcrun2010) finaly managed to install tham all but when i start eve all i get is black screan... starting eve from eve/bin ExeFile.exe.
Torgeir Hekard
I MYSELF AND ME
#3 - 2013-06-24 13:25:43 UTC  |  Edited by: Torgeir Hekard
Ro'Dauqa wrote:
was ubuntu than mint user for ~ year switch to arch few days ago... i'm also on optimus leptop... have installed bumblebee optirun glxspheres run with high fps, than installed wine had problems with installing some dlls (vcrun2010) finaly managed to install tham all but when i start eve all i get is black screan... starting eve from eve/bin ExeFile.exe.

You don't need dlls.
You need the latest wine and a clear prefix. Nothing else.

Also, glxspheres runs with high FPS on intel card too (most likely vsync fault). What you do need to look for is the OpenGL vendor string in glxinfo. Compare glxinfo | grep vendor with optirun glxinfo | grep vendor (or optirun -b primus glxinfo | grep vendor). Properly working bumblebee should show NVIDIA as your OpenGL vendor.
Daradz Navagel
#4 - 2013-06-24 14:53:49 UTC
Ro'Dauqa wrote:
was ubuntu than mint user for ~ year switch to arch few days ago... i'm also on optimus leptop... have installed bumblebee optirun glxspheres run with high fps, than installed wine had problems with installing some dlls (vcrun2010) finaly managed to install tham all but when i start eve all i get is black screan... starting eve from eve/bin ExeFile.exe.
What command line string are you using to start Eve?
Are you running the Bumblebee daemon in debug mode?
If so, is there any output in the terminal window for the daemon when Eve is starting?
Ro'Dauqa
All Things Dead.
#5 - 2013-06-24 22:11:43 UTC
problem fixed. installed lib32-nvidia-util which i missed during first instalation, restarted bumblebee deamon and eve launched fine. thnx for response and for guide nicely done : )
Karak Terrel
Foundation for CODE and THE NEW ORDER
#6 - 2013-06-26 15:05:46 UTC
Daradz Navagel
#7 - 2013-06-26 15:20:52 UTC
Irrelevant to the conversation - It's a 2 year old bug. Current version is 3.2.1