EmbeddedUbuntu

Differences between revisions 3 and 23 (spanning 20 versions)
Revision 3 as of 2005-11-02 00:12:22
Size: 5979
Editor: 209
Comment: Review
Revision 23 as of 2005-11-05 17:34:50
Size: 6946
Editor: 209
Comment:
Deletions are marked like this. Additions are marked like this.
Line 8: Line 8:
Line 10: Line 11:
Create an Ubuntu derivative suitable for use on embedded systems. Embedded Linux is a fast growing option in the world of mobile devices, but the existing frameworks to embed Linux are either complex (e.g. use too many hacks to fake a native environment) or use proprietary code on the target side. This brings a lot of constraints to ease the porting of desktop applications to the handheld world and make a really Free embedded OS. Embedded Ubuntu is an initiative to build a community around the development of a highly flexible (albeit simple) framework to generate customised Ubuntu derivatives for target mobile devices.
Line 14: Line 15:
There are over 1 billion mobile phone users worldwide and over 2
billion connections. Such mobile devices, PDAs and new embedded
devices such as Internet Tablets could be of more use to a wider
population, mostly to those who cannot afford to pay high prices to
have multimedia applications in their hands. Since the Ubuntu
principle is to have Linux for human beings, to embed Ubuntu into such
mobile devices is the fundamental basis of having people not only
connected but humanly connected.
There are over 1 billion mobile phone users worldwide and over 2 billion connections. Such mobile devices, PDAs and new embedded
devices such as Internet Tablets could be of more use to a wider population, mostly to those who cannot afford to pay high prices to have multimedia applications in their hands. Since the Ubuntu principle is to have Linux for human beings, to embed Ubuntu into such mobile devices is the fundamental basis of having people not only connected but humanly connected.
Line 25: Line 20:
 * Maria and her class mates in a primary school in Itaunas, a fisher village in the Southeast of Brazil, need to make up their report on how to protect the environment of dolphins to send to other children in Sao Paulo who have never sen a dolphin in their lives. They've just being awarded a set of Internet Tablets to build their content, to be recorded with a digital camera, but they came with WindowsCE and they don't have the proper license to do this. Jeff arrives in the village and status for some days vacation during his Ubuntu World evangelist tour. He heard in the local community about this problem. Then he grabs his "Ubuntu evangelist kit" and goes to the school, teaches about Ubuntu and install it on their devices through a USB port and a portable DVD drive. The kids use *Mobile EduUbuntu* (a light version of EduUbuntu) and through WiFi connection they send their content (5 minutes video) to a 3G mobile phone belonging to their teacher who sends the content to the school in Sao Paulo.  * Maria and her class mates of a primary school need to make up a report on how to protect the environment of dolphins, digitally recorded by them. They ask assistance from Jeff who selects a suitable subset of Ubuntu applications. He then generates an Embedded Ubuntu system image for the Internet Tablets they have and flashes it on the devices. The kids use Gstreamer, for example, and through WiFi connection they send their 5 minutes content to a 3G mobile phone of their teacher, which sends the content to other childreen in another city who never saw a dolphin in their lives.
