The ARM plan for CentOS

ARM is an interesting platform for many reasons and many people around the CentOS ecosystem have often spoken about a native, maintained and in-sync CentOS ARM build might be. But a couple of major drawbacks have kept us ( and others ) from being able to deliver on this. The most important ones are that the CentOS-6 codebase is now old enough that a lot of the really cool things in recent ARM development were not included in there ( gcc ver, kernel ver, glibc etc ), and backporting large chunks of this code is truely beyond the scope of what we can do and have done in the past within the realm of the Core SIG. Also, making that level of change automatically forks the CentOS codebase, creating potential package orphans. This problem goes away with the CentOS-7 codebase, just looking at the RHEL7beta1 codebase, its clear that we should be able to build a reasonable ARM story around it.

Another challenge has been finding and working with reasonable hardware that we might be able to target CentOS ARM on. To that end, David Power and the guys at Boston UK have provided us a couple of instances in their Viridis, ARM as a Service Cloud to start the process off with. These are ARM32 HighBank nodes, that are able to run builds and tests at reasonable speeds ( the test gcc build that Johnny ran last week took ~ 8 hrs to finish ).

What we are then looking to do from here is bootstrap the rhel7beta codebase against fedora19 ( which runs really well on these nodes ) for an ARM32 build. Once we have that in place, we are going to try and see if we can get to a self-hosting state and prepare ourselves for the EL7 GA announcement. The aim being to try and build + deliver an ARM32 distro in sync with the mainline x86_64 distro.

This is going to be a fair bit of work, and towards that we are going to need people to come help with the builds, with the testing and we are also going to need more vendors to offer us hardware that we can use to build and test against. We have a mailing list on at http://lists.centos.org/mailman/listinfo/arm-dev called Arm-Dev, we will try and focus all the interest in ARM onto that list, so come and join the effort.

The present state is that Johnny is stress testing the nodes, doing some test builds, writing up the mock configs. Once this is done, we will get the reimzul builders running on there, and start accepting build requests, build patches and start pushing build logs etc.

One challenge that still remains is that the big Red Hat TM and branding hunt into the rhel7beta code has not happened – and this is blocking the i686 as well as the x86_64 rpms from being publicly visible. We do have a small plan for that, and it involves kicking off a community exercise in the second week to April and to build both a whitelist and a blacklist of code, rpms and to write some automated patching resources to handle the whitelisted content. Details about that in another post soon.

In the mean time, welcome to the ARM32 build effort on CentOS-7beta ( and ongoing ). We’ll see you on the Arm-Dev mailing list.

- KB

2 thoughts on “The ARM plan for CentOS”

  1. Springdale Linux, which does largely the same work as CentOS with a clone recompile/rebrand of RHEL, was able to get an ARM version of the distro running based on 6.0: http://puias.princeton.edu/data/puias/6.0/armv5tel/

    I didn’t bother keeping up with 6.1 .. 6.5, I am just one guy with a pandaboard and it was a fun project with very little real-world value as of right now. Of course as you mention there are significant challenges, we did not backport stuff like gcc/glibc or any of that, but rather for a few select packages that don’t build natively, borrowed the SRPMs from upstream Fedora. In some cases their patches worked perfectly, in many cases they did not and we ended up with the Fedora packages, that is what the “unstable” directory is all about. We also had to create some fun new packages, kernel, x-loader, uboot, wl12xx-firmware, etc. to get it to work properly on our single pandaboard we used to compile everything.

    Looking forward to working with you guys on RHEL7 ARM stuff (although more immediate and pressing will be the need to build packages ix86 as RedHat won’t be releasing those and we’ll likely have to bootstrap them against a similarly-versioned Fedora.)

    1. Ben, Great news! looking forward to having you on board, there are a couple of tests builds running at the moment – and having someone who has burnt the same fingers as us in the past would be good to have come join the effort.

      Privately, we were able to bootstrap a 6.3 tree as well, but didnt consider it was going to be a viable CentOS linux deliverable to pursue or publish.

      I’m working to get more hardware ( we have 16 cores in the loop now ) and we should have some A15 kit as well soon ( fingers crossed ).

      Then, ARM64 cant be far behind :).

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>