Canonical Voices

Posts tagged with 'canonical'

Michael Hall

So you may have heard (seriously, how could you not?) that Canonical is crowd-funding a showcase phone called Ubuntu Edge.  This is very exciting for a number of reasons, which I will get to below, but first go look at the Indie GoGo campaign page to see what I’m talking about.

Back? Good.  Did you contribute?  For the first 24 hours you can get a phone for a highly discounted contribution of $600 USD, rather than the $830 USD it will cost you tomorrow, so if you really want one of these it’s best to put your money on the table now.

Hardware Innovation

The phone hardware is impressive on it’s own, with more CPU, RAM and storage space than the laptop I was using for daily work last year.  Not only that, but it’s going to feature advances in the glass and battery that I haven’t seen on other phones.  Sapphire crystal glass, which can only be scratched by diamond, will keep your screen looking brand new for years to come.  And the silicon-anode battery promises faster charging and longer runtime without increasing the size of the handset.  You can see the full spec list on our other announcements.

I like this because we’re not asking you to contribute to making just another ordinary phone like all the rest you can buy already.  Instead we’re pushing the envelope to pioneer a new class of convergent superphones, a market that Ubuntu is uniquely positioned for.  This hardware will run Ubuntu Touch, Ubuntu for Android, and (when docked) a full Ubuntu Desktop.  But we’re not just playing the “make it bigger, make it faster” game, the design of Ubuntu Edge’s hardware is deliberate, everything choice was made based on what would provide the best user experience, what would make the edge-swipe gestures easy and responsive, what would let us show more of an app’s content while still fitting into the palm of the user’s hand.  This is a device designed from top to bottom for Ubuntu.

The margin on most production phones is thin enough to see though, which means that an OEM can’t afford to take risks with emerging technology or markets.  That’s why it’s so important that we prove both the capabilities of Ubuntu for convergence, and the consumer appeal for such a device.  Apple had to do it with the original iPhone, Google does it with their Nexus line of devices, and now it’s our turn to show what’s possible.

Community Campaign

Instead of seeking private capital to build these phones, then trying to sell them (at a profit or loss), we’ve decided to take it directly to the user community, which is why we’re asking you to pledge some amount to our campaign.  We couldn’t build Ubuntu without our community, and we can’t build Ubuntu Edge without you either.

Our target goal is $32 million, which sounds like a lot, but only because it is.  It really is.  But it’s still only a fraction of the cost of an actual production line of phones.  In order for an OEM to ship an Ubuntu phone (or any new phone), they would typically invest multiple times this amount.  So as big as our target goal is, and I don’t think anybody’s crowd-sourced more, it’s certainly not an unreasonable amount for what we’re offering.

The target amount will allow us to manufacture just 40,000 handsets, most of which I would imagine will already be claimed by those contributing $830 or more (only $600 if you do it the first day!).  All of the money raised in this campaign will go directly towards manufacturing and shipping these devices, it won’t be used for other Canonical business or even future Ubuntu development.  When you do the math, which I did, you see that it comes out to $800 per device to manufacture, and we’re only asking for $830 to get it (again, in the first 24 hours, you can get it below that cost).  This is an effort to build a new class of superphone, not a way of making Canonical rich.  If we reach our goal, you should have your Ubuntu Edge in hand sometime in May 2014!

Non-monetary contributions

I know that $830 is a lot of money, even $600 is a lot of money, but those aren’t the only ways you can help.  In addition to giving smaller amounts in support of this campaign (for which there are other perks) you can help make it a success by spreading the word.  No doubt it will be picked up by the usual online news sources, forums and blogs but let’s break it out of our usual Linux/FLOSS sphere.

So share links to the Indie GoGo campaign page on Facebook, Twitter and Google+.  Tell your friends, especially any tech savvy ones, about it.  Send an email to your local newspaper, radio or television stations, you never know who might think it’s an interesting story (and wouldn’t you just love to see Ubuntu on TV?).  Every person you tell about the campaign brings us one step closer to reaching our goal, and it doesn’t cost you a penny.

Read more

pledge for edge

My colleague Leann demos Ubuntu for Android, which is what my team has been busy polishing and refining since last fall. Along the way, we’ve learned an amazing amount about convergence, mobility, and what it takes to define a new category of computing device.

Our code runs nicely on the Nexus 4, and it will absolutely fly on the Ubuntu Edge, due to its 4GB of RAM. So if you’ve been waiting on tenterhooks ever since we announced Ubuntu for Android and shouting at Canonical to take your money, here’s your chance. We’ve come a long way since WebTop.

What are you waiting for? Pledge for Edge today!

Read more

Being edgy

edg·y (/?ej?/) – creatively challenging, of bold or provocative quality Welcome Ubuntu Edge – Canonical is starting a campaign on Indiegogo to crowdfund our vision of future mobile computing. The goal of $32M is bold, the approach of working through crowdfunding provocative. Teams have been working on an industrial design of how we envision the future […]

Read more
Michael Hall

We’ve had a great week running the Ubuntu Core Apps Hack Days so far, we’ve seen several new contributors join our development teams, and lots of merge proposals coming in and landing.  But we’re not done yet, we’ll be in #ubuntu-app-devel again today from 9am to 9pm UTC to help anybody who is interested in getting started contributing to these apps.

Today we’ll be focusing on an app that may not be high on the average user’s list of mobile apps, but is indispensable for anybody working on a ported image or writing an app for Ubuntu Touch, that is the File Manager App!

