Ubuntu Core Desktop on the Nexus 7: Getting Involved

A little while ago I talked about our goals to get the core Ubuntu Desktop running on the Nexus 7. Again, just to be clear: the goal here is to get the lower level foundations of the Ubuntu Desktop running efficiently on the Nexus. This work is focused on optimizing the kernel, X, networking, memory consumption etc of the core of Ubuntu and not focused on making Unity into a tablet user interface. You can’t build a great house without a solid foundation.

Like many of you, I installed Ubuntu on my Nexus 7 that arrived yesterday and the installation instructions were a breeze:

You can always revert back to Android if you need to, so come on, give Ubuntu a whirl!

Currently Ubuntu on the Nexus 7 boots and Unity runs, albeit a little slowly, but with the core touch gestures working. So far the desktop, networking, suspend/resume, and sound works, but things such as a the camera, accelerometer and other bits are still not working. The goal is to optimize the stack to run more efficiently and ensure all the hardware functions work in due time.

One of the questions many people have been asking is if these performance improvements will benefit Ubuntu in general. While some improvements will be specific to the Nexus 7, most should benefit Ubuntu in a more general sense in terms of improving performance, lowing memory consumption etc. So yes, if you contribute to helping this work, your contributions will likely benefit Ubuntu on desktop machines, servers, cloud, and elsewhere too. Also, given the nature of how our flavors are built on the foundations of Ubuntu, many of these improvements should also help our flavors too. If you are not picking up the subtlety of my prose, this is all valuable work for everyone. :-)

Growing Community Participation

As part of this work we are really keen to work with our wider Ubuntu community and over the last few weeks I have been working with Daniel Holbach on my team as well as Alex Chiang on the Nexus team to identify the different ways in which community members can help. This is on-going work, but I wanted to sync you up on what is going on.

We want to provide a means in which everyone can help with these efforts, but there are two core types of contribution here:

  1. Development – helping to optimize software, package bug-fixing, and otherwise contribute to the core distribution running on the Nexus 7.
  2. Testing – testing different parts of the Nexus 7, running benchmarks to to see how the development work is progressing, and reporting bugs.

Now, some of you may be interested in helping with other areas such as advocacy, translations, documentation etc. We will get to those parts soon, but right now we want to get developers and testers up and running and then we can widen the net of potential contributions further after those folks are up and running. We are definitely keen to ensure that everyone can help though.

Now, in terms of the former (Development) we are working to put the following resources in place:

  • Instructions for how to contribute as a developer, and areas of focus each week.
  • Details for how to learn the skills to participate.
  • A common list of bugs that we can point developers too.

We already have some documentation availabe where you can find out how to work with patched packages and test the PPA. The other documentation needs above will be added soon.

Testing

For latter much of this work will focus around benchmarking. We want to identify parts of the system that are slow and inefficient and optimize those parts to work better. Part of this optimization work will involve creating new builds of these different components and inviting community members to test them, and run benchmarking tests to see what efficiency benefits we get.

To help with this we are working on the following:

  • Instructions for how to test the Nexus 7 and what kind of bug reports we need.
  • Getting benchmarking suites that we can use to track the effiency of different parts of the stack.
  • Provide a good workflow that benchmarking results and bugs can flow into the development pipeline so our development community can fix these issues.

A lot of this work is starting to land, and if you want to help with bugs be sure to read Matt’s blog entry about how to get involved.

If you are interested in helping with measuring and debugging, see this documentation where you can find out how to measure power consumption, measure memory usage, and simulate realistic usage when benchmarking a browser.

More documentation and resources will be available soon.

Meeting and Support

To get the ball rolling we have scheduled a weekly meeting every Friday at 4pm UTC in #ubuntu-meeting. The goal of the meeting is to discuss progress being made, identify areas of focus, and provide a means for our community to get involved in this work. The meeting will be chaired by Alex Chiang.

To get in touch with the development team, be sure to join #ubuntu-arm and #ubuntu-devel on Freenode, and you can also ask questions on Ask Ubuntu right here. If you have been using Ubuntu on the Nexus 7, also be sure to go and answer any questions you can; that is a great contribution!