Line 27: Line 22:
 * Medicins Sans Frontier (MSF) will run mobile clinics in Karbi and Dimasi (eastern part of India) as MSF have a good relationship with both sites that are embroiled in violent ethnic conflict. A powerful company has distributed PDAs to both sides to connect their students and help the process of learning respect for each other. However, license issues come as an obstacle and only those few, which are a minority, who can upgrade their software will be able to communicate, although they are connected. Jeff learns about this problem from a friend of his who works for MSF. He teaches his friend about Ubuntu principles and its tools and how they can lead to wider possibilities for making better use of technology. His friend receives a DVD from Jeff, installs Ubuntu and EduUbuntu on the PDAs so that children can start talking to each other and share their knowledge about different ethnicities, religions etc.

 * Miriam is a family practice physician who works on a remote village in Ghana, West Africa. She is the only physician available to all the population in that area. She has only been there for a year and still lacks the experience of many years working in another country and dealing with Tropical diseases. One day she gets a young patient and after examining him she can only narrow down his malady to three possibilities. She is unable to find definite information in her few medicine dermatology books to help her make the diagnosis. However, she knows she can find help if she could contact a specialist, a dermatologist she knows in Accra, Ghana's capital city. She installed Ubuntu on her PDA to access his office and discuss online with him about the three possibilities. The dermatologist makes the differential diagnostic in a few minutes and Miriam starts the correct treatment more rapidly than she would otherwise have been able. One more life, much less suffering, because of it was possible to reach someone who had the knowledge to help.
 * Miriam is a family practice physician who works on a remote village. She needs to send photos of her patients' lesons to an specialist in an advanced medical center to make the differential diagnostic. She receives an Embedded Ubuntu DVD with pre-selected suitable applications from a friend and installs it on her PDA/Internet Tablet. She accesses her office on the Interner through WiFi connection and her cell phone, sends the photos and discuss with the specialist.
Line 33: Line 26:
EmbeddedUbuntu will initially cover only ARM-based platforms, preferably with a LCD display. This includes, for instance, PDA's and Internet Tablets; but not such hardware as HP's i386 based tablet PC. EmbeddedUbuntu will initially cover only ARM-based platforms, preferably with a LCD display. This includes, for instance, ARM-based PDAs and Internet Tablets. Development is being done on the TI OMAP 5912 Starter Kit (see http://tree.celinuxforum.org/CelfPubWiki/OSK for more information about this device).
Line 35: Line 28:
== Design ==

{{{XXX: dsilvers: Should this be empty?}}}
There are a number of OMAP (a popular embedded platform) devices already running Linux: http://www.muru.com/linux/omap/devices/. They should be easier to work with because there is kernel support for most of their hardware, so we will concentrate on supporting this class of devices first.
Line 41: Line 32:
 * Minimal System
        * Create a minimal seed, using GPE as graphical environment and select some user applications (e.g. EduUbuntu).
        * Use the seed above to generate the list of packages to be imported from Debian ARM distribution
        * Implement a cross-installation system:
                - Create a package that contains a statically linked version of QEMU ARM user emulator (qemu-arm-static)
                - Use dpkg-cross to install the ARM libc6 package on the host (usually not ARM-based).
                - Use the binfmt_misc kernel module to support running ARM binaries on non-ARM platforms, using QEMU as interpreter
                - Modify debootstrap to properly work for cross-bootstrapping, allowing us to create a minimal bootstrap system
        * Implement dpkg hooks that strip documentation and other files not necessary for running applications to reduce the final image size
        * Investigate a method to create system images to be flashed on the mobile device.
        * Package the rest of GPE modules not yet on universe.
 * Cross-Compile Linux kernel and bootloader to specific platforms
 * Create an emulated environment of the target platform with no memory or storage restrictions. This allows us to use traditional tools like dpkg, debootstrap and apt-get to generate and update the target filesystem. (DONE)
   * Create a package that contains a statically linked version of QEMU ARM user emulator (qemu-arm-static)
   * Use dpkg-cross to install the ARM libc6 package on the host (usually not ARM-based).
   * Use the binfmt_misc kernel module to support running ARM binaries on non-ARM platforms, using QEMU as interpreter
Line 54: Line 37:
 * Distribution Mechanism: Create installation CD with tools needed to flash the generated system images on mobile devices  * Implement a cross-installation system (DONE)
   * Modify debootstrap to properly work for cross-bootstrapping, allowing us to create a minimal bootstrap system
Line 56: Line 40:
 * Integrate **lightweight EduUbuntu** applications  * Implement dpkg hooks that strip documentation (and other files not necessary for running applications).
Line 58: Line 42:
{{{XXX: dsilvers: Do we need an arm port of Ubuntu to achieve this?}}}  * Investigate a method to create system images to be flashed on the mobile device.
Line 60: Line 44:
=== Code ===  * Investigate flashing methods for each platform (for OSK 5912: http://tree.celinuxforum.org/CelfPubWiki/FlashRecoveryUtility).
Line 62: Line 46:
{{{XXX: dsilvers: Should this be empty?}}}  * Select lightweight packages suitable (or easily adaptable) for use on embedded devices.
   * Select a set of applications to build a very simple reference system (for example, for demos); initially, GPE will be used as reference graphical environment.
   * Package the rest of GPE modules not yet on universe.
   * Create an archive with a pool of ARM packages ready to be installed on the embedded system. Not all applications currently available on Ubuntu are suitable for embedded hardware, so they should be ommited on this archive.

 * Compile Linux kernel and bootloader to specific platforms (tested and working for OSK 5912 platform).
  * The Linux kernel used in this process will be the linux-omap tree, available from http://www.muru.com/linux/omap. This tree has patches (periodically synced upstream) necessary to have a fully working kernel on OMAP-based devices.
  * For the bootloader, we will use U-boot, available from http://sourceforge.net/projects/u-boot.

 * Distribution mechanism: create installation CD with tools needed to flash the generated system images on mobile devices.
Line 66: Line 59:
{{{XXX: dsilvers: Should this be empty?}}} The OS that was previously installed on the mobile device will be lost after flashing the customized Ubuntu. Support for backing up the previous OS can be added in future.
Line 70: Line 63:
QEMU should be intensively tested for full system installation.  * Some applications behave badly when running under QEMU. For instance, "update-gdkpixbuf-loaders" (run by some post-installation scripts) currently segfaults when running under QEMU. We should investigate why this happens and fix QEMU (or the application itself where aplicable). Some syscalls are not implemented in QEMU yet, but they do not seem to be critical for building and installing packages.

 * QEMU should be intensively tested for full system installation. For now it was tested for a minimal debootstrap installation. Basic client X libraries and applications also installed without problems. Package building (using debuild) worked fine too.
Line 73: Line 68:

 * FabioDiNitto suggested either building packages natively or using pre-built cross-toolchains to build the ARM archive. Packaging cross-toolchains for each host-target combination would be unpractical.
 * LaMontJones explained a lot about how Build Daemons work and how a new archive pool is created. He also suggested using breezy as a base and initially building main (maybe not whole main?) and those packages from universe we might need.
 * MattZimmerman asked us to send the patches we have for existing packages, and submit the new packages for inclusion into universe, so we can have a working cross-development environmment for dapper.

Summary

Embedded Linux is a fast growing option in the world of mobile devices, but the existing frameworks to embed Linux are either complex (e.g. use too many hacks to fake a native environment) or use proprietary code on the target side. This brings a lot of constraints to ease the porting of desktop applications to the handheld world and make a really Free embedded OS. Embedded Ubuntu is an initiative to build a community around the development of a highly flexible (albeit simple) framework to generate customised Ubuntu derivatives for target mobile devices.

Rationale

There are over 1 billion mobile phone users worldwide and over 2 billion connections. Such mobile devices, PDAs and new embedded devices such as Internet Tablets could be of more use to a wider population, mostly to those who cannot afford to pay high prices to have multimedia applications in their hands. Since the Ubuntu principle is to have Linux for human beings, to embed Ubuntu into such mobile devices is the fundamental basis of having people not only connected but humanly connected.

Use cases

  • Maria and her class mates of a primary school need to make up a report on how to protect the environment of dolphins, digitally recorded by them. They ask assistance from Jeff who selects a suitable subset of Ubuntu applications. He then generates an Embedded Ubuntu system image for the Internet Tablets they have and flashes it on the devices. The kids use Gstreamer, for example, and through WiFi connection they send their 5 minutes content to a 3G mobile phone of their teacher, which sends the content to other childreen in another city who never saw a dolphin in their lives.

  • Miriam is a family practice physician who works on a remote village. She needs to send photos of her patients' lesons to an specialist in an advanced medical center to make the differential diagnostic. She receives an Embedded Ubuntu DVD with pre-selected suitable applications from a friend and installs it on her PDA/Internet Tablet. She accesses her office on the Interner through WiFi connection and her cell phone, sends the photos and discuss with the specialist.

Scope

EmbeddedUbuntu will initially cover only ARM-based platforms, preferably with a LCD display. This includes, for instance, ARM-based PDAs and Internet Tablets. Development is being done on the TI OMAP 5912 Starter Kit (see http://tree.celinuxforum.org/CelfPubWiki/OSK for more information about this device).

There are a number of OMAP (a popular embedded platform) devices already running Linux: http://www.muru.com/linux/omap/devices/. They should be easier to work with because there is kernel support for most of their hardware, so we will concentrate on supporting this class of devices first.

Implementation

  • Create an emulated environment of the target platform with no memory or storage restrictions. This allows us to use traditional tools like dpkg, debootstrap and apt-get to generate and update the target filesystem. (DONE)
    • Create a package that contains a statically linked version of QEMU ARM user emulator (qemu-arm-static)
    • Use dpkg-cross to install the ARM libc6 package on the host (usually not ARM-based).
    • Use the binfmt_misc kernel module to support running ARM binaries on non-ARM platforms, using QEMU as interpreter
  • Implement a cross-installation system (DONE)
    • Modify debootstrap to properly work for cross-bootstrapping, allowing us to create a minimal bootstrap system
  • Implement dpkg hooks that strip documentation (and other files not necessary for running applications).
  • Investigate a method to create system images to be flashed on the mobile device.
  • Investigate flashing methods for each platform (for OSK 5912: http://tree.celinuxforum.org/CelfPubWiki/FlashRecoveryUtility).

  • Select lightweight packages suitable (or easily adaptable) for use on embedded devices.
    • Select a set of applications to build a very simple reference system (for example, for demos); initially, GPE will be used as reference graphical environment.
    • Package the rest of GPE modules not yet on universe.
    • Create an archive with a pool of ARM packages ready to be installed on the embedded system. Not all applications currently available on Ubuntu are suitable for embedded hardware, so they should be ommited on this archive.
  • Compile Linux kernel and bootloader to specific platforms (tested and working for OSK 5912 platform).
  • Distribution mechanism: create installation CD with tools needed to flash the generated system images on mobile devices.

Data preservation and migration

The OS that was previously installed on the mobile device will be lost after flashing the customized Ubuntu. Support for backing up the previous OS can be added in future.

Outstanding issues

  • Some applications behave badly when running under QEMU. For instance, "update-gdkpixbuf-loaders" (run by some post-installation scripts) currently segfaults when running under QEMU. We should investigate why this happens and fix QEMU (or the application itself where aplicable). Some syscalls are not implemented in QEMU yet, but they do not seem to be critical for building and installing packages.
  • QEMU should be intensively tested for full system installation. For now it was tested for a minimal debootstrap installation. Basic client X libraries and applications also installed without problems. Package building (using debuild) worked fine too.

BoF agenda and discussion

  • FabioDiNitto suggested either building packages natively or using pre-built cross-toolchains to build the ARM archive. Packaging cross-toolchains for each host-target combination would be unpractical.

  • LaMontJones explained a lot about how Build Daemons work and how a new archive pool is created. He also suggested using breezy as a base and initially building main (maybe not whole main?) and those packages from universe we might need.

  • MattZimmerman asked us to send the patches we have for existing packages, and submit the new packages for inclusion into universe, so we can have a working cross-development environmment for dapper.

EmbeddedUbuntu (last edited 2009-04-30 12:54:01 by 193)