Thanks to reusing the Folder List Model QML Plugin from the Nemo Mobile project, the File Manager developers were able to get a very functional application working in a very short amount of time.  That means that our dogfooding list is already complete!

  • Browse folders. DONE!
  • View files within folders. DONE!
  • View file information. DONE!
  • Copy files. DONE!
  • Delete files. DONE!
  • Move files. DONE!

But don’t let that list fool you, there’s still plenty of work to be done.  The biggest one is making sure that any changes we’ve made to the Nemo plugin are sent back upstream.  If anybody from the Nemo project can help us with this, please find me (mhall119 on IRC).  We also need to make sure we have full Autopilot test coverage, and fix any remaining bugs that have been reported.

Read more
Michael Hall

I hope you all enjoyed spending some time playing Sudoku yesterday, because we’re back to work again for another Ubuntu Core App Hack Day!  As always you can find us in #ubuntu-app-devel on Freenode IRC from 9am to 9pm UTC to answer all of your app hacking questions, help get you setup and started contributing, or just generally discuss how to write Ubuntu Touch apps in general.

Today we leave behind yesterday’s light hearted fun and games and turn to the (only slightly) more serious work of reading news with the RSS Reader app!  Another one of the original Core Apps, the RSS Reader got some unexpected designs from the Canonical Design team that converted it from the typical list-of-headlines to a beautiful organic grid seen here.

Because of these very recent and very major changes to the UI, there’s a lot of work to be done to get all of the previous functionality working again at the same level.  For dogfooding the RSS Reader, these are our goals:

  • Add a feed.
  • Browse feeds. DONE!
  • View a feed.
  • Select an item to view from within the feed.

Because of the major changes, this app can use a lot of help from people who are simply willing to use it and report bugs so that the developers (and all of you new contributors) have a list of things to work on.  Then we need you QML/Javascript hackers to pick things from that list and start making and submitting your fixes.  Finally we need Autopilot tests written or updated for this new look, so I’m looking at you Python guys and gals to lend us a hand too.

Read more
Michael Hall

We’re continuing our Ubuntu Core Apps Hack Days again today in the #ubuntu-app-devel channel on Freenode IRC, from 9am to 9pm UTC.  If you want to learn more about the Core Apps and how you can get involved, jump into the channel and give myself (mhall119), Alan Pope (popey) or David Planella (dpm) a shout.

We’ve been working hard on the Core Apps lately, which is why I’m glad that today we get spend time on something a little more fun: the Sudoku App!  Sudoku was originally developed outside of the Core Apps umbrella, but it progressed so quickly and fit Ubuntu Touch so well, that we invited it’s developer to join the rest of our Core Apps.

Sudoku was so far along before joining the Core Apps, that our dogfooding list was already largely complete:

  • Start a new game DONE!
  • Record and display game statistics DONE!
  • Provide hints DONE!

But even as complete as it is, there are still a few bugs to squash and some final Autopilot tests to write, so if you have QML and Javascript skills or Python skills and can spare a little bit of your time, you can help us put the finishing touches on this classic game.  And if you want to help us, you know, “test” it for a few hours of your day, we’ll totally consider that a contribution too.

Read more

If you are going to be in Portland, Oregon in the next few weeks, I wanted to share some of the things I will be doing. If you want a meeting while I am at the Community Leadership Summit and OSCON, please get in touch and we can coordinate.

Community Leadership Summit 2013

I founded the Community Leadership Summit five years ago and the event has grown to become the primary annual meeting place for community managers, leaders, and those interested in the art and science of community management. I am really proud of how CLS has grown and matured over the years, and many thanks to our wonderful attendees who make it so fantastic.

This year’s event is shaping up to be awesome. We have a fantastic set of registered attendees, a full unconference format, enhanced audio and video facilities, and more.

Many thanks to our wonderful sponsors who have helped to support the event:

  • O’Reilly
  • Liferay
  • Microsoft
  • Adobe
  • Mozilla
  • OpenNMS
  • Google

The event is completely free to attend. read more about how it works and how to get there and see the schedule.


Lots going on at OSCON this year.

To begin with I will be running my first community management training workshop at OSCON on Mon 22nd July. This is a full-day workshop, so be sure to come and join me. Details are here.

Then on Tues 23rd July at 9.00am Jorge and Mark M will be running Service Orchestration In The Cloud With Juju – a full workshop that covers using Juju to deliver production services and how Juju charms work.

Next on Wed 24th July at 9.55am Mark Shuttleworth will be giving his keynote.

Wed 24th July is going to be a busy day for me with the following in my schedule:

See the full OSCON schedule.

We will also have a full Ubuntu booth staffed by many members of Ubuntu Oregon talking about Ubuntu for phones, desktops, and tablets, and Ubuntu for the cloud and our Juju orchestration platform.

I hope to see you there!

Read more
Michael Hall

It’s day 5 of the Ubuntu Core Apps Hack Days!  We’ve seen a tremendous amount of work coming into the Core Apps, and have several new contributors joining the initiative.  We’re keeping that momentum going throughout the week in #ubuntu-app-devel on Freenode from 9am to 9pm UTC, so come and be a part of this exciting project.

Today we’ll turn our attention to the Weather application, another one of the original Core Apps, and another one that is already largely complete.  The Weather app gained multi-city support and a long range forecast early on, and has more recently added the ability to toggle between Celsius and Fahrenheit temperature displays.  Between those, it met all of the criteria we set for dogfooding:

  • Choose a location to view weather from. DONE!
  • View current weather conditions. DONE!
  • View a 10 day forecast. DONE!
  • Configure C or F and display that chosen setting for all locations. DONE!

