Maemo development images with OpenEmbedded * Introduction We have a set of decriptions to support building complete filesystem images for the Nokia 770 using the OpenEmbedded build system. The idea of this project is to have a flexible support for creating various specialized filesystems and packages for the Nokia 770 Internet Tablet. * OpenEmbedded for Maemo and Nokia 770 So what can OpenEmbedded do for a developer who wants to develop software for Maemo and/or the Nokia 770? OpenEmbedded now includes support for the Nokia 770 hardware platform. This means that you can create filesystem images for this hardware platform featuring various pieces of software. The quality of these images depends on the hardware support for the Nokia 770 platform of the selected software package. Apart from Maemo images you can build build images with the GPE software environment which has basic support for the 770 (target: gpe-image). The Maemo image is intended to become a full-featured development image for the Nokia 770 Maemo environment. In theory you can build this image for other hardware platforms, but currently the 770 is the only supported one. * Environment Setup and Build Depending on what you intend to do there are several ways to set up OpenEmbedded. First install the necessary software to run OpenEmbedded, information about this are located here: http://oe.handhelds.org/cgi-bin/moin.cgi/RequiredSoftware It is a good idea to choose a fast computer with at least 512MB of RAM and 5GB of free disk space for this task. Both x86 and PowerPC based machines are known to work. The basic steps to set up your OpenEmbedded environment are documented here: http://oe.handhelds.org/cgi-bin/moin.cgi/GettingStarted Not that OpenEmbedded changed from Bitkeeper to Monotone for keeping its source, so all the Bitkeeper related information in that page are outdated. For imformation about how to get OE from the revision control system please refer to this page: http://oe.handhelds.org/cgi-bin/moin.cgi/MonotonePhraseBook We need one change in the an OpenEmbedded description which isn't in OE for compatibility reasons at the moment. We need to make /sbin/init to become a file instead of a link, otherwise the root filesystem check in the inird will fail. The patch can be found here: http://download.kernelconcepts.de/sysvinit_2.86.bb_770.patch Go to the packages/sysvinit subdirectory and apply the patch with the following command: patch -p0 < sysvinit_2.86.bb_770.patch [TBD: basic setup in local.conf, file structure] Depending on which filesystem image you intend to build you need the following setup in your local.conf: maemo-image: DISTRO = "maemo-1.0" MACHINE = "nokia770" gpe-image: DISTRO = "familiar" (or current familiar release like "familiar-0.8.3") MACHINE = "nokia770" After you have set up everything change to your working directory ($TMPDIR) and build your image target running "bitbake maemo-image" or " bitbake "gpe-image". When the build has finished the image file is located in the subdirectory deploy/images/. [Add: example files] * Installation and Test To install your OE-generated filesystem you need the 770 "flasher" utility and the USB cable which is shipped with the device. You need to have root privileges to run the flasher utility. We assume you have it installed in a directory in PATH. To flash the filesystem to the device connect the USB cable and run: flasher -f -r For details refer to the documentaion of the flasher utility. The first startup of the image takes some time, so be patient. Current issues: - The maemo images are missing locale files and a part of the theme. - Automatic screen calibration doesn't work in maemo images. - GPE lacks a proper mapping of the hardware buttons to actions. - Locale support in GPE images doesn't work. * Some Internals