Documentation/Maemo PC Connectivity Tutorial/Remote Access

Maemo PC Connectivity provides tools to access the desktop of a remote machine from a local machine over the network. That is, you can have the desktop GUI of your Maemo device displayed on your host PC and vice-versa. For that, you need to install Maemo PC Connectivity on the Maemo device and Host PC Connectivity on the host PC (Linux, Windows and Mac OS X). This chapter describes how to use these remote desktop tools. For simplicity, it is assumed that you already have a USB network working between the Maemo device and the host PC.

Contents

[edit] Using X11VNC

With the X11VNC server, it is possible to share the GUI (Graphical User Interface) of your Maemo device with your host PC. That is, you can access the desktop of your Maemo device remotely from the host PC as you are physically using it. Below is described how to configure your Maemo device and host PC for X11VNC access.

[edit] Configuring X11VNC for Maemo

If you installed Maemo PC Connectivity, your Maemo device already has a X11VNC server installed.

You can configure the X11VNC server through the PC Connectivity Manager applet, as described below.

  • Run Settings - Control Panel - Connectivity - PC Connectivity Manager.
  • Click on the Advanced button.
  • Select the Tool Manager tab.
  • Now you can enable and disable the X11VNC server, change the UDP port and set the loop mode, figure 5.3.
  • Click on the Apply button.
File:Mpc maemo nm x11vnc.png
Figure 5.3: PC Connectivity Manager - X11VNC tool

As the X11VNC server is not launched automatically when you turn the Maemo device on, you need to start it manually. You can use the PC Connectivity Manager wizard or start X11VNC as any third-party application from the installed application list.

[edit] Configuring X11VNC for Linux

If you installed Host PC Connectivity, your Linux host PC already has a VNC client called TightVNC Viewer. Otherwise, you should install the VNC client manually from TightVNC download page.

$ sudo apt-get install xtightvncviewer

You can access your Maemo device through the TightVNC Viewer application by giving the Maemo device IP address.

$ xtightvncviewer 192.168.2.15

[edit] Configuring X11VNC for Windows

If you installed Host PC Connectivity, your Windows host PC already has a VNC client called TightVNC Viewer. Otherwise, you can download and install TightVNC manually from TightVNC download page.

You can access your Maemo device through the TightVNC Viewer application by giving the Maemo device IP address.

  • Run Start - Programs - TightVNC - TigthtVNC Viewer, figure 5.4.
  • Type the IP address of your Maemo device and press the Connect button.
File:Mpc win vnc ip.png
Figure 5.4: TightVNC connection dialog

Now you should see the desktop of your Maemo device on the host PC screen, figure 5.5.

File:Mpc win vnc desktop.png
Figure 5.5: TightVNC remote desktop on Windows

[edit] Configuring X11VNC for Mac OS X

If you installed Host PC Connectivity, your Windows host PC already has a VNC client called TightVNC Viewer. Otherwise, you can download and install TightVNC Java version manually from TightVNC download page.

  • Download the TightVNC Java version.
  • Create a new folder and uncompress the zip file.
$ mkdir ~/tightvnc
$ mv tightvnc-1.3.10_javabin.tar.gz ~/tightvnc
$ cd ~/tightvnc
$ tar -zxvf tightvnc-1.3.10_javabin.tar.gz

You can access your Maemo device through the TightVNC Viewer application by giving the Maemo device IP address.

$ java VncViewer HOST 192.168.2.15 PORT 5900

Now, you should see the desktop of your Maemo device on the host PC screen, figure 5.6.

File:Mpc mac vnc desktop.png
Figure 5.6: TightVNC remote desktop on Mac OS X

[edit] Troubleshooting X11VNC

The current X11VNC server (0.9.3-maemo4) available for Maemo Diablo devices may crash if a key is pressed on the host PC keyboard and there is no mapping for that key on the Maemo device. A workaround is to manually add missing key mappings as described below.

You should install the xev application to the host PC to trace the key codes, which crash the Maemo device.

