AEL/ALIP evaluation

Registered by Alexander Sack on 2010-04-28

* AEL/ALIP introduction
* Discussion
 * use-cases
 * procedures
 * delivery formats
 * cross compiling

Whiteboard

Status:
Building cross toolchain flavoured sources.

[tom-gall 30 Aug 10]: linaro-alip seed accepted as part of linaro.maverick

[asac 22 Jun 10]: massaged spec a bit; approving as it is now, though its a bit underspecified. but we are past feature definition freeze and I think the work you suggest is worthwhile to conduct and we can learn along the way ;).

ARM uses a small software stack based on GNOME Mobile stack for its embedded platforms: AEL (ARM Embedded Linux File System): http://www.linux-arm.org/LinuxFilesystem/AELFileSystemPage and also ALIP (ARM Linux Internet Platform) http://linux.onarm.com

It's not a full distribution including hundreds of applications but it's meant to provide a solid software stack for easily validating new CPUs or creating small File systems for platform with limited Flash memory and RAM, etc...

It requires cross compilation (for platforms that can do native compilation, simulators...), low disk and low memory footprint.

It would be good to base AEL/ALIP on upstream distro like Ubuntu.

---

The targeted disk image sizes and Memory footprint depends on the targeted platform (minimal or small Filesystems):
Disk image size:
   * ~1 MB for minimal filesystems for simulators (static linked Busybox)
   * <= 64 MiB NAND flash space on embedded HW platforms (Busybox, X11 and a browser)
   * ~256 MiB for more recent ARM HW platforms (Gnome Mobile stack, X11, browsers...)
RAM: 64MB/128MB

The packages list of the full ALIP is on http://linux.onarm.com/gitweb

Work Items (maverick-alpha-2):
List required alip-ael packages (see "Research on packages in AEL/ALIP" in spec): DONE
Setup maverick chroot with cross-compilers: DONE
Build cross-compiler binaries from maverick compiler source packages for architectures armv5 & armv6: POSTPONED
communicate and discuss distribution form for minimal use case on mailing list: POSTPONED

Work Items (maverick-alpha-3):
Communicate and discuss distribution form for minimal use case on mailing list: DONE

Work Items (ubuntu-10.10-beta):
[tom-gall] Set up seeds to construct alip-ael full GUI + apt-get: DONE
Build cross-compiler binaries from maverick compiler source packages for architectures armv5 & armv6: DONE
Set up seeds to construct alip-ael ship use case (GUI < 64MB): DONE

Work Items (natty-alpha-3):
Use cross-compiler binaries with xdeb: INPROGRESS
work with Infrastructure team to ensure that live-helper can produce images of that kind: TODO
Build ChromiumOS stack with xdeb: POSTPONED
Set up seeds to construct alip-ael minimal use case (busybox): TODO
Build images from resulting packages: TODO
Upload flavoured cross toolchain source to PPAS: INPROGRESS
Build alip-ael flavoured software stack using xdeb: INPROGRESS
Build flavoured images from resulting binary packages: TODO
Test flavoured images on ARM supplied development board (VersatileExpress) & model (RealViewEB CTA9 multicore): TODO
Push patches upstream: TODO
Ensure all build-essential packages cross compile with xdeb: TODO
Improve patches: TODO

PPAS:
 * Armel cross toolchain, flavoured armv5te, soft fp, VFP : https://launchpad.net/~peter-pearse/+archive/armel-v5te-soft-vfp
 * Source packages patched for cross building : https://launchpad.net/~peter-pearse/+archive/cross-source

Fixed bugs moved to Specification.
Bug Status for this blueprint
 * Bug #622737: dpkg-cross package skipping causes xdeb to fail CONFIRMED
 * Bug #665019: cpp-4.5 complex macro expansion differs from that in cpp-4.4 NEW

Cross compiling errors in individual packages:
 * Bug #623202: [cross] compiling requires target & host binaries of the lemon compiler PATCH posted on bug - sqlite3.
 * Bug #623212: [cross] compiling should run build host tclsh, not newly built target binary PATCH posted on bug - tcl.
 * Bug #623217: [cross] compiling requires both host & target compilers PATCH posted on bug -mesa
 * Bug #623222: [cross] The package explicitly passes gcc
                                      as the compiler name which prevents cross compilation PATCH posted on bug - libffi

Bugs are raised against https://launchpad.net/cross-patches

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.