[CentOS] What about the AltArch repositories? (+ some experiments with aarch64 on Raspberry Pi)

Wed Dec 16 08:50:43 UTC 2020
Mathieu Baudier <mbaudier at argeo.org>

Hello,

given the recent change in direction of CentOS, what will become of the
AltArch repositories? (like CentOS 7 aarch64 and the related kernel
repositories)

I have been experimenting (with some success) with running a regular CentOS
8 aarch64 (ARM 64 bits) on a Raspberry PI 4 (with 4GB RAM), using the
aarch64 kernel-rpi2 provided by CentOS 7 AltArch [1]. (a few more technical
details below)

This is a very different question than what is currently hotly discussed on
this list, with the end of the bug-for-bug clone of RHEL, as there were
never expectations that such settings would be supported. But on the other
hand, I liked to use CentOS for innovation in a given field (mostly Java
related) as its stability allowed one to go deep into one direction with
"other things being equal" (contrary to Fedora, which is always moving in
all directions).

I guess that all these "side projects" (and SIGs, etc.) will disappear as
well, won't they?

Cheers,

Mathieu

## More details about running CentOS aarch64 on a Raspberry Pi 4

As for my experiments with running CentOS 8 on a Raspberry Pi 4, a bit more
details, so that these efforts are not completely lost. Two approaches were
working :

- From a plain CentOS 7 AltArch aarch64 installation, perform a CentOS 8
aarch64 install in a chroot (with the --installroot option) + a clean
kernel-pi2 install from the CentOS 7 kernel-pi2 repository. Then copy the
chroot to an .img file, and use this image to initialise an SD card.

- From a plain CentOS 7 AltArch aarch64 installation, perform an in-place
upgrade to CentOS 8 (first install dnf from EPEL, then switch the repos,
and it works)

The second approach had better device support on the Raspberry Pi 4 (most
importantly the wifi, which was not working with the first approach), but
this was probably a matter of subtle kernel / modprobe configs that were
beyond my skills. I thought that I would share all this at some point, and
ask for help from the CentOS AltArch developers; but I guess it is
irrelevant right now.

Both approaches were working equally well on the Raspberry Pi 3 (but Fedora
support is good for this version, while Raspberry Pi 4 is not supported, so
I tend to use Fedora aarch64 on them).

As for what is actually the point of doing all this, this is not for
weekend hobby tinkering, and it is relevant for server-side applications.
ARM 64 bits is becoming an important platform (hence the fact that RHEL is
now supporting it, MacOS will soon completely move to it, etc.) especially
if one is interested in climate-friendly low-power IT, also on the
server-side. But finding hardware is not easy and the (cheap) Raspberry Pi
have 64-bit capable processors, even though the default distrib (Raspbian,
based on Debian) does not yet support 64 bits (but they are working on it
[2]). After trying many distributions, a paradox was that CentOS was
actually the easiest to deploy and use in order to get some results (thanks
to the work of the AltArch team!)

In my case, the main interest was to test on ARM 64 bits GraalVM, the next
generation Java platform, which can compile Java (and other programming
languages) to native code. These builds require a lot of memory, but with
an extremely slimmed down CentOS 8 and the 4 GB memory of the Raspberry Pi
4, it worked! [3]

On a different layer, I could also test Eclipse SWT (Java user interface
library) on this architecture (but on the plain CentOS 7 aarch64 with
GNOME), and provide some quick feedback to Eclipse developers on their
recent support for the whole Eclipse IDE on ARM 64 bits. [4]

[1] http://mirror.centos.org/altarch/7/kernel/aarch64/kernel-rpi2
[2] https://downloads.raspberrypi.org/raspios_arm64/images/
[3] https://twitter.com/mbaudier/status/1274263320254722050
[4] https://twitter.com/mbaudier/status/1291421892381937670