Consolidate hardware-dependent code between Android and Ubuntu

Registered by James Westby

  * Identify which pieces can be shared between Android and Ubuntu images (kernel, bootloader, ...?)
  * Create a plan to consolidate development efforts on those parts
  * Investigate how the binaries of those shared pieces can be delivered so that they can be shared at that level too (e.g. hwpack that works for Android/Ubuntu)

--

Session notes are: http://summit.ubuntu.com/uds-o/meeting/linaro-android-o-consolidate-hardware-dependent-co/

Blueprint information

Status:
Not started
Approver:
Alexander Sack
Priority:
Low
Drafter:
James Westby
Direction:
Approved
Assignee:
James Westby
Definition:
Review
Series goal:
Accepted for 2011q2
Implementation:
Deferred
Milestone target:
None

Related branches

Sprints

Whiteboard

How can we share more development effort between Android and Ubuntu at the hardware interface (kernel, bootloader, etc.)?

 * Single kernel binary for both is not currently possible (unless we use Android kernel for Ubuntu)
 * However, one tree that can build both is possible (CONFIG_ANDROID?)
   - Currently one hwpack for imx.51 and imx.53 (one kernel and two u-boot) - convenient
   - Which tree would that be?
     - Can we put non-upstreamable stuff in nico's tree?
   - John is currently maintaing a nico+android tree
   - Should we move the Ubuntu packaging to be based on John's tree?
   - ACTION: james_w to discuss with jcrigby and rsalveti

 * Is it worth having one tree if we aren't going to push to one binary kernel soon

 * is it worth doing shared hwpacks if they are basically two hwpacks glued together
   - increases costs (download, storage, etc.) for what benefit?
   - allows to point to one artefact that can be used for Android + Ubuntu, even if there is no sharing
   - May be confusing as to what contents are needed.

 * Bionic is a problem for any userspace pieces.

 * Could we build Android all for all platforms at once, and only select the hw-specific parts at image construction time?

 * Should we implement hwpacks for Android?
   - Separating hw-dependenct and hw-independent code is good
   - Currently only build one rootfs, so the main benefit isn't present
   - Would allow to vary rootfs and hwpack independently for debugging/bisection
   - Would have to split HAL from rest of userspace too

 * Linaro can take leadership to state how platforms could support both Android and Ubuntu.

 * Should we look at allowing Ubuntu to re-use hardware enablement pieces from Android?
   - Many companies releasing these for non-enabled hardware in Ubuntu
   - Would be an interim strategy until Ubuntu is fully-enabled on that hardware

If we are going to have two hardware packs, one for Ubuntu and one for Android is there a significant cost to doing so?
  - Development effort to port changes across and validate them

(?)

Work Items

Work items:
[james-w] discuss basing Ubuntu kernels on Android consolidation tree: DONE