Since the features are complete, we now need to put the rest of our effort towards polish and quality.  This means we need those of you with QML and Javascript knowledge to help fix the reported bugs in Launchpad, and those of you with Python knowledge to help us finish the Autopilot test coverage, so that we can make this app rock solid and reliable for every day use.

Read more
Michael Hall

Welcome back to another week of Ubuntu Core Apps Hack Days!  As always we will be in #ubuntu-app-devel on Freenode’s IRC from 9am to 9pm UTC to answer all of your questions, help you get your development environment setup, and get started contributing to the Core Apps projects.

To start off this week we will be taking a look at the Calculator app.  The Calculator was another one of the original core apps, made some of the fastest progress and was one of the first to make it onto the device images’ default install.  The Calculator is as simple as it is beautiful, and thanks to this and the hard work put in by it’s developers, that means it’s already feature-complete as far as our dogfooding list was concerned:

  • Create a common calculation (subtraction, addition, multiplication etc). DONE!
  • Create a new calculation. DONE!
  • Keep previous calculations across reboots of the app and device DONE!

But even though the main features are complete, there is still some work left to be done.  Most importantly, with Ubuntu’s focus on quality these days, we need to finish up our Autopilot test coverage, which means we need the help of all your Python developers out there.  We also have a list of reported bugs that need to be fixed, which is going to require somebody with QML and/or Javascript knowledge.  If either of those suits you, please join us in #ubuntu-app-devel today to get started!

Read more
Christopher Halse Rogers

XMir Performance

Or: Why XMir is slower than X, and how we'll fix it

We've had a bunch of testing of XMir now; plenty of bugs, and plenty of missing functionality.

One of the bugs that people have noticed is a 10-20% performance drop over raw X. This is really several bits of missing functionality - we're doing a lot more work than we need to be. Oddly enough, people have also been mentioning that it feels "smoother" - which might be placebo, or unrelated updates, or might be to do with something in the Mir/XMir stack. It's hard to tell; it's hard to measure "smoother". We're not faster, but faster is not the same as smoother.

Currently we do a lot of work in submitting rendering from an X client to the screen, most of which we can make unnecessary.

The simple bit

The simple part is composite bypass support for Mir - most of the time unity-system-compositor does not need to do any compositing - there's just a single full-screen XMir window, and Mir just needs to flip that to the display. This is in progress. This cuts out an unnecessary fullscreen blit.

The complicated part is in XMir itself

The fundamental problem is the mismatch between rendering models - X wants the contents of buffers to be persistent; Mir has a GLish new-buffer-each-frame. This means each time XMir gets a new buffer from Mir it needs to blit the previous frame on first, and can't simply render straight to Mir's buffer. Now, we can (but don't yet) reduce the size of this blit by tracking what's changed since XMir last saw the buffer - and a lot of the time that's going to be a lot smaller than fullscreen - but there's still some overhead¹.

Fortunately, there's an way around this. GLX matches Mir's buffer semantics nicely - each time a client SwapBuffers it gets a shiny new backbuffer to render into. So, rather like Compiz's unredirect-fullscreen-windows option, if we've got a fullscreen² GLX window we can hand the buffer received from Mir directly to the client and avoid the copy.

Even better, this doesn't apply only to fullscreen games - GNOME Shell, KWin, and Unity are all fullscreen GLX applications.

As always, there are interesting complications - applications can draw on their GL window with X calls, and applications can try to be fancy and only update a part of their frontbuffer rather than calling SwapBuffers; in either case we can't bypass. Unity does neither, but Shell and KWin might.

Enter the cursor

In addition to the two unnecessary fullscreen blits - X root window to Mir buffer, Mir buffer to framebuffer - XMir currently uses X's software cursor code. This causes two problems. Firstly, it means we're doing X11 drawing on top of whatever's underneath, so we can't do the SwapBuffers trick. Secondly, it causes a software fallback whenever you move the cursor, making the driver download the root window into CPU accessible memory, do some CPU twiddling, and then upload again to GPU memory. This is bad, but not terrible, for Intel chips where the GPU and CPU share the same memory but with different caches and layouts. It's terrible for cards with discrete memory. Both these problems go away once we support setting the HW cursor image in Mir.

Once those three pieces land there shouldn't be a meaningful performance difference between XMir-on-Mir and X-on-the-hardware.

¹: If we implemented a single-buffer scheme in Mir we could get rid of this entirely at the cost of either losing vsync or blocking X rendering until vsync. That's probably not a good tradeoff.

²: Technically, if we've got a GLX client whose size matches that of the underlying Mir buffer. For the moment, that means "fullscreen", but when we do rootless XMir for 14.04 all windows will be backed by a Mir buffer of the same size.

Read more
Michael Hall

Today is the last Ubuntu Core Apps Hack Day of the week, but don’t worry because we’re coming back every day next week to cover more of our amazing Core Apps.  Like previous days, we’ll be in #ubuntu-app-devel in Freenode IRC from 9am to 9pm UTC to help you get setup and contributing to these apps.

Today our focus will be the Clock app, one of the original Core Apps, and while you might think that a clock app would be simple, there’s a lot going on in this one.  In addition to showing you the current local time, the Clock app also sports a world clock, a timer, a stopwatch, and soon the ability to set alarms.  Our dogfooding goals for the clock are:

  • View local time. DONE!
  • View times in different cities. DONE!
  • Stopwatch (start, stop, pause, lap) DONE!
  • Set alarm, be notified when the alarm time arrives
  • Set timer, be notified when the time runs out

As you can see, the first 3 are already done and working.  The remaining two are blocked on platform work for setting alarms that will be triggered by the system even when the Clock app itself isn’t active.

But that doesn’t mean there’s nothing for new contributors to do.  One of the Clock’s most active developers, Nekhelesh Ramananthan, has helpfully provide me with a list of things that he needs your help with:

  • Getting autopilots tests ready for the timer, stopwatch and clock
  • Bug fixes for timer, clock and world clock
  • Caching support for sunrise/sunset times. The sunrise/sunset should only be retrieved once a day or when the location is changed. I will create a bug report to track this and also tag it hackday.

He even went so far as to tag bugs that would make good hack day targets and provide some insight into how to solve them, so you can go grab one from this list and give it a shot.  Some of these will require QML and Javascript knowledge, others are for needed Autopilot tests that need Python, so we’ve got something for everybody.  Nekhelesh (nik90) will also be in the IRC channel tomorrow to help you work on these items and review your contributions.

Read more
Michael Hall

Welcome to day 2 of the Ubuntu Core Apps Hack Days!  Once again we will be in #ubuntu-app-devel on Freenode IRC from 9am to 9pm UTC to help you get started contributing to Ubuntu Touch’s Core Apps.

Today we’re going to turn our attention to the Music app.  This app is a little bit different in the fact that it didn’t start off as a Core App, or even as a single app.  Several people had started on music apps or mockups for music apps, so we brought them together to combine their efforts into a single app.  Because of this, instead of progressing through the usual steps of defining requirements, designing user experience and then implementing features, we had all three things coming together at the same time.  This put the Music app both ahead and behind the others in different ways.

The feature targets we set out for dogfooding the Music app are all larely half-done, as a result of how the app is the amalgamation of several formerly independent efforts.  You’ll find that many of them are complete on the back-end but need to be integrated with the new front-end work, or vice-versa.  As such, this is a project where a little bit of effort can make a very large impact.  To get the Music app ready, we want to get the following working:

  • Read in music from ~/Music.
  • Browse a list of artists.
  • Browse albums by an artist.
  • Browse songs by an artist.
  • Play a song, with transport controls (Play, Stop/Pause, Skip Back/Forwards).
  • Shuffle.
  • Bonus: pull in album cover/details from the net.

To do these, you’ll need some working knowledge of QML and Javascript.  The Music app also re-uses the File Manager App’s plugin to find and read metadata of music files, so if you have C++ experience there are things you can work on there too.  And of course our Python developers can help by working on Autopilot tests to make sure that the above features work (and continue to work) as expected.

Just like the Calendar app, there are some things that we want the Music app to do that require work to be done on the platform side.  Specifically, we want the Music app to continue playing songs when you switch away from it or turn off the phone’s screen.  Currently the platform will suspend the Music app’s process when this happens, so playback stops.  However Canonical’s Jim Hodapp, who has already done a lot of work on multimedia integration and gstreamer, will soon begin work on a system-wide media playback service that the Music app will be able to hand songs off to.  Until then we will continue using the Qt Multimedia APIs to play songs while the application is still active.

Read more

Many of you will be familiar with Juju, the powerful cloud orchestration platform we have been building.

Ubuntu has become the most popular Operating System in the world for cloud deployments, and Juju brings a powerful orchestration platform with over 100 services ready to deploy. It enables you to build entire environments in the cloud with only a few commands on public clouds such as Amazon Web Services and HP Cloud, private clouds built with OpenStack, or raw bare metal via Metal As a Service (MAAS).

If you haven’t seen and tried Juju, I strongly recommend you do so. It makes spinning up a service, relating different components (e.g WordPress and MySQL), and scaling up (such as when you get Slashdotted) quick and easy, but powerful enough for comprehensive production services.

Want to give it a try? Click here to get started.

The Juju Charm Championship

Jorge Castro on my team has been working over the last few years to grow our community of Juju charmers, running charm schools online and offline, coordinating tutorials, education weeks, and working with many different upstreams to help them harness Juju.

Recently we kicked off a particularly fun part of our community growth efforts in the form of the Juju Charm Championship.

The idea is simple:

  1. Charm up the individual services in your infrastructure, make something that is cool and repeatable.
  2. Put it together into a Juju bundle.
  3. Submit your stack.
  4. Win money…with over $30,000 USD in prizes!

That’s right…cold hard cash for building an awesome charm.

Let’s talk more about the cash. There are basically three categories:

  • High Availability – represents a full stack of HA-enabled services to accomplish a task.
  • Data Mining – represents a full stack of data mining and “big data” analysis.
  • Monitoring – represents a full stack of monitoring solutions for existing services.

The winner of each category will win $10,000. It doesn’t stop there though. In addition to these prizes, individual charm maintainers of a reviewed charm in the reviewed section of the Charm Store will receive $200 if their charm is included in a winning template. This can be awarded multiple times, to a maximum total of $3,000 per category.

How To Enter

Entering is simple. Just head to this page to get started, which includes a full FAQ. If you need a tutorial for writing a charm, you can find it here. If you have any further questions feel free to post to the Juju mailing list or ask in #juju on Freenode.

Be sure to get started soon though, the competition closes on 1st October 2013!

Read more
Michael Hall

Today is the first of the Ubuntu Core Apps Hack Days, where we will focus on one app per day to help get new contributors setup, walk people though installing and testing the Core apps, filing bug reports and knocking out some of the outstanding feature requirements needed to get the Core Apps ready for release.

The Hack Day activity will happen in the #ubuntu-app-devel channel on Freenode IRC.  We will have dedicated helpers (myself, dpm and popey) from 9am to 9pm UTC to answer your questions, help get your setup, and review your code.  We will also have developers of the Core Apps themselves joining the channel as they can to help with your contribution.

Today we’re going to be focusing on the Calendar application, one of the original Core apps and also one of those that is already in the default device images.  Our goal for today is to get the Calendar ready for every-day use (dogfooding), which means we need to get the following features working:

  • Browse by month
  • Browse by week
  • Browse by day
  • Bonus: sync Google Calendar

To help with these, you’ll need to know some QML and/or Javascript.  You can read through our Core Apps Development Guide to get started.

In addition to these required features, we also have a load of new designs to improve the functionality and user experience for the app.  If you’re feeling like taking on a slighter larger task, and you have a good handle on building front-end functionality in QML, here’s a good opportunity to leave your mark.

We also want to fill out our automated test coverage, of which there are currently five bugs that need somebody to work on them.  Autopilot tests are all written in Python, so this is a great way for our large community of Python developers to get involved with the Core Apps projects.

Read more

Earlier today Mark Shuttleworth blogged about the evolution of Mir, the powerful display server we are building as one component in the Ubuntu convergence story across desktops, phones, tablets, and more, but also as a general purpose display server that other distributions, desktops, and other upstreams can use too.

Mir will be landing by default in Ubuntu 13.10 with the XMir compatability layer to ensure we can continue to ship our existing Unity codebase and to ensure that any and all other distributions can ship their desktops too. This will be the first major distribution to ship a next-generation display server, not only on a desktop, but also on phones and tablets too.

I recommend you read Mark’s post in full, but I want to highlight this piece in particular:

On Ubuntu, we’re committed that every desktop environment perform well with Mir, either under X or directly. We didn’t press the ‘GO’ button on Mir until we were satisfied that the whole Ubuntu community, and other distributions, could easily benefit from the advantages of a leaner, cleaner graphics stack. We’re busy optimising performance for X now so that every app and every desktop environment will work really well in 13.10 under Mir, without having to make any changes. And we’re taking patches from people who want Mir to support capabilities they need for native, super-fast Mir access. Distributions should be able to provide Mir as an option for their users to experiment with very easily – the patch to X is very small (less than 500 lines). For now, if you want to try it, the easiest way to do so is via the Ubuntu PPA. It will land in 13.10 just as soon as our QA and release teams are happy that its ready for very widespread testing.

In a nutshell, we are passionate about encouraging not only Ubuntu flavors, but all distributions (either Ubuntu-derived or not) to be able to harness Mir as a powerful next-generation display server for either shipping their X desktop with XMir or harnessing Mir directly. From 13.10 onwards we will have a production-stable, fully supported Mir ready for everyone to use.

To put it clearly: while Mir will serve the needs of Unity well across a range of devices, it is not only intended for Unity, it is intended to serve other environments across a range of devices too.

Last week I reached out to most of our flavors to discuss this work (and discuss many related topics with the Mir engineers), and these discussions are continuing this week. I have also been in touch with some other distributions to discuss Mir support. Obviously we will be working closely with Debian to help get Mir in the Debian archives too.

Mir is Free Software (get the code or test from a PPA), discussed openly on mir-devel (see the archive), and we provide weekly updates from Kevin Gunn, Mir Engineering Manager every Tuesday at 5pm UTC on Ubuntu On Air. We are also refining our documentation to help folks write clients (see the API, the sample client, and other documentation). If you have any other questions about adding Mir support, feel free to get in touch with the Mir team on mir-devel.

tl;dr: the Mir team are very open to discussing the needs of upstreams and distributions. Get in touch on mir-devel or feel free to send me an email and I will put you in touch with the right person.

Read more

A few weeks ago we announced the Ubuntu Carrier Advisory Group (CAG). The CAG is designed to provide a place where carriers can help influence the development and requirements of Ubuntu for smartphones.

The founding members of the CAG were Deutsche Telekom, Everything Everywhere, Korea Telecom, Telecom Italia, LG UPlus, Portugal Telecom, SK Telecom and the leading Spanish international carrier.

I just wanted to follow up with a few CAG-related updates.

New Carriers

Firstly, we are pleased to announce two new carriers that have joined the CAG.

Last week we announced PT Smartfren Telecom, the largest mobile internet provider in Indonesia, an important market for the Ubuntu smartphone.

Richard Tan, Deputy CEO at Smartfren, commented:

“Ubuntu is an important option for Indonesia because it offers an attractive, flexible and differentiating solution for smartphones”.

Today we followed up with another carrier in the form of China Unicom; one of the world’s largest mobile operators, with nearly 300 million mobile subscribers.

Li Xingxin at China Unicom’s terminal research and support center commented:

“Ubuntu can be an exciting new platform for the Chinese market, offering a brand new user experience that balances user simplicity with operator requirements”.

We are delighted to welcome both PT Smartfren Telecom and China Unicom to the CAG! We also have some other carriers to announce, including a large US carrier; more details on that soon.

Differentiation and Scopes

When it comes to mobile devices, there’s a thin line between differentiation and fragmentation. Differentiation is enabling phone manufacturers and carriers to put their own stamp not just on the outside of the phone but also on the inside. To stand out against the competition in today’s market, manufacturers and carriers must go beyond the phone hardware itself and provide value-added services such as music and video content to the user.

Victor Palau, VP, Phone & Hyperscale Delivery at Canonical wrote an excellent piece on this topic called Differentiation Without Fragmentation and talks about the areas in which Ubuntu Phone can be given a unique brand and identity via theming, default applications and content, pre-defined launcher applications, and connecting backend content to default Ubuntu front-end applications.

A core method of differentiating is at the content level with music, video, applications, services, and other material. This is where our powerful scopes technology comes in, providing a way of delivering content to users, front and center, with a consistent experience…all while avoiding fragmentation.

For those of you who are interested in writing a scope to expose content and services to Ubuntu devices, see an overview of the technology, our tutorial for writing a scope, our growing cookbook with common scopes-related questions.

Read more

Last week, I attended Mobile Asia Expo (MAE) in Shanghai. It was my first experience of China, and I have to say I thoroughly enjoyed it. I got the chance to meet lots of folk from Canonical, as we all arrived from around the world to attend the trade show.

One of my tasks was to assist the London marketing team with loading the demo build we selected for showing off at the show. If you’d like to see it as well (what, you couldn’t fly to Shanghai to see it?), you can simply load it from our servers.

You’ll need a Nexus 4 or a Nexus 10 device, and you need to be prepared to replace the android software on it (you can go back). You need to setup the phablet-flash tool. The desktop setup part of our install instructions are sufficient, but the whole document is worth a read (this is still developer territory, and not quite for end users yet). Connect the device via it’s USB cable to your host Ubuntu desktop.

If your device has already been modified to run adb as root, the instructions are simple:

$ phablet-flash --legacy --revision raring/monthly-06  
$ phablet-network-setup  
$ phablet-demo-setup  

phablet-network-setup clones the current settings from the host laptop. If that’s not what you want you can configure the phone using it’s UI, before running phablet-demo-setup.

Note that you need ‘–legacy’ because our engineering teams have already moved forward to a new way of hosting the Android parts, and last weeks trade show image is old-style!

If your device needs to be prepared from scratch (it’s just come out of the box), then you need to use some extra steps:

First, boot the device to the bootloader (hold down the power key and volume down), and unlock it:

$ fastboot oem unlock

Now partition the storage, and format the data partitions:

$ fastboot -w

Now, download the binaries we’ll need.

$ phablet-flash -b -d mako -D --legacy --revision raring/monthly-06

Now load on the custom recovery image:

$ fastboot flash recovery ~/Downloads/phablet-flash/ubuntu-touch-preview/raring/raring/monthly-06/raring-preinstalled-recovery-armel+mako.img

Now, boot to recovery mode (select it from the bootloader menu), which has a working adb. We can push a zip to ‘/sdcard/’ and the recovery tool will flash it at next boot. First, do the android BSP:

$ adb push ~/Downloads/phablet-flash/ubuntu-touch-preview/raring/raring/monthly-06/ /sdcard/  
$ adb reboot recovery  

When the device has rebooted, and settles down to the charging icon, reboot it by hand to the recovery mode again, by booting to the bootloader and selecting recovery mode. We can now flash Ubuntu onto it:

$ adb push ~/Downloads/phablet-flash/ubuntu-touch-preview/raring/raring/monthly-06/ /sdcard/  
$ adb reboot recovery  

Now the device will boot into ubuntu, and you can add the demo content as before:

$ phablet-network-setup  
$ phablet-demo-setup  

If you have a Nexus 10, then substitute ‘manta’ where you see ‘mako’ above. Note that it needs both volume keys and the power button held down to get to the bootloader.

I found that sometimes this build would not populate the people lens correctly, or show the thumbnail pictures of contacts. I found that a reboot (after opening contacts in the phone app) worked to resolve it.

If you’re curious what changed to make these images ‘legacy’, it was the container switch, announced here.

Read more

Or two ways to install Ubuntu 13.04 on a ‘MacBook Pro, 13″ with Retina display’ (also known as MacBookPro10,2)…

Having recently joined Canonical, my first task was to provision a laptop to work on, naturally running Ubuntu. Asking for advice about which models to choose, I was advised to seek out designs with Intel wifi & graphics adaptors, presumably down to the quality of the open source drivers available. The 13″ retina MacBook has a screen I wanted to use, and met half the criteria – it uses Intel graphics. I was also encouraged to believe that installing on a modern Mac had gotten a lot easier than the information readily available suggests, so I gambled on the wifi requirement. It seems to have paid off.

The major decision is how to host OS X. You need to maintain a copy to host the firmware updates occasionally issued by Apple – they make no pretense to support anything other than OS X as a host for these.

You can elect to have OS X on an external drive, or keep an internal partition with it on. The first implies that when the external drive is not connected, the PC will be ‘single booting’ to Ubuntu, and the internal storage can be entirely managed by Ubuntu. The second option implies a ‘dual boot’ setup, and dividing the internal storage between the two operating systems. Having chosen a single boot or dual boot configuration, a secondary decision is how to select between this OS X instance and Ubuntu at boot time. The Mac’s boot manager ‘Startup Manager‘ can easily cope with multiple boot options, but it does prefer to manage instances of OS X. I only enjoy using it when it can be used as with OS X, booting straight to some preferred default unless keys are held down. rEFInd is an excellent alternative boot manager, and I’ve used it in the dual boot configuration.

To dual boot

You need:

  • The MacBook
  • A bootable usb key with a 64-bit Ubuntu 13.04 image on it
  • rEFInd. You can download this during the process
  • A wifi network your Mac can join

The basic steps

  1. Boot OS X, and get the latest updates. Adjust the volume if you want to mute the boot chime
  2. Shrink the partition hosting OS X with ‘Disk Utility’
  3. Install rEFInd
  4. Install Ubuntu, using the 3rd party software offered (that’s where the wifi drivers are)
  5. Fix a couple of audio bugs

More detailed steps

  1. Boot the Macintosh, and walk through the OS X setup
  2. Now’s a good time to adjust the volume. If you mute now, the boot chime will also be muted – Ubuntu lacks a tool to control the boot chime.
  3. Allow OS X to update (via the App Store). This may take a few cycles, if several updates need applying in sequence, and will catch any firmware updates already issued.
  4. Using Disk utility, resize the partition hosting ‘Macintosh HD’ to the amount you want. This will silently include the OS X recovery partition, so I went for 30G.
  5. Restart OS X, and download ‘rEFInd’
  6. Install rEFInd, using the –esp option if you’d like to keep it independent of your OS X install.
  7. Restart, and confirm that rEFInd is now part of the boot sequence.
  8. Insert your Ubuntu USB key (use a 64-bit, not 64-bit Mac image, see notes below), and restart. Select the offered ‘EFI\boot\grubx64.efi’ to start the setup process
  9. Elect to ‘Install Ubuntu’
  10. Elect to ‘continue’ after selecting your language. You’ll have been informed you’re currently offline by a notification window.
  11. Elect to ‘Install this third party software’ and continue. This is where your wifi driver is coming from.
  12. Elect to set up the ‘Broadcom Corporation BCM4331 802.11a/b/g/n’, selecting ‘connect to this network’, and configuring your wifi details. ‘Connect’ attempts to connect, and you use the same button a second time (as ‘continue’) to proceed if the connection works.
  13. Choose ‘Install Ubuntu alongside Mac OS X’, and then ‘Install Now’.
  14. Select your location, and continue.
  15. Select your keyboard. In my case ‘English (UK) – English (UK, Macintosh)’ seemed sensible.
  16. Enter the details for your user account
  17. Allow the install to complete.
  18. Once you’ve first logged in, allow Ubuntu to pull down the updates since the CD image you used was mastered.
  19. After it reboots, and you log in, you may find your audio is mute. In which case, you’ve been bitten by bug 1169984, and you need to follow the workaround listed. When I wrote these notes the fix hadn’t made it to the auto-update set.
  20. You will find the built in microphone doesn’t work. To enable this, the snd_hda_intel module needs to be explicitly informed which model it is running on, so add:
    options snd-hda-intel model=mbp101
    to the file /etc/modprobe.d/alsa-base.conf (sudo nano /etc/modprobe.d/alsa-base.conf is a good choice, if you’re used to mac editors), and reboot one last time.
  21. You’re done!

To single-boot

You will need:

  • The MacBook
  • A bootable usb key with a 64-bit Ubuntu 13.04 image on it
  • An external drive you can install OS X to. I used a 32Gb USB key. Slow, but I won’t be running this often!
  • A wifi network your Mac can join

Note that rEFInd is not needed – whenever you want access to OS X, Apple’s Startup Manager can offer the option.

The basic steps

  1. Boot OS X and get the latest updates. Adjust the volume if you want to mute the boot chime
  2. Restart, and ask the Mac to boot its recovery partition. (Hold down ‘option/alt’ while it boots)
  3. Install a copy of OS X on your external drive
  4. Install Ubuntu, replacing the internal OS X, using the 3rd party software offered (that’s where the wifi drivers are)
  5. Fix up the Ubuntu EFI install, so the Mac Startup Manager can understand it
  6. Fix a couple of audio bugs

Whenever you want to boot to OS X you need to insert your usb key, and use ‘option/alt’ during boot to select it.

More detailed steps

  1. Boot the Macintosh, and walk through the OS X setup
  2. Now’s a good time to adjust the volume. If you mute now, the boot chime will also be muted – Ubuntu lacks a tool to control the boot chime.
  3. Allow OS X to update (via the App Store). This may take a few cycles, if several updates need applying in sequence, and it will catch any firmware updates already issued.
  4. Restart, holding down ‘option/alt’ (the label depends on your keyboard) as the boot starts, to get the Apple Startup Manager. Select the Recovery partition, and boot that.
  5. Insert your external drive, and if needed, use Disk Utility to arrange for it to have a single ‘Mac OS Extended (Journaled)’ partition with the device using a ‘GUID Partition Table’ (This part is in Options). Note that the utility will allow space for a recovery partition also. Quit to return to the recovery menu.
  6. ‘Reinstall OS X’, selecting your external drive as the target. The setup wizard can be configured as you wish, and it appears that an Apple ID is optional to set up the OS, and receive firmware and OS updates.
  7. Boot this version of the OS, and take the chance to make sure it is up to date. Shut it down, and remove the external drive.
  8. Insert your Ubuntu USB key (use a 64-bit, not 64-bit Mac image, see notes below), and boot to the Startup Manager using ‘option/alt’. Select one of the ‘EFI Boot’ options (both seem to work equally well).
  9. Select ‘Install Ubuntu’
  10. Elect to ‘continue’ after selecting your language. You’ll have been informed you’re currently offline by a notification window.
  11. Elect to ‘Install this third party software’ and continue. This is where your wifi driver is coming from.
  12. Elect to set up the ‘Broadcom Corporation BCM4331 802.11a/b/g/n’, selecting ‘connect to this network’, and configuring your wifi details. ‘Connect’ attempts to connect, and you use the same button a second time (as ‘continue’) to proceed if the connection works.
  13. Elect to ‘Replace Mac OS X with Ubuntu’. Given that we’re effectively taking over the machine, the wizard knows how to offer full disk encryption and LVM support. Use them if you wish, and enter the necessary encryption key if you do.
  14. Check the final dialog is proposing to install on the internal disk, and then start the install proper.
  15. Select your location, and continue.
  16. Select your keyboard. In my case ‘English (UK) – English (UK, Macintosh)’ seemed sensible.
  17. Enter the details for your user account
  18. Allow the install to complete.
  19. Reboot when prompted, removing the Ubuntu USB key.
  20. The Startup Manager thinks a bit, and then gives up, prompting you with a Folder icon with a question mark. Insert the Ubuntu USB key, and after booting it, elect to ‘Try Ubuntu without installing’. We’ll use Ubuntu to patch things up with Startup Manager.
  21. Bring up a terminal, mount your EFI partition (a relatively small FAT32 partition), and rename the bootloader ubuntu installed to have the default EFI name:
    $ sudo mkdir /boot/efi $ sudo mount /dev/sda1 /boot/efi $ sudo mv /boot/efi/EFI/ubuntu /boot/efi/EFI/BOOT $ sudo mv /boot/efi/EFI/BOOT/grubx64.efi /boot/efi/EFI/BOOT/BOOTX64.EFI
    You can now shutdown Ubuntu and remove the USB key. There may be other more sophisticated ways to patch up what Ubuntu and Startup Manager can agree via the dialect of EFI they have in common, but setting the bootloader name to the default works for now.
  22. Boot the machine, and it will take you straight to Ubuntu.
  23. Once you’ve first logged in, allow Ubuntu to pull down the updates since the CD image you used was mastered.
  24. After it reboots, and you log in, you may find your audio is mute. In which case, you’ve been bitten by bug 1169984, and you need to follow the workaround listed. When I wrote these notes the fix hadn’t made it to the auto-update set.
  25. You will find the built in microphone doesn’t work. To enable this, the snd_hda_intel module needs to be explicitly informed which model it is running on, so add:
    options snd-hda-intel model=mbp101
    to the file /etc/modprobe.d/alsa-base.conf (sudo nano /etc/modprobe.d/alsa-base.conf is a good choice, if you’re used to mac editors), and reboot one last time.
  26. You’re done!


If you’ve got one, the Thunderbolt ethernet adaptor works, and removes the need to install 3rd party software at install time to get on the internet. I assume you could then choose exactly which third party software you install post-setup, and get the wifi that way.

As far as what works, the screen is gorgeous, but I think it’s worth tweaking font sizes and so on to trade readability & screen real estate (Unity Tweak Tool is your friend). I like that Ubuntu gives me more choices here than OS X. The ‘function’ keys above the keyboard work similarly to OS X, with all but the launchpad (!) and mission control buttons mapping to Ubuntu functions. The keyboard & screen backlights work, as do the audio controls. The trackpad can be configured to support two finger scrolling in the same fashion as OS X, if you’re like me and already habituated to that.

It appears that an Apple ID is optional during setup of your OS X image, and the App Store still provides OS and firmware updates to machines without a logged in ID.

FWIW, I can see no reason you couldn’t configure a dual boot system to encrypt the Ubuntu installation, but the wizard can’t help you, and I’ve not explored the options (my machine single boots).

If you’re willing to live without OS X entirely you have two recovery options if you want to uninstall Ubuntu and return to OS X. You can create a standalone recovery USB key (needs less space than an OS X bootable disk), or you can depend on the internet recovery mode available in the Apple Startup Manager.

Ubuntu 13.04 is available in at least 3 desktop flavors: 32bit, 64bit, and ’64bit Mac’. Whilst the 32bit one clearly can work (I tried it, the OS did boot), you end up using a BIOS compatibility shim that Apple seem to have only intended for use with Windows. Having used the plain 64 bit install a lot while writing this, I did briefly try the mac flavour. My notes are poor, but I recall it didn’t work well on this modern Mac. Given the current support in the standard 64 bit installer, there seems to be no need to use it. Fortunately the default download page contains apparently good advice to select the standard 64 bit verson for a modern PC.

The built in microphone not working had me puzzled for a while, and I used a USB headset until I found the workaround. I was looking for information on hotplugging thunderbolt (which seems not to work yet), and found an installation guide for Fedora 18 that noted the crucial step of letting snd_hda_intel know it is running on an mpb101. With this step the built in audio is fully functional.

I am indebted to James Jesudason for his tutorial for installing on the 15″ Macbook for setting me on the right track.

Read more

Beginning last week, we started our Ubuntu Weekly Update videocast that provides a range of weekly updates to keep our community, press, upstreams, and partners in the loop and up to date with recent progress.

Today’s show was a special two-hour show with two parts:

  1. The first part (beginning at the start of the video) includes status updates from the engineering mangers and project leads of Mir, Unity, Juju (Core and Ecosystem), Click Packages/App Upload Process, Ubuntu Touch, Unity APIs, and Community. We also fielded questions from the community who were viewing the show.
  2. The second part (beginning at 59.54) includes an hour-long interview with Chris Halse-Rogers (Mir Engineer), Kevin Gunn (Mir and Unity Engineering Manager), Oliver Ries (Director of Display Server and Unity Engineering), Robert Ancell (Mir Technical Lead), Steve Langasek (Ubuntu Foundations Engineering Manager), and Thomas Voss (Technical Architect). Again, viewers of the show asked a number of questions that were answered by the team.

You can view it below:

Can’t see the video? See it here!

As ever, questions are welcome in the comments, and Mir-specific questions are welcome on #ubuntu-mir on Freenode and on the Mir mailing list.

Read more

It all sounds good in theory… Not too long ago, Mark communicated the vision for Ubuntu and Unity for 2013 as “[...] Unity in 2013 will be all about mobile – bringing Ubuntu to phones and tablets [...]” and my team is responsible for taking Unity to these hardware platforms. What you should expect to […]

Read more