Accessing Remote Desktops with Nomad

Contents

6.1. Nomad Prerequisites
6.2. Installation and Set-Up
6.3. Using Nomad
6.4. Troubleshooting
6.5. For More Information

Nomad (Novell Open Mobile Agile Desktop) ships with SUSE® Linux Enterprise Desktop and allows you to run desktop sessions detached from any graphics hardware. It consists of the following core components:

Proxy X Server

Supports modern X extensions like Composite, XVideo and RANDR.

Session Manager

Responsible for spawning and keeping track of desktop sessions that can be accessed remotely.

Connection Handler

Uses the Remote Desktop Protocol (RDP) as a transport and security layer. RDP is a multi-channel protocol that allows a user to connect to a computer running Microsoft Terminal Services. However, when supported by the client software, the connection handler uses a virtual X11 channel (rdpx11) that transfers unfiltered X11 traffic to the local X server displaying the desktop. The connection handler can always fall back to plain RDP commands if necessary, which means that remote desktops can be accessed from any existing RDP client.

Client Program

A special RDP client is provided for SUSE Linux Enterprise Desktop that implements Nomad-specific extensions for X11 protocol forwarding and the ability to composite remote desktops locally when appropriate compositing manager plug-ins are loaded.

Compositing Manager Extensions

Compositing allows for advanced visual effects of application windows, such as transparency, fading, scaling, contorting, shuffling and redirecting.

Nomad lets you remotely access desktops from different physical locations. For example, you can access the same session from home or from work. After an interruption of your work session, just move to another terminal and resume work there. It is also possible to copy the currently running environment to a mobile device like a laptop. With Nomad you can also share desktops for collaboration or training purposes, allowing remote control and administration.

If you have desktop effects enabled, the graphic acceleration takes place on the receiver site (the machine you are sitting in front of), because it has direct access to the graphics and input hardware. The sender is where the actual desktop and its applications reside (the remote system you are accessing). This can be a server in data-center, an instance in a cloud, or a virtual machine.

Nomad Prerequisites

In order to use Nomad the rdesktop package needs to be installed on your local machine. Additionally, the following packages can be installed:

  • compiz

  • compiz-plugins-dmx

  • compiz-fusion-plugins-main

  • libcompizconfig

  • python-compizconfig

  • compiz-manager

  • simple-ccsm

  • tsclient

On the remote machine supplying the desktop, the xrdp package needs to installed, containing an open source remote desktop protocol (RDP) server.

Additionally, the following packages can be installed:

  • compiz

  • compiz-plugins-dmx

  • compiz-fusion-plugins-main

  • libcompizconfig

  • python-compizconfig

  • compiz-manager

  • simple-ccsm

Installation and Set-Up

[Note]Desktop Effects

If you intend to use desktop effects on the remote desktop, make sure the compiz-plugins-dmx package is installed on both systems: the system that provides the remote desktop as well as the local system accessing the remote desktop.

Local Machine

The local machine acting as host usually does not need any special configuration. As soon as the rdesktop package is installed, you can use the rdesktop command line tool to connect to the remote machine that provides the desktop. If you prefer a graphical user interface, additionally install the tsclient package. tsclient (Terminal Server Client) is a GNOME front-end for rdesktop and other remote desktop tools, supporting also Xnest and VNC clients (vncviewer). For improved performance and desktop effects, install the additional compiz packages.

However, if you are using KDE, you may need to execute the following command as root first:

cp /etc/pam.d/xrdp-sesman /etc/pam.d/gdm

Otherwise login will fail while trying to connect to the remote desktop.

Remote Machine

However, you need to prepare the remote machine providing the desktop as follows:

  1. Install the xrdp package. This will automatically add the xrdp server to runlevel 5. To start or stop the service manually, run /etc/init.d/xrdp start or /etc/init.d/xrdp stop as root.

  2. Configure the firewall to allow connections to port 3389 as this port is used for RDP connections. Start YaST and select Security and Users+Firewall. Click Allowed Services and select the zone for which to allow the service. Click Advanced and enter 3389 as TCP Port. Confirm your settings in YaST.

  3. If you want to use 3D desktop effects, install the additional compiz packages. This will improve performance significantly when using a client with support for virtual channels. By enabling desktop effects on both the local and remote desktop, the local compositing manager will be able to apply effects to the elements coming from the remote desktop.

Using Nomad

As soon as xrdp is running and port 3389 is open on the remote machine, you can connect to the remote host with your RDP client. To connect, either use the rdesktop command line tool or the tsclient providing a graphical user interface.

Connecting to the Server Using rdesktop

To establish a connection with compressed mode for user tux, run the following command from a shell:

rdesktop  -u tux -z server

with server being the hostname or IP address of the remote machine.

This starts a login screen for the specified user where he can log in to the remote desktop. Desktop sessions via xrdp are independent and do not conflict with regular display managers like GDM or KDM. To terminate the connection, close the connection window.

You can set a number of options when establishing the connection. For example, you can use full screen mode, choose a certain keyboard layout or adjust the geometry. Learn more about the available rdesktop options with rdesktop --help.

Connecting to the Server Using tsclient

  1. Press Alt+F2 and enter tsclient to start the graphical front-end for rdesktop.

  2. Click Add Connection and select Windows Terminal Service.

  3. With Host specify the hostname or IP of the remote machine you want to connect to into Host.

  4. If wanted, enter also a Username and Password with which to connect to the remote machine.

  5. Set the other options according to your needs and wishes or leave them at the default and confirm your changes with OK to display an entry for the newly specified connection.

  6. To edit or remove the connection, select the connection entry and use the context menu or the respective icons from the toolbar.

  7. To start the connection, right-click the connection entry and select the respective entry from the context menu.

    This starts a login screen for the specified user where he can log in to the remote desktop. Desktop sessions via xrdp are independent and do not conflict with regular display managers like GDM or KDM.

  8. To terminate the connection, close the connection window.

Troubleshooting

If you have difficulties establishing a connection, proceed according to the following list.

Is the xrdp Server Up and Running on the Remote Machine?
  1. Check if the xrdp package is installed on the remote machine providing the desktop.

  2. Check if the xrdp service is running.

  3. If not, start or restart it manually by executing the following command as root: /etc/init.d/xrdp start or /etc/init.d/xrdp restart.

    Two processes should be running after starting the xrdp service: xrdp and xrdp-sesman. If one of them fails to start for some reason, starting these processes manually in the foreground will most likely tell you what is wrong.

  4. To start the processes manually, become root and run /usr/sbin/xrdp-sesman -n and /usr/sbin/xrdp -nodaemon.

  5. Also check the xrdp-sesman output in /var/log/xrdp-sesman.log and the xrdp output in /var/log/messages for more information.

For More Information

For more information about Nomad, refer to http://en.opensuse.org/Nomad.