Here is how to install xev to the Linux host PC.

$ sudo apt-get install x11-utils

Execute the xev application on the host PC.

$ xev

Type the key on the host PC that crashes the Maemo device. You get something like this on xev output.

KeyPress event, serial 31, synthetic NO, window 0x2000001,
root 0x3f, subw 0x0, time 2488134890, (-257,171), root:(294,445),
state 0x10, keycode 48 (keysym 0xfe51, dead_acute), same_screen YES,
XLookupString gives 2 bytes: (c2 b4) "'"
XmbLookupString gives 0 bytes:
XFilterEvent returns: True

Get the key code name. In this example, it is >dead_acute. On the Maemo Diablo device, map this key to None in the /usr/share/applications/hildon/x11vnc.desktop file. Add the key mapping for dead_acute-None as described below.

Exec=/usr/bin/x11vnc -display :0 -nowf -noxdamage -noscr -remap dead_acute-None,<key_name_1>-None,<key_name_N>-None

On your Maemo Diablo device, restart X11VNC server and check if the problem got fixed.

[edit] Using Rdesktop

Rdesktop is a client to access remotely your Windows host PC from your Maemo device. Below are instructions on how to enable Rdesktop access for your Windows host PC and how to use the Rdesktop client on your Maemo device to access the desktop of your Windows host PC.

[edit] Configuring Rdesktop for Windows

You must enable the Remote Desktop feature on your Windows host PC so that you can control it remotely from your Maemo device. For that, you must be logged on as an administrator or as a member of the Administrators group for your Windows PC to enable the Remote Desktop feature.

To set up your Windows host PC for Rdesktop access:

  • Click Start, point to Settings, click Control Panel, and then double-click the System icon.
  • On the Remote tab, select the Allow users to connect remotely to this computer check-box, figure 5.7.
  • Ensure that you have the proper permissions to connect to your host PC remotely. For that, click the Select Remote Users... button to give access to your user account.
  • Click the OK button.
  • Leave your host PC running and connected to the network with Internet access.
File:Mpc win rdesktop.png
Figure 5.7: Windows Remote Access configuration

If you are running Windows XP Service Pack 2 and you enable Remote Desktop, Windows Firewall is automatically configured to allow Remote Desktop connections to your host PC. However, Remote Desktop does not work if you have Windows Firewall configured to allow no exceptions. To allow exceptions in Windows Firewall, open Security Center from the Control Panel, click Windows Firewall and clear the check-box next to Don't allow exceptions.

[edit] Configuring Rdesktop for Maemo device

If you installed Maemo PC Connectivity, your Maemo device already has a Rdesktop client installed.

Open Utilities - X Terminal and execute Rdesktop application.

$ rdesktop-cli -u <windows_user> -p <windows_password> <windows_ip_address>

You must pass your user name and password to access the given Windows host PC.

Now, you should see the desktop of your Windows host PC on your Maemo device screen.

[edit] Using X Tunneling

With X Tunneling, it is possible to execute an application on your Maemo device and display its GUI on your host PC screen and vice versa using an SSH connection. Below are instructions on how to configure X11 tunneling between the Maemo device and Linux and Max OS X host PC.

You should follow these steps to display the GUI of your Maemo device on your host PC. These instructions work with Linux and Mac OS X host PCs.

On Linux and Mac OS X host PCs:

$ Xephyr :3 -ac -dpi 96 -screen 800x480x16 -host-cursor &
$ ssh -l <maemo_device_user> -R 6002:<host_pc_ip>:6003 <maemo_device_ip>
$ export DISPLAY=:2
$ /usr/lib/sapwood/sapwood-server &
$ <run_application>

You should follow these steps to display the GUI of your Linux host PC on your Maemo device. These instructions work only with Linux host PCs.

On a Maemo device:

$ ssh -l <host_pc_user> -R 6000:<maemo_device_ip>:6000 -X <host_pc_ip>
$ <run_application>