Moving Forward

We are still very much at the beginning of this journey but we are determined to be successful in making Ubuntu rock on the Nexus 7. For us to do a great job here we will need lots of help from our community to get involved, and we want to make this as simple as possible, so please do share your feedback about how we can make this easier. A great place to share this feedback is in the weekly meeting too; we can then note down suggestions and work on solutions.

Ubuntu has made tremendous progress in recent years on the desktop and in the cloud, and we think we have a real shot at making a real change on devices too. Together we can bring Free Software to more people across the desktop, cloud, servers, and devices, and every contribution from our community edges us another step further. Please be sure to ask any questions that I can help with. Thanks!

  • http://benjaminkerensa.com/ Benjamin Kerensa

    “You can always revert back to Android if you need to, so come on, give Ubuntu a whirl!”

    You can flash the aosp stock image again but this will bring you back to a factory state (might be good to clarify so people don’t get angry if they lose their data having expected to be able to revert back to their previous state) and all data on the device is instantly wiped when you do a oem unlock.

    http://source.android.com/source/building-devices.html#Unlocking_the_bootloader

  • Samuel Johnson

    What could we do to make something like this work on other tablets like the Asus TF300T. Or any device that uses the ARM processors? I have been using Ubuntu ever since 5.04 and would love to have this on my TF300T. The nexus 7 using the ARM Processor right?

  • http://benjaminkerensa.com/ Benjamin Kerensa

    Canonical is not focusing on enablement of Ubuntu on other devices the only reason they developed a way to deploy on Nexus 7 is purely for QA to try and address power, cpu and memory consumption on Ubuntu Core.

  • http://facebook.com/artgtan radiostorm

    Jono, to clarify, there will eventually be a tabliet-UI-optimzed version of Unity, correct? Same with phones too?

  • Caleb holt

    I saw something just a little while ago about loading Ubuntu onto an android installation and then they would share the same linux kernel so they could run at the same time. The idea was that if they share a linux kernal you could carry around an android phone and come home and plug that phone into a monitor and have it run Ubuntu.

    I’m wondering if there is a way that you could do that but just switch back and forth between the 2 without having to hook up to an external monitor AND without having to uninstall android. You could just have them both run on the same linux kernal so they are both running at all times.

  • Nathan Teague

    I would think low footprints like LXDE and fluxbox would be good for this. Plus, imagine threading everything for Quad core, your apps could fly on this. Promiscuous mode checking and wifi remote maintenance ability, remote server maintenance and administration for a field tech, bluetooth stack transfers, data replication through a GNU NFC driver at the desktop; the distance you could go is a long one indeed

  • LittleFox

    This is already possible, had this running on my Galaxy S3. Take a look at the “Complete Linux” App. But it is very slow, there isn’t a real X-Server, just one for VNC and there isn’t any hardware accelerated graphics.

  • http://blog.surgut.co.uk Dima

    actually installation instructions are very clear as the data is wiped very early on, at bootloader unlocking.

  • Fabian Rodriguez
  • Fabian Rodriguez

    Of course they are clear if you just bought your Nexus 7 and will dedicate it to Ubuntu testing, which is far from the case of most technical/advanced users interested in testing this in the first place.

  • Anonymous

    This will have the Ubuntu running on dalvik, he wanted a situation where Ubuntu runs natively with access to the kernel

  • http://www.facebook.com/moritzgrosch Moritz Grosch

    afaik it uses the kernel natively – the app is only used to mount the diskimage and boot the whole stuff. i did see the complete partition layout of my phone in gparted, which isn’t possible when running in dalvik afaik.

  • gritty

    I installed Ubuntu on my Nexus 7 yesterday. The installation is easy and what little I have used it it seems pretty good. However, it would help a lot if the UI was sized appropriate to the Nexus 7. Having read in the FAQ that the current focus is on core linux development it will be a while before it is really useful (in my opinion). I have only been able to use it so far with the aid of a pen.