Unable to log into Unity 3D session on Ubuntu 12.04 with NVidia graphics card

There has been lots of questions here on how to get Unity 3D working with NVidia graphics cards - I've read many of them, but I've still not been able to figure out a solution to my problem.

My setup

I recently installed Ubuntu 12.04 on my ASUS N53SN, which sports an NVidia GeForce 550M as well as an integrated Intel card (see the full spec on ASUS' website). Now I'm having some problems getting Unity 3D to work. I never bothered trying to fix it on Ubuntu 11.10, since I was planning an upgrade to 12.04 anyway and expected it to work then. It doesn't...

My problem

When I log into Ubuntu, I select "Ubuntu" as my desktop environment ("Ubuntu 2D" is also available). However, every diagnostic I tried says I'm using Unity 2D anyway.

Attempted solutions

I've tried unity --reset, which seems to have solved this problem for others, and got the following output (unity --replace gives exactly the same, minus the first two lines):

WARNING: Unity currently default profile, so switching to metacity while resetting the values
/home/tomas/.gtkrc-2.0:3: error: unexpected character `;', expected character `}'
unity-panel-service: no process found
Checking if settings need to be migrated ...no
Checking if internal files need to be migrated ...no
Backend     : gconf
Integration : true
Profile     : unity
Adding plugins
Initializing core options...done
Initializing composite options...done
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Segmentation fault (core dumped)

Then I end up in a desktop environment with no window borders, no possibility to resize windows, and where Ctrl+Alt+t no longer works to open a terminal. Luckily, F12 still opens the Guake terminal, where I can confirm that I'm still in Unity 2D - only, apparently, broken.

What do I do to make Unity 3D working?


The problem you are having is because you have hybrid graphics in your system, which is not very well supported in linux at the moment. There are a couple of things you can try:

-Uninstall your nvidia driver(this will force your system to use your intel integrated graphics, allowing you to log into Unity 3D)

-Install Bumblebee https://launchpad.net/~bumblebee/+archive/stable (this will make your system use intel graphics, but it will also turn off your nvidia card when it is not in use saving your battery life. You can also use your nvidia card this way by typing 'optirun ' before you run something.)

I recommend the second method, but I would reccomend reading the https://github.com/Bumblebee-Project/Bumblebee/wiki before you install it.