Ubuntu Touch for x86 emulator

Registered by Jani Monoses

See what it takes to get x86 Touch images working in an emulator. This should shake out the armhf specific assumptions in our packaging on the Ubuntu side, and in our changes to Android.

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Jani Monoses
Direction:
Needs approval
Assignee:
Jani Monoses
Definition:
Discussion
Series goal:
Accepted for trusty
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

I see the following two independent areas of focus, with details on what I think needs to be done below.

1) Get i386 Ubuntu images on par with armhf ones
* Fix what is armhf only now to build on i386 too (big tasks like Qt assuming GL not GLES on i386, any armhf=touch assumption in all packages)
* Mir, Unity8 and other complex stuff which may rely on certain things being ARM
* Fix live-build configs so they can easily be reproduced on a local computer, just as the Ubuntu desktop build is reproducible.
* Build and offer i386 images on cdimage (before they are ready for use, so that build bugs and runtime app bugs can be caught early)

2) Fix our Android side patches
* make sure platform-api works on i386
* make sure hybris works on i386
* check all android patches for ARM assumptions
* have a repository at a given version to do test builds against, likely AOSP 4.2.2 at first
* x86 emulator, probably the generic x86 target in AOSP

Some publicly available reference material:
* http://software.intel.com/en-us/articles/setting-up-native-opengl-es-on-android-platforms
* http://software.intel.com/en-us/articles/speeding-up-the-android-emulator-on-intel-architecture

Out of scope:
* prebuilt kernels
* system image updates
* i386 prebuilt android package, we'll let system.img be copied over manually (if I understand correctly, that's what it is) https://code.launchpad.net/ubuntu/+source/android
* anything else that is very closely related to platform bringup and likely has custom steps for each platform. We can assume downstreams can put together a booting image if the Ubuntu prebuilt image is there and the glue code is known to be correct on i386.

(?)

Work Items

Work items:
[ogra] enhance live-build to also roll x86 rootfs tarballs (might not be bootable or usable initially): DONE
[rsalveti] research necessary changes to initramfs-tools-ubuntu-touch (most likely just Arch: adjustments): DONE
[rsalveti] test the vanilla x86 android image with the emulator: DONE
[rsalveti] work with jani to migrate the phablet codebase to 4.4: DONE
[alf] investigate how Mir can load the right backend in runtime (mesa, android, etc): DONE
[rsalveti] move from cm_goldfish to full-eng builds.: DONE
[rsalveti] do android build for x86-goldfish: INPROGRESS
[ogra] fix https://bugs.launchpad.net/ubuntu/+source/initramfs-tools-ubuntu-touch/+bug/1237160 : TODO
[rsalveti] remove needed rootfs customization for emulator (disable powerd, etc): INPROGRESS
[sergiusens] Create Qt5.2 based binary packages that are compatible with GLES on x86: INPROGRESS