I get "Failed to load session "ubuntu-2d" when using XRDP

As of Ubuntu 12.10, the Unity 2D desktop interface ("Ubuntu 2D") no longer exists. Ordinarily, computers without adequate 3D acceleration use the llvmpipe software renderer.

  • Unity 2d support dropped in 12.10, what now?

Since Unity 2D used to be the easy way to xRDP into an Ubuntu system, its removal requires the use of a different technique. Fortunately, there is a solution:

  • How to remote desktop into ubuntu 12.10 using xRDP (by Griffon)

Install xRDP

That page provides a circuitous way to install xRDP, but really it's as simple as before. Install xrdp Install xrdp in the Software Center. Or install from the Terminal by running:

sudo apt-get update && sudo apt-get upgrade

If it is not found, make sure the Universe repository component is enabled in your Software Sources. (If this is a headless system, use this command-line way instead.)

Install a Desktop Interface Not Requiring (Real or Simulated) 3D Acceleration

Grifon's instructions recommend GNOME Fallback (providing the "GNOME Classic" session type). The gnome-session-fallback Install gnome-session-fallback package provides it.

sudo apt-get install gnome-session-fallback

(It's best to run sudo apt-get update first if you haven't done so recently.)

Other alternatives include:

  • Xfce (xubuntu-desktop Install xubuntu-desktop / sudo apt-get install xubuntu-desktop)
  • LXDE (lubuntu-desktop Install lubuntu-desktop / sudo apt-get install lubuntu-desktop)
  • MATE (this is a bit more involved to install, see these instructions)

Create a ~/.xsession File Specifying the Desired Interface for xRDP

In the home directory of the user or users who you wish to log in via xRDP, create a file called .xsession. You can do this with any text editor, such as Gedit. Once created, this file won't be visible in file managers except when View > Show Hidden Files (or similar) is enabled. In Nautilus and most other file managers, Ctrl+H does this.

The quickest and easiest way to make this file is probably the Terminal--a single command will create it.

To use GNOME Fallback ("GNOME Classic (no effects)"):

echo gnome-session --session=gnome-fallback > ~/.xsession

Or, to use Xfce ("Xubuntu Session"):

echo xfce4-session > ~/.xsession

Or, to use LXDE ("Lubuntu Desktop"):

echo lxsession -s Lubuntu -e LXDE > ~/.xsession

Configure the Keyboard Layout

If you want an English keyboard layout, you don't need to do anything for this step.

Otherwise, to configure xRDP to use a different keyboard layout, see the "Solving the keyboard Layouts problem in the xRDP session" section of this post (the rest of that post applies just to earlier versions of Ubuntu; the post was linked to from those instructions for 12.10).

Now it should work!

Griffon has pointed out that, unfortunately, in GNOME Fallback, the usual way of logging out does not work (when connected via xRDP). Instead, log out by running the command:

gnome-session-quit --logout

You can open a Terminal window (Ctrl+Alt+T) for this, but you might as well just use the Run dialog (Alt+F2).

In other desktop environments, logging out might still work, but if it does not, you can use their approximate equivalents of the gnome-sesison-quit command:

Xfce: xfce4-session-logout --logout

LXDE: lxsession-logout

Acknowledgements

Much of the information here is from that blog post (though no text is copied).