MeeGo 1.2 Harmattan Developer Documentation Develop for the Nokia N9

Troubleshooting Harmattan Platform SDK

I am unable to install MeeGo 1.2 Harmattan Platform SDK using the installer.

You can alternatively install Harmattan Platform SDK manually without using installer scripts. Here are also instructions for the non-Debian installation of Harmattan Platform SDK.

Scratchbox does not start after a reboot on my host.

Most likely, you are using a non-Debian based Linux distribution (where Scratchbox has been installed using tarballs). In that case, rebooting your host clears away all the mounts and binfmt_misc registrations that Scratchbox requires to work.

To get your Scratchbox working again after reboot, enter the following command as root:

 $ sudo /scratchbox/sbin/sbox_ctl start

I get "cannot connect to X server" when I try to run any application inside Scratchbox.

You need to check the following:

  • Xephyr is running outside Scratchbox.
  • The DISPLAY variable set inside Scratchbox matches the display variable used to launch Xephyr.
  1. To check the value of the display variable inside Scratchbox, enter the following command:
     echo $DISPLAY 
  2. To set a new display value, enter the following command:
     export DISPLAY=:2 

I get "error: Autoconf version 2.62 or higher is required" when I compile my application.

Inside Scratchbox, if you call autoconf, automake, or any other autotool, it runs the older versions of internal autotools used by Scratchbox (/scratchbox/tools/bin/).

To explicitly call the newer versions of autotools from the Scratchbox targets:

  1. Open your debian/rules file.
  2. Add the following lines to the beginning of the file:
export SBOX_REDIRECT_IGNORE=/usr/bin/automake:/usr/bin/autoreconf:/usr/bin/aclocal:/usr/bin/autoconf:/usr/bin/autom4te:/usr/bin/m4
export AUTOMAKE=/usr/bin/automake
export ACLOCAL=/usr/bin/aclocal
export AUTOCONF=/usr/bin/autoconf

I get "mmap: Operation not permitted" on the ARMEL target when I try to run any application.

This error is seen on newer kernels that prevent the user from accessing /proc files. Thus, QEMU cannot read the mmap_min_addr value.

As a workaround, explicitly set the mmap_min_addr value for the SDK installer script.

  1. To do this manually, enter the following command outside Scratchbox:
     echo 4096 > /proc/sys/vm/mmap_min_addr 
  2. To retain the change after reboots:
    a. Add the following line to /etc/sysctl.conf:
     vm.mmap_min_addr = 4096 
    b. To apply the changes, enter the following command with root permission:
     $ sudo sysctl -p 

I get "Hangup tset: unknown terminal type" when I change the target in Scratchbox.

The following error is displayed on Debian Squeeze:

tset: unknown terminal type xterm
Terminal type?

To solve the problem, press Ctrl + D.

Shell is restarted:

Shell restarting...
[sbox-HARMATTAN_X86: ~] >

The target is changed and you are in command prompt.

Virtual keyboard does not pop up inside Scratchbox

The virtual keyboard behaves inconsistently with mcompositor. To use it for testing purposes, start Matchbox window manager and X composite manager outside Scratchbox on the same display as Xephyr.

I get "Environment variable DISPLAY is not set!" when I start GUI installer.

The problem occurs when you start GUI installer with the following command:

sudo ./ admininstall

GUI installer is not started, and the following error appears:

Environment variable DISPLAY is not set!
Failed to start-up Qt GUI, for details see /tmp/harmattan-sdk-setup.log
Fall back to command line interface? ([y]/n)

To solve the problem, type "n" and start the GUI installer. Enter the following command:

sudo env DISPLAY=$DISPLAY ./ admininstall

I get "Could not connect to the D-Bus session bus" when I start an application or process.

This probably happens because the application does not know the session bus address.

To solve the problem:

  1. Enter the following command inside Scratchbox or simply run your application with meego-run.
     [sbox-HARMATTAN_X86: ~] > eval `dbus-launch --auto-syntax`
  2. Try again to start the application or process.

Xephyr crashes on running "meego-sb-session stop".

To launch Xephyr without the -host-cursor option, enter the following command:

Xephyr :2 -screen 480x854x16 -dpi 96 -ac +extension Composite &