Archive for the ‘ARM’ tag
“Any intelligent fool can make things bigger and more complex… It takes a touch of genius – and a lot of courage to move in the opposite direction”.
- Albert Einstein
A little history
Perhaps a little known fact is that well over 15 billion chips have been shipped using ARM’s technologies, 1.3 billion in the last quarter of 2009 alone and as the internet goes truely mobile this is set to sky rocket. ARM have sold over 600 processor licenses to more than 200 companies and 12 of the top 20 semiconductor companies use their technologies. ARM based devices really are everywhere. In contrast, Intel have shipped just 3.3 billion to date. Renowned for their low power consumption and high performance, ARM based devices really do seem to be the holy grail of computing but why is it that Intel continues to dominates the desktop, laptop, netbook and server market?
Developing for ARM devices isn’t without its problems. There are a lot of companies all working independently on producing their own products, often duplicating effort. Kernels, boot loaders, and to a lesser extent middleware are being worked on in isolation with little in the way of standards and a common direction. This is scary for those who are used to working in the Intel world where one kernel and one boot loader will pretty much work on all compatible devices. To really push ARM devices into the standard spaces Intel currently enjoy’s, something needs to be done.
Ubuntu’s Linux on ARM initative
Canonical, creators of the renowned Ubuntu distribution, and ARM saw the need to rally around an effort to produce a modern, full-featured Linux distribution tailored for ARM devices. Together, starting in 2008, Canonical and ARM took on the task of bring Ubuntu to ARM platforms. Release 9.04, codenamed “Jaunty Jackalope” was the first Ubuntu release supporting Freescales iMX51 and Marvell’s Dove platforms. This distribution was further refined in the 9.10 Karmic Koala release and 10.04, Lucid Lynx even added support for a third ARM platform, TI’s Beagle Board. With a completely redesigned user interface, a web based office solution and many more improvements, Lucid is a magnificent release; however there is still a need for a more consolidated effort. This is where Linaro fits into the story.
What is Linaro?
Linaro is an initiative undertaken by ARM, Canonical and partners with the task of improving the state of the whole Linux on ARM ecosphere. It brings together the vast talents of the open source community and ARM’s wealth of experience in the electronics industry to work on key and game-changing projects. It will work in the various upstreams where possible and provide engineering, technical and guidance support for a wide and diverse set of problem area’s. Linaro will not just help other projects, there will also be a clear set of deliverables which will culminate Linaro’s efforts into regular 6 monthly engineering releases, starting this November.
So this is the area which gets me the most excited. As the release manager for Linaro I am responsible for making sure each and every release captures exactly what the essence of Linaro is, consolidation, collaboration, improvement and robustness. Each of these qualities are goals for the Linaro releases and to that end our first release, 10.11, will contain all of these in abundance.
Building upon the already successful Linux on ARM effort, Linaro will utilize Canonical’s Launchpad framework including bug management, code hosting and blueprints.
Just some of the high-level highlights are below. I’ll leave the other Linaro team members to blog the details about their teams efforts later.
- Help standardize the industry on common kernel versions and features.
- Improve debugging and performance analysis at the kernel level.
- Bring power management and performance improvements including boot speed reduction.
- Promote and implement device-tree’s on ARM hardware.
- Provide test ‘heads’, whole vertical software stacks and distributions, to show what can be done on top of Linaro.
- Explore integrating telephony right into the distribution.
- Improve the state of graphics acceleration.
- Provide QA and validation harnesses to ensure anything built with Linaro is of the highest standard.
- Offer performance analysis and suggestions on how to improve.
- Supply a whole host of development, archive and image management, and distribution creation and customization tools.
And much, much more. A full list of blueprints which capture what we are trying to achieve can be found on the Linaro wiki.
For more information on the Linaro initiative please see the official website and the wiki. We have mailing lists and a Launchpad project page and I invite you all to come and participate in this exciting and ground-breaking venture.
So whats next? Well, the famous words of Albert Einstein that opened this post are most relevant here. We are the Genius’s trying to make ARM development both easier and simpler. So with courage and a bit of luck, Linaro will succeed in bring Linux and ARM to a whole new level.
What a fantastic release Ubuntu 10.04, aka Lucid Lynx was. Many, many people helped to make 10.04 rock and as some of them attend the Ubuntu Developer Summit (UDS) this week to thrash out the roadmap for Maverick Meerkat, its a good time to look back at what happened to the ARM version of Lucid this cycle.
A new user interface
One of the most obvious changes is the user interface. The ARM version of Ubuntu’s previous release, Karmic Koala, booted to the default Ubuntu desktop. For some this was fine but typically today’s ARM devices tend to be different. At present, they tend to have smaller screens, less resources and little in the way of graphics acceleration. To overcome some of these limitations in the x86 netbook world, the netbook-launcher user interface was created. Based on Clutter, netbook-launcher could not run on the ARM devices Ubuntu was targeting due to a lack of 3D acceleration. Enter netbook-launcher-efl, a 2D version of the x86 netbook interface written using EFL packages.
Faster Live CD boots
Booting a Live CD is something that most new Ubuntu users do (and many existing users too). Its often their first experience of an Ubuntu release and should give a good impression. Well, on some ARM hardware, booting this Live CD image took over 3 minutes, not exactly the impression we would hope. So investigations happened into what was causing this slowness. In the end the final boot time was reduced by around 35% on all Ubuntu Live images, not just ARM ones.
Web Office and Web Mail integration
Open Office on a resource limited platform isn’t the greatest experience and to make matters worse, on the ARM architecture there are issues building it correctly. A new way of viewing, editing and saving office documents was needed and for the Lucid cycle a web-based solution was integrated into the desktop called webservice-office-zoho.
Similarly, Evolution could be considered too heavy-weight for ARM device needs. A solution was implemented to enable integration with several online mail providers.
Optimized Tool Chain Defaults
This release includes a complete archive rebuild using more modern tool chain defaults that the latest ARM hardware can take advantage of. As of Lucid Lynx, packages are built using Thumb-2 to reduce code size and improve performance, NEON for accelerate multimedia and signal processing, and are optimized for ARMv7A based chips. Although this means that some older hardware will not work with the latest Ubuntu release it does mean that the images perform much better on modern hardware.
Much bug fixing went on this cycle. The fail to build list (FTBFS), a list of packages that fail to build on a given architecture, was a focal point of activity. For the first time ever, the number of packages that failed to build on ARM from the main archive was zero (apart from libx86 which refuses to leave the build queue for ARM due to a bug), a great achievement.
The Chromium browser now works on ARM, rootstock, the tool to build ARM rootfs tarballs gained a gui frontend, we added support for the very popular OMAP platform (beagle board) and many small improvements were implemented, making this the best Ubuntu ARM release ever.
We here at Canonical are very proud of the Lucid Lynx on ARM and are extremely excited at what future releases will bring.
Desktop Integration with the cloud is hot news. Ubuntu One is a great example of this. Currently Ubuntu One integrates file storage, contacts and notes sync, and now you can even buy music from the online store, delivered straight to the Rythmbox media player. But for some devices, integration with the cloud isn’t just a nice feature, it completely changes the user experience (UX). Take for instance a low powered, possibly mobile/embedded system with limited processing power and memory. A cloud based service for these devices could allow resource intensive tasks to be offloaded to an online server somewhere, greatly improving the UX. One set of tasks that are used often but can put a strain on resources are related to office document editing.
Ubuntu’s Current Offerings
The standard Ubuntu image currently contains the Open Office suite. For those that do not know, Open Office is, from the website:
“OpenOffice.org 3 is the leading open-source office software suite for word processing, spreadsheets, presentations, graphics, databases and more. It is available in many languages and works on all common computers.”
Open Office also has around 9 million lines of code spread over 30 thousand files, in short, its a large project. Running this on a device with limited resources is a recipe for disaster. Of course there are alternatives, Abiword and Gnumeric are examples of two applications that replicate functionality found in Open Office’s Writer and Calc respectively. There are also online services such as Google Docs and Zoho but neither of these are tightly integrated with the desktop, until now. Enter webservice-office-zoho.
First off, why Zoho and not, for instance, Google Docs. Both services offer great functionality and are very competitive but the ultimate decision came down to which suited our use case the most. What we wanted was for a user to double click on a document which would then seamlessly open ready for editing. From there the user would edit, read, and maybe even save it back to the local device. No fuss, no logging in, no other requirements, just open and get on with it. Similary, when a user launches the application on its own, we wanted the correct type of service to open ready for the user to concentrate on their document. The service that allowed us to do this was Zoho. Zoho allows the user to do all of this without ever registering or logging in. Of course you get online storage with Zoho if you do register, but if you choose not to you can still get a full featured experience.
Integrating Zoho with the Desktop
So what do you get with this new integration. Well as alluded to before you can:
- Open, read, edit and save email document attachments.
- Open, read, edit and save local documents.
- Open, read, edit and save remote documents linked to with a url.
- Launch the required application, Writer, Show or Sheet (Word Processor, Presentations, Spreadsheets) which will present the user with an empty document of that type ready to edit.
- More functionality to come in Maverick Meerkat.
webservice-office-zoho shown here installed along side Open Office
This functionality is currently only available as default on Ubuntu’s ARM images, typically where limited hardware resources are more commonly found. But that’s not to say webservice-office-zoho can’t be used on any other Ubuntu install. As the package is in the main Ubuntu repository, a simple:
sudo apt-get install webservice-office-zoho
will install it on your Lucid based machine or if you are feeling brave, checkout the latest bazaar branch with:
bzr branch lp:webservice-office-zoho
There are lots of things planned for the future of webservice-office-zoho. If you have comments, idea’s or just want to rant, come along to the web integration UDS session this May, either in person or via online methods or just leave your thoughts here.
ARM based platforms traditionally have a problem with graphics drivers and free software. Encumbered by licensing issues, many platforms only ship with 2D based drivers whilst the 3D driver-enabled offerings only frequent the poshest of circles such as Nokia’s N900. There are exceptions, but its a painful reality at the moment.
Vendors are trying to work around it, especially as there is the expectation of a ramp-up in the availability of ARM based hardware. Super long-life netbooks, low powered touch based computers, and even a flurry of smaller embedded devices are forecast to hit the market this year, many of which will be based on the Linux operating system. Ubuntu would be a great match for this.
Read the rest of this entry »
One of the goals for the Lucid cycle was to investigate why it took so long to boot an Ubuntu live cd session. Why is this important I hear you ask? Well the live cd is usually the first thing a potential new Ubuntu user sees. They get an Ubuntu Desktop (or other flavour) cd from their friend/colleague/random person, insert it into their machine, wait for a while and are then presented with a live session. All well and good but if your running on slower hardware, even a different architecture such as ARM, this initial slowness can be orders of magnitude more than a fast desktop/laptop. For example, the ARM images we shipped for Karmic took over 3 minutes to boot into a live desktop session.
Read the rest of this entry »
So its that time of year again, a great Ubuntu release was made late last year and the team is frantically trying to make the next release even better. So to facilitate this the Ubuntu platform team got together for a sprint in the most awesome city of Portland, Oregon last week. Whoever designed the city must be commended, its easy to explore, well laid out and you never get the sense that you are lost, much kudo’s to them.
Anyway, back to team business. The mobile team managed to get a metric tonne of work done (possibly more) in the 5 short days. To date we now have a new default UNR styled UI, 33% faster-to-boot live-cd images (thats across all images, not just ARM), mature and optimized (can you say Thumb2+NEON) images, the Chrome web browser on ARM, greater integration of testing and many, many, bugs squashed. All this and we are only half-way through the cycle.
ARM hardware is only just proliferating onto the market but when it becomes mainstream, we hope our hard work will make Ubuntu the default operating system. The team is working hard to make Lucid the best ever ARM optimized Linux release and we invite you, if you have hardware, to use, test, and contribute to make Linux the choice for ARM hardware.