HOWTO: Bringing HIPL to the Nokia 770 yourself

Disclaimer
Abstract
Prerequisities
Building HIPL in Scratchbox and installation
Usage of HIPL applications
Other software for Nokia 770


Disclaimer

Please note that we provide no warranty. Following any steps described below is at your own risk.

Abstract

This document explains how to build and install HIPL userspace applications on the Nokia 770 Internet Tablet. HIPL stands for Host Identity Protocol for Linux. The text provides you with a set of requirements and actions needed to be taken before you will be able to run HIPL on your tablet.

Prerequisities

1. Terminal
It is hard to imagine life in a Linux environment without a terminal. Debian-based Nokia 770 is not an odd one. A programm called 'Osso XTerm' can be downloaded from maemo.org site. The link provides you with installation and usage tips.
2. Root privileges
In order to run hipl applications after you have it installed on your tablet and for some other purposes you need to have root privileges. This may be accomplished if you follow the steps this howto suggests.
3. Ssh
Secure Shell is not mandatory but would make your life a lot easier as tablet's input method implies use of stylus pen on the touch screen. You can use either 'Dropbear SSH Server and Client' or 'OpenSSH SSH Server and Client'. These tools will allow you to login to your tablet remotely from your PC. Please follow the instructions given by the links to install and set up ssh on the device.
4. Scratchbox
In order to be able to compile software for Nokia tablet (kernel and applications) you need to use a cross-compilation tool called Scratchbox . The latest version of OS 2006 IT (3.2006.49-2) and maemo 2.2 gregale support Scratchbox Apophis R4 and we recommend using it. Please refer to scratchbox web page for online documentation on how to set up Scratchbox environment and an armel target on your PC.
5. Modified and patched kernel
Modifications to the Nokia 770 linux kernel as well as some patches are necessary. There is a HIP-enabled kernel image in the directory 'kernel' which has been compiled for you. You are supposed to download a flasher-3.0 utility and then use it to deploy new kernel image to your tablet.
The kernel version is 2.6.16. Note that the kernel sources were fetched from maemo repository and they are different in a way from Linux vanilla kernel sources. The patches to be applied are 'beet', 'interfamily', 'hipmod' and 'policy-sleep'.

Warning! Before you make any steps towards the new kernel on your Nokia 770 it is strongly advised to use 'Backup' utility from the 'Control panel' on the device to back up your data.

The way to deploy the kernel onto the device is as follows (taken from this howto):

  • PC: Make sure that you have the flasher-3.0 as an executable programm (after downloading it use 'chmod' to change file access permissions) and put the kernel image in the same directory
  • 770: Unplug charger from Nokia 770, otherwise you wont be able to do the next step
  • 770: Switch off the Nokia 770 and connect it to your computer via USB
  • PC: On your PC as root (or as a normal user with rights to use the USB port) execute ./flasher-3.0 -f -k name_of_the_image -R
  • PC: You should see now on the console: "Suitable USB device not found, waiting"
  • 770: Now switch the Nokia 770 on using the power button WHILE holding the Home-button
  • PC: Watch the messages as the image loads to the 770 after which it reboots automatically

    Note: You might invoke flasher-3.0 utility without any arguments to see its whole set of options.

    Now if everything went smoothly you should have new kernel on your Nokia. You might want to verify it running on your terminal 'uname -a' or 'cat /proc/version'. In case you did not succeed in previous steps and discovered problems while deploying image onto your device (constant rebooting of the tablet may be such an example) you should refer to the howto's available on Maemo.org site (links are given below) and try the steps again.

    You will be able to get your Nokia 770 back to initial state by flashing the latest Fiasco image from Nokia site and restoring your documents then from a backup you made intentionally beforehand.

    Should you compile your tablet's kernel without our assistance and not use the image provided you should have a look at HIPL Manual and be aware what options are necessary to compile and configure kernel with. Please consider to refer to the links provided below for kernel compilation process. The latest kernel version available for Nokia 770 is 2.6.16. Fetch the sources and extract in your Scratchbox 'armel' target. Go into extracted 'kernel-source-2.6.16' directory and copy patches there. Use the following command and order to apply the patches before configuring and building the kernel:

    "patch -p1 < patch_name"

  • simple-beet-ph-patch-v1.0-2.6.16.5
  • interfamily-beet-ph-patch-v1.0-2.6.16.5
  • policy-sleep-2.6.16.5-v2.patch
  • hipmod-2.6.16.5-v1.patch

    The patches might be found in HIPL source tree provided at InfraHIP Project under this directory "patches/kernel/2.6.16.5/". After the patches have been successfully applied (no "failed..." output) you might proceed with configuring compilation as described in HOWTOs.

    Useful links:

  • How to compile the kernel (in case you decide to configure and compile Nokia 770 kernel by yourself)
  • Flash the latest Nokia image
  • Kernel guide for maemo bora and Nokia 800 (this howto can applied as well to Nokia 770 and kernel version 2.6.16)

    Building HIPL in Scratchbox and installation

    Once you have your 'armel' target ready in Scratchbox download HIPL userspace software using any method described on the InfraHIP Project web page. Go to the HIPL source tree and run the following commands:

  • ./autogen.sh
  • ./configure --options (see './configure --help'. Also, use '--enable-buggyipsec' for kernel versions prior to 2.6.20)
  • make
  • make armel-deb

    The last command will make an armel debian package 'hipl-1.0-1-armel.deb' to be installed on the tablet. You will find it under /test/packaging/ directory. Transfer this package to your tablet and install from the command line as root using 'dpkg -i hipl-1.0-1-armel.deb'. Right after this step you should have HIP daemon and other utilities available on your tablet:

    /usr/sbin/hipd
    /usr/sbin/hipconf
    /usr/sbin/hipsetup

    In case you would like to use our HIPL package it can be found in 'userspace' directory.

    Usage of HIPL applications

    For the usage of HIPL applications you would better have a look at the HIPL documentation. The appropriate chapters of this manual explain you how to run HIP base exchange between two hosts, test handover and other extensions. There is no striking difference for testing a HIP connection between Nokia 770 and i386 host from one described in the HIPL manual.

    Nevertheless, one thing related to tablet's features should be taken into account. To add or delete an IPv6 address to either of network interfaces on the Nokia 770 (wlan0, bnep0) you should use 'ip' tool instead of 'ifconfig'. At least that was the only option I succeeded with. 'ip' is a part of 'iproute' package so you have to install it as well on the tablet.

    The actual command for the Nokia 770 to add '3ffe::2/64' address to the wlan0 interface would be 'ip addr add 3ffe::2/64 dev wlan0'.

    You can delete it using 'ip addr delete 3ffe::2/64 dev wlan0'.

    Other software for Nokia 770

    You might want to look at other available software for Nokia Internet Tablet at maemo.org. You can also build any package yourself directly from sources inside your 'armel' target.



  • Last updated 10.10.07