As I mentioned previously, I recently installed Ubuntu 11.10 on a new laptop. Then Unity stopped working. And so did Unity 2D. This is a problem, since those are the only two desktop sessions installed by default with the latest Ubuntu.
Mode of Failure
When I logged in, I could see the desktop, and a menu bar across the top—Nautilus was clearly running. The Unity launcher which normally appears down the left-hand side of the screen was missing, as was the clock and other status information normally in the top right-hand corner of the screen.
A Really Useful Tip
Pressing Ctrl+Alt+T opens up a terminal. This is easier than what I had been doing (new window in Nautilus, Ctrl+L, type “/usr/bin”, find and run xterm).
What Others Did
Lots of other people have had this problem, and there seem to be a few standard solutions. None of these solutions worked for me, but I list them here in case you find them helpful.
- Install CompizConfig Settings Manager (ccsm) and make sure that the Ubuntu Unity plugin is turned on.
- Reset unity with
- Reset all of the Compiz settings according to these instructions
- Completely restore unity with
More detailed suggestions are available on TuxGarage, Ask Ubuntu and Ubuntu Forums. Notice that if any of these pages tell you to restart gdm, you’ll probably have to restart lightdm instead because that’s the display manager that Ubuntu 11.10 uses.
What I Did
After trying just about every solution I could find, I had reached the point of frustration. I had two leads: ccsm was showing corrupt profile names in the profile selection drop-down under “Preferences”. This turned out to be a dead end. I suspect it’s just a bug in ccsm. And some commands (including
/usr/lib/nux/unity_support_test -p) were giving me a message about
libgl.so being missing (cannot open the shared object file). It was this last lead which led to my solution. I found
libGL.so on my system, then linked to it in
$ locate libGL.so /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2 $ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/
Then I logged out (by killing gnome-session from the terminal), and tried again and everything worked.
Why it Broke
I don’t know.
It was working immediately after the Ubuntu install. I think I may have changed something in ccsm before it broke. But I can’t be sure because I’ve been using my own custom window manager instead of Unity so it took me a while to realise it was broken.