Create filesystems for embedded devices

Registered by Oliver Grawert on 2012-04-24

While Ubuntu runs fine on low spec hardware, the minimal system requirements are still pretty high. Ubuntu will not run on truly embedded hardware, the smallest Ubuntu root filesystem in the form of ubuntu-core still uses more than 100MB diskspace when unpacked. A tool to create even smaller footprint filesystems already exists in the form of initramfs-tools which has hooks and scripts to allow the addition of any binary from the underlying Ubuntu filesystem (or chroot) it gets executed from.

Scope of this spec is to research, plan and implement the creation of a truly embedded rootfs builder which creates an absolute minimal filesystem that can also run on hardware with extremely limited diskspace by using parts of the existing infrastructure from initramfs-tools (i.e. copy_exec and friends).

Blueprint information

Status:
Not started
Approver:
Steve Langasek
Priority:
Undefined
Drafter:
Oliver Grawert
Direction:
Needs approval
Assignee:
Oliver Grawert
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

[zkrynicki, 2012-04-25]: It should be noted that arduino boards based on the current atmega chips have no chance of running ubuntu and this blueprint is about the yet-unreleased, future, arm-based arduino. AFAIK mindstorms (64K RAM) and arduino (2-8K RAM), both without MMU are not something that Linux can target.

[ogra, 2012-05-02]: dropped the reference in the description to HW that has no mmu and made it more generic, thanks for the hint.

[slangasek] Were there any actions out of this UDS session? The etherpad linked from http://summit.ubuntu.com/uds-q/meeting/20498/foundations-q-embedded-rootfs/ is light on notes.

(?)

Work Items

Work items:
[ogra] Research the default list of binaries in various mini/embedded distros like angstrom or tizen: TODO
[ogra] Investigate emdebian-grip if it provides bits we could use: TODO
[ogra] Implement a prototype image builder that makes use of initramfs-tools functions and a list of binaries: TODO
[ogra] Implement a framework prototype to keep persisting package data externally to the generated rootfs image: TODO