µbuntu

µbuntu

Status

Introduction

Create an Ubuntu derivative suitable for use on embedded systems and appliances such as home theatre systems.

Rationale

Many appliances are now being powered by Linux. As such, it makes a lot of sense for Ubuntu to target this space.

Scope and Use Cases

There are two different scopes in play:

mini-ubuntu:

  • Appliance level, such as home theatre, PVR
    • Larger footprint
    • Custom applications for each appliance
    • should be maintainable with standard distribution tools

µbuntu: (pronounced myu-buntu"??)

  • Embedded class machines such as iPaq
  • probably not maintained - install once and then leave well alone. Doing something maintainable is probably not doable using a full ubuntu installation of any kind. A solution might be a package-based system based on udebs with library reduction, but this would be very, very hard to maintain too.
  • Absolute MAXIMUM Target size for base install: 100MB; target could be reduced to approximately 8MB as a minimum

  • Suitable for flash media
    • Separate read-only and read-write data on different filesystems
    • Support read-only root? This is a popular configuration, but what are the use cases? read-write data are strictly separated? See also ThinClient

    • Installation to flash media
    • Cross-installation (e.g., install onto flash media on i386 development system, insert into ARM embedded device)
    • uclibc

Implementation Plan

mini-ubuntu

  • Create minimal system seed

µbuntu:

  • use minimal seed from above
  • Investigate cross installation
  • stripping packages of docs, etc. - hooks in dpkg to do this?
  • create image of system for installation and replication
  • alternative X implementation
  • GPE or qutopia for environment

The minimal seed should consist of the bare minimum of packages required to create a useful system. System integrators and ISVs would then integrate their applications on top of this shell; they could also select other packages as required.

µbuntu requires that we go through some extra steps; we must be able to install from one platform (eg x86) to the target (eg arm) platform, and we must be able to only install the very minimum that a package requires to be useful; eg we strip out documentation. This will require hooks in dpkg to allow this to occur in an automated fashion.

This is an implementation of the dpkg classes specification. It would probably not be Breezy material as it would require a fair bit of work.

We must also create infrastructure to allow us to create images for automated installation onto embedded systems trivially.

Embedded devices that run X need to use an alternative implementation, such as TinyX or kdrive. We need to investigate the sanest implementation and package it. Also, we should provide an example graphical environment such as GPE for testing purposes.

Given the amount of work necessary for µbuntu, it is probably not Breezy material. A mini-ubuntu would be a first approximation and a very useful step along the way.

Data Preservation and Migration

µbuntu: It is unlikely that we want to try doing any data migration (as noted above we do not expect to do upgrades of OS level stuff) in the embedded space on JFFS2 or whichever we choose.

mini-ubuntu: In the mini-space we're not limited to a particular filesystem and so can enable xattr etc without issue. xattr would be needed if the vendor wanted to use SELinux for increased security, such as on a router.

Packages Affected

  • dpkg

  • everything else

dpkg would need to be extended to provide hooks to allow for non-installation of chunks of packages to save space or the image would have to be post-processed to be pruned and compressed. In the long term, one would imagine debhelper (or even dpkg proper) would automatically assign files to different classes depending on file locations.

Other packages in the minimal seed would need to be modified to provide information to the hooks in question.

User Interface Requirements

Outstanding Issues

  • Find a process that works and document that. Possibly expose it via launchpad.
  • handhelds.org seems to be interested in discussing work with Ubuntu on this, as expressed by George France and Florian Boor on IRC and in e-mail.

UDU BOF Agenda

UDU Pre-Work

UbuntuDownUnder/BOFs/µbuntu (last edited 2008-08-06 16:40:43 by localhost)