The Past, Present and Future of Ubuntu for ARM
David Mandala of Canonical talked at Linux.Conf.Au on 18th of January 2012 about Ubuntu for ARM and the move from netbook to server support. You can read my notes below, or jump at the end of this post to watch the presentation.
2008: Ubuntu decides to only support ARMv7 architecture vs. Debian that supports ARMv4 and above.
2009: Ubuntu release for Freescale i.MX51 (ARMv5 built), and then Marvell ARMAVA with ARMv6 and VFP (ARM floating point unit) support.
- April (10.04) The first ARMv7 release for OMAP3 (Beagleboard) with VFP, Thunb2, NEON and SMP for ARM and first netbook edition
- October (10.10) Pandabord (OMAP4) release with initial device tree support for ARM. Starts work with Linaro.
- 11.04 (5th release) – Supports OMAP3 and OMAP4 only. The netbook edition is using Qt, further improvement to device tree, further work with linaro and on the way to the Unified linux kernel for ARM (still a few years away).
- 11.11 (6th release) – Support for OMAP3/OMAP4 and Freescale i.MX53 QSD boar, as well as community supported Toshiba AC-100 (Nvidia Tegra 2)
Precise Pangolin (12.04) in April 2012 will be based on kernel 3.2 with OMAP3, OMAP4 and i.MX53 support. This release will also support ARM server SoC by Calxeda and Marvell. This will be the first version to support hard float (ARMhf) instead of soft float (ARMel). It will be Multiarch clean that is you will be able to use pre-build libs for arm on a x86 server with tools such as dkpg-cross and run your ARM apps with qemu.
David also gave some interesting statistics on the time it took to build ARM packages (natively):
- ARMel: 2 to 3 months to build 25,000 ARM binary packages.
- ARMhf: 3 weeks to build 36,668 ARM binary packages.
Finally, he explained the main challenges porting Ubuntu for ARM:
- SMP support (multi-core support) for ARM
- Thumb2 for assembly code (For technical details, visit https://wiki.ubuntu.com/ARM/Thumb2 and https://wiki.ubuntu.com/ARM/Thumb2PortingHowto)
- Kernel security patches for different ARM SoC
First, he answer the question “Why ARM server?” with one word “Power”, as ARM has a clear advantage against Intel x86 architecture on this metric. Currently, it costs 458 USD / year / server to power and cool servers, and ARM servers will greatly decrease those costs and lower the TCO both via lower CapEx and OpEx.
Future released of Ubuntu for ARM will support Marvell ARMADA XP and Calxeda ARM server SoCs. He showed a picture with 72 servers per rack unit, and explained ARM server low power consumption also allow for higher density, although heating also becomes an issue.
After this section on ARM server and Ubuntu for ARM Server Edition, he went back to future releases of Ubuntu for ARM:
- October 2012 – The eighth release (12.10) will fully support Marvell and Calxeda server SoC, support Cortex A15 processor with virtualization support (KVM and XEN) and 40-bit LPAE addressing allowing up to 1 TB of RAM
- April 2013 – On top of Cortex A8, A9 and A15, Ubuntu 13.04 will also support Cortex A7 and big.LITTLE processing. ARMv8 64-bit support will be implemented which will also give access to up to 16 hexabytes of RAM. That version of Ubuntu will support UEFI bootloader and Multiarch for ARM 32-bit/64-bit.
David expects a single image for a given SoC in 2013, and in 2014, we should be able to get a unified kernel for ARM that can be installed on any ARM platform, just the way we can do it today on Intel/AMD computers.
Finally, he discussed shortly of the Ubuntu Panda Builder, Canonical ARM build cluster composed of 10 pandaboards + one control pandaboard.
You can watch the 45 minutes presentation below. I could not find the presentations slides, but will post them later if/when they are available.