EmbeddedUbuntu

Differences between revisions 6 and 7
Revision 6 as of 2005-11-02 18:10:38
Size: 4130
Editor: 209
Comment:
Revision 7 as of 2005-11-02 18:38:52
Size: 4187
Editor: 209
Comment:
Deletions are marked like this. Additions are marked like this.
Line 14: Line 14:
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 33: Line 27:
== Design ==

{{{XXX: dsilvers: Should this be empty?}}}
Line 39: Line 29:
 * 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.
   - 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 52: Line 34:
 * Distribution Mechanism: Create installation CD with tools needed to flash the generated system images on mobile devices  * Implement a cross-installation system:
   - Modify debootstrap to properly work for cross-bootstrapping, allowing us to create a minimal bootstrap system
Line 54: Line 37:
 * Integrate **lightweight EduUbuntu** applications  * Investigate a method to create system images to be flashed on the mobile device.
   - Implement dpkg hooks that strip documentation and other files not necessary for running applications to reduce the final image size
Line 56: Line 40:
{{{XXX: dsilvers: Do we need an arm port of Ubuntu to achieve this?}}}  * 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.

 * Compile Linux kernel and bootloader to specific platforms

 * Distribution mechanism: create installation CD with tools needed to flash the generated system images on mobile devices

Summary

In general, mobile devices for specific purposes are expensive. On the other hand, those for general purpose are not flexible enough. Embedded Ubuntu is a highly flexible 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.

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.
    • - 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:
    • - Modify debootstrap to properly work for cross-bootstrapping, allowing us to create a minimal bootstrap system
  • Investigate a method to create system images to be flashed on the mobile device.
    • - Implement dpkg hooks that strip documentation and other files not necessary for running applications to reduce the final image size
  • 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.
  • Compile Linux kernel and bootloader to specific platforms
  • Distribution mechanism: create installation CD with tools needed to flash the generated system images on mobile devices

Data preservation and migration

XXX: dsilvers: Should this be empty?

Outstanding issues

QEMU should be intensively tested for full system installation.

BoF agenda and discussion

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