PyMaemo/Quick start guide

Contents

Running Python code on N900 (quick start guide)

This article will describe the necessary steps to get your Python application running on N900.

It will cover:

  • Installation of necessary packages and USB connectivity setup
  • How to transfer the application files to the N900
  • How to run the application

What will not be covered:

  • Programming environment setup
  • Application packaging and deployment

Requirements

Before continuing, make sure you have:

Tablet requirements:

  • Some kind of connectivity to the tablet (e.g. WLAN or GPRS), so that you can install required packages.
  • The N900 USB cable, which will be used to transfer files to the tablet.

Host requirements:

  • A SSH client. For Linux, OpenSSH (through the "ssh" command) is enough. For Windows, Tera Term can be used.
  • A SCP/SFTP client. For Linux, OpenSSH (through the "scp" command) is enough. The KDE/GNOME environments also have built-in support for these protocols. For Windows, you can try WinSCP or FileZilla.

For the purposes of this tutorial, you will not need Scratchbox installed. Scratchbox would only be necessary if you are unable to test your applications on the actual tablet.

Installing required packages on N900

You will need to install two applications on the tablet:

  • OpenSSH Server
  • rootsh

OpenSSH is needed to run commands remotely on your N900. This will make testing on the device a lot easier.

rootsh allow to run commands as root on the X Terminal (using "sudo gainroot"). See http://wiki.maemo.org/Root_access for other options to enable root access.

To install these applications, follow these steps:

  1. Enable extras repository. See http://wiki.maemo.org/Extras#Using_Extras for how to do it.
  2. Install the packages listed above.
  3. The installation will ask for a new root password for SSH access. Choose a good one.
  4. Wait for installation to complete.

Enabling USB networking

USB networking allows to easily and quickly transfer files to the device and connect to it using SSH. To enable it, follow these steps (you need to repeat them every time you reboot the device):

  1. If the USB cable is plugged and in "Mass storage mode", unplug the cable and plug it again, now selecting "PC Suite Mode".
  2. On N900, open "X Terminal" and run:
sudo gainroot
ifup usb0
  1. Now you need to configure the host. This is dependent on which OS (or Linux distro) you use, see http://wiki.maemo.org/USB_networking#Host_USB_Network_Configuration for detailed instructions for various OSes and Linux distros.

From now on you can connect to the N900 using any SSH client and the following information:

Host: 192.168.2.15
Port: 22
User: root
Password: the password setup earlier

For instance, from a Linux terminal, you can connect to the tablet using this command:

ssh root@192.168.2.15

Preparing the N900 for Python Development

To enable the full power for Python development for Maemo, you must enable the "extras-devel" repository on your device. Be advised that this might be a risky operation because extras-devel contains many untested and possibly broken packages. But it also contains the latest versions of all available Python bindings for Maemo, which we are interested on.

Note that the requirement to enable the "extras-devel" repository might be removed later.

To enable extras-devel add a new catalogue to the Application Manager, as instructed in http://wiki.maemo.org/Extras-devel (did you see the big warning on that page?)

Next, you can install the basic Python environment on the tablet by running this command on the SSH terminal:

apt-get update && apt-get install maemo-python-device-env

Running the Python application on the device

Now that you have the N900 properly setup, you just need to copy the Python code to the device and run it.

The simplest way to copy files it to use a SFTP or SCP client. There are many free clients available for most OSes (we listed some examples on the "Requirements" section). On the Linux command line, you can use:

scp -pr my_application/ root@192.168.2.15:/root/my_application/

Replace "my_application/" with the path to the directory which contains your application files.

Finally, to run the application on the tablet, use (from a SSH terminal):

cd /root/my_application
python my_application.py