The Linaro Android Platform 11.11 Cycle
11.11 started the last week of October after Linaro 11.10 was released on Oct 27th. The Android team had the RC for the 24th done on the 21st so that Bernhard Rosenkränzer and I could focus on ELC-E in Prague and the team could focus on getting ready for Linaro Connect Q4.11 in Orlando, Oct 31st through November 4th. The theme for 11.10 had been "make it shiny" as we wanted to put our best foot forward at ELC-E and during Connect.
Prague went well. Bernhard and I did our presentation and ran the booth with Ricardo Salveti. We had a bit of excitement when one of our evening hacking sessions turned into a travel scramble as Arnd Bergman and others tried to find alternative flights after the French Air Strike.
ELC-E Presentation, Linaro's Android Platform http://www.youtube.com/watch?v=zWuGDX6Sz2Y
elinux.org tutorial http://elinux.org/Android_Tutorials_Unbox_to_App
Everyone got to Connect okay and we set off on a very exciting week of planning, hacking, arguing and "socializing." We ran sessions on device tree, sched_mc, build improvements, automated testing, educational outreach, handling binaries, benchmarking, future plans, QA and gave a tutorial on how to use Linaro's Android distribution. Amit Pundir also started off his Linaro career with a great porting Android to new platforms session. Bernhard made great strides in supporting a dual toolchain, Chao Yang debugged libpng issues, Tony Månsson worked on Powertutor extensions, Frans Gifford got the CI loop working with each target, Prashanth Srinivasan onboarded by helping do and test builds and Abhishek Paliwal worked to unify our QA tests with each test description. We capped the week off with demos including, Vishal Bhoj's getting a Linphone based Video Conferencing App working, Noritsuna Imamura's Cluster Android App Engine and Botao Sun showing WiFi on Samsung Origen, Woot! Jon Medhurst (Tixy) was also able to make substantial progress getting Android running on Vexpress with Mathieu Poirier's help and Michael Edwards offered to help with our SGX upgrade.
Linaro Connect: Demo Friday III http://www.youtube.com/watch?v=3lRxiTA6A10
Linaro Connect Q4.11 - Panda cloud cluster http://www.youtube.com/watch?v=pSGNf0KZ71c
Linaro Android Tech Lead Zach Pfeffer at Linaro Connect http://www.youtube.com/watch?v=yVZ1kblmQMY
Porting Android to New Platforms https://docs.google.com/a/linaro.org/viewer?a=v&pid=explorer&chrome=...
After connect we set out to finish out 11.11, knowing that Ice Cream Sandwich (ICS) would land at anytime. Bernhard even had a cron job looking for new commits at AOSP. Even thought we live in the future we can't predict it and Patrik Ryd set out to upgrade our baseline to 2.3.7. The upgrade plus our usual work of upgrading to the latest Linaro toolchain and adding support for each board feature kept us busy until, Nov 14th's email about ICS dropping:
Alexander Sack started syncing the code the minute is was ready, I started a build and VIshal and I started getting AOSP to compile on Pandaboard. Vishal fixed a few issues and we tried the AOSP first thing the next morning.
AOSP running on Pandaboard http://www.youtube.com/user/pfefferzlinaro?feature=mhee#p/u/4/eaVszdsZ8aY
Vishal also started looking into getting this running using just software GL and had a prototype working soon after that showed Panda running with a Linaro kernel
Android 4.0.1 (ICS) with the Linaro Kernel http://www.youtube.com/watch?v=-LtjvekCDKM
With this proof on concept Mathieu was able to get Snowball running ICS
ICS running on Snowball http://www.youtube.com/watch?v=CvRg6OX0DL8
Alexander then challenged the group to get each board switched over and to release a preliminary release on Thanksgiving. With the wind at our backs the Linaro Android team achieved this.
We had a few snags, the largest was related to the enormous strain that the ICS code base put on the existing infrastructure. On Friday Nov 18th, as we were getting ready to start cutting 2.3.7 releases, we had 2 coincident events: a cross git change that had to be reverted and a build system that couldn't sync the code base because of the expanded size of ICS in the git mirror. After a stand-up meeting Paul Sokolovsky saved the day be launching his seeded build mechanism that not only allowed the builds to go through, but cut down on the sync time. This change brought about a paradigm shift in build performance and reliability.
11.11 was an incredible cycle. The lessons learned were:
1. Gerrit doesn't handle cross git changes so it should be extended to 2. We need to ensure that each target in LAVA is stable 3. If things are starting to get chaotic then anyone can yell stopthepresses in #linaro-android and we'll all stop and regroup
For 11.12 the high-level plan is to:
1. Compile ICS with Linaro's 4.6 Toolchain and send the source modifications to Google 2. Integrate our work on 2.3.7 including, libjpeg-turbo and ds-5 into ICS and send the changes to Google 3. Get PoCs for each binary, get them into linaro-android, enabling graphics and multimedia
11.12 starts tomorrow, Nov 28th, the 11.12 RCs will come out Dec. 20th and be cut on the 18th. Its going to be a great December!