Continuing my "Spotlight on the Linux software Ecosystem", this time I am going to cover the openSUSE Project.
openSUSE is not only one of the major Linux distributions, but is also one of the oldest distributions tracing its history back to 1996 when it was called S.u.S.E. (an acronym for Software und System Entwicklung); it is also the upstream project for the well known SUSE Linux Enterprise distribution (SLE). As with many distributions, it offers a large array of Open Source software as part of the core distribution and much more via the Open Build Service. In contrast to its peers, openSUSE is a relatively new comer to the ARM community with a concerted effort over the past two years to enable support for ARM. The project focuses the current ARMv7 and upcoming ARMv8 versions of the architecture. Some members of the community are also looking after ARMv5/v6 support. With the latest release of openSUSE - 12.3 was released in March ARMv7 becomes a standard and supported architecture, much like x86 and PowerPC.
I attended a week long hackathon organized by the openSUSE ARM team at the beginning of April. The project holds numerous hackathons throughout the year to get as many developers from around the globe into a room to focus on specific developments of the project. We converged on the SUSE offices in Nurnberg, Germany and took over one of the conference rooms. Rather than just haphazardly poking at various items, the team drew up a to-do list of items that they wanted to complete within the week, some were easier to complete than others. There were two items on the list that they wanted to get completed as soon as possible.
One was building and testing of the images for the various platforms that openSUSE supports. As the ARM ecosystem is vast, the project took the decision to focus on a subset of hardware platforms that are available. As such, openSUSE is enabled for eight different ARM SoC families covering at least 12 hardware platforms; these include Calxeda Highbank, Freescale iMX51 and iMX53, Marvel Armada 510, Samsung Exynos 4 and Exynos 5 and Texas Instruments OMAP3 and OMAP4. On many of the platforms two types of images are produced, a minimal command line only JeOS environment (Just enough OS) and a Graphical environment using XFCE.
The other high priority item on the list was improving the Open Build Service's support for ARM.
I won't go into great detail about what is the Open Build Service, but I'll try and give an overview. To quote their home page: "The Open Build Service is a generic system to build and distribute binary packages from source in an automatic, consistent and reproducible way". Basically a service that one can use to build Linux packages for users to install. One of the big differences between OBS and other build systems, like Fedora's Koji and Debians Buildd, is that it can produce packages for multiple distributions. Currently it supports Fedora, Debian, Ubuntu, Red Hat and CentOS in addition to SUSE and openSUSE. The OBS is completely open source and is used by several enterprises as well as other projects including Dell, Cray and the Linux Foundation. The OBS is also the tool that openSUSE uses to build its entire distribution including all installation media.
The improvements that the team wanted to make included adding additional nodes to the openSUSE hosted service, the hardware they chose for the task was the Samsung Exynos 5 powered Arndale board. The reason for the hardware choice is that the Arndale was the first commercially available ARM® Cortex™-A15 powered device which includes hardware support for virtualization with support for KVM hypervisor to maximize hardware utilization.
An additional task was testing and verifying OpenStack on their ARM builds. As OpenStack is part of the core distribution no additional packaging was required, it was essentially a matter of installing and running - or at least that was the theory. Initially the hardware target was going to be Arndale boards again, but 11 had been deployed into OBS and the spare one appeared to be down for the count. One of the attendees is a hardware engineer working in board design so he jumped in to try and resuscitate the casualty - I'm pleased to say the patient made a full recovery before the end of the week. The most readily available platform to hand was the TI OMAP4 powered Pandaboard. As the OMAP4 is Cortex-A9 which doesn't have hardware virtualization extensions, using Xen or KVM was out of the question. Linux Containers were chosen, and work begun on getting things up and running. As with most things that appear straight forward there were a few hurdles to overcome first. After some modifications to the kernel configuration, some patches to the OpenStack packages and tweaks to the guest LXC image, we had a Cloud in our ARMs.
An event where hackers and engineers focussed on ARM wouldn't be complete without efforts to bring up a new board or two, this included the Allwinner A10 powered Cubieboard. Most of the work has now been completed with installable images almost ready, .
The week wasn't just spent on working with current hardware; there was also some efforts to work on new architecture version, in this case ARMv8 and Aarch64. openSUSE have kicked off porting efforts of the distribution to the new architecture, running multiple ARM Foundation Models connected to the Open Build Service.
As of writing, over 93% of the distribution (more than 5720 packages) is ported to ARMv8. They are waiting for real hardware to be able to test out things fully. As everything is done using the OBS you can easily see the status of the builds.
The openSUSE community working on ARM is a friendly group, with knowledge and experience ranging from hardware, low-level kernel and tools, to Xorg and user-level stacks. They always welcome new members openly and are more than happy to help out. To join in or just find out more, contact them via their mailing list opensuse-arm@opensuse.org (subscription required see here for how), IRC (#opensuse-arm on Freenode) or their Forums. Additional information can also be obtained from their Wiki.