For people wanting to test different Linux distributions in our credit card sized computer, installing CentOS in Raspberry PI is a valid alternative enabling you to access a different repository from Debian one.
Derived from the sources of Red Hat Enterprise Linux (RHEL), CentOS used yum as package manager up to version 7. From CentOS 8 it adopts dnf.
Like CentOS, also Fedora is owned by Red Hat. The main difference between the two distributions is in their updates relase frequency: CentOS (like RHEL) is more focused on long-term support with advanced security features. On the other hand Fedora releases more frequent updates. This is one of biggest reason why CentOS is preferred to Fedora for server environments.
In this guide, I’m going to show you how to install CentOS in your Raspberry PI. This tutorial has been tested with Raspberry PI 3 Model B+, but will work also to install CentOS 8 in Raspberry PI 4.
An important note: as CentOS 8 is not still available with a Raspberry PI image at the date of this tutorial, the only way to get this version is installing CentOS 7 and then upgrading to CentOS 8. This may get arising some errors (main of which I found as minor for a basic upgrade) to be fixed, so I ask users wanting to help to use comments for help people wanting to try this new release on Raspberry PI.
So, while process to install CentOS 7 is the official one, upgrading to CentOS 8 is still not official and I suggest to use this second part as a test environment.
If you want to know more about this distro, please refer to CentOS project home page.
What We Need
As usual, I suggest adding from now to your favourite e-commerce shopping cart all needed hardware, so that at the end you will be able to evaluate overall costs and decide if continuing with the project or removing them from the shopping cart. So, hardware will be only:
- Raspberry PI (including proper power supply or using a smartphone micro usb charger with at least 3A)
- micro SD card (at least 16 GB, at least class 10)
- micro HDMI cable or HDMI cable or mini HDMI cable (check your Raspberry PI HDMI port in Comparing main features of latest RPI models)
- USB/wireless keyboard
CentOS offers also different ARM based ISO. I’m opting to use the KDE version to test the delicious Desktop Environment performance on our hardware.
You also need a Windows PC with Etcher installed (to flash SD card) and Putty (if you want remote ssh access). Also a Windows compression program compatible with “.xz” files (like Winrar) is required.
With Windows PC, download Raspberry PI CentOS 7 sda.raw.xz from CentOS ARM iso download page (selecting latest armhfp version and downloading Raspberry PI KDE iso) inside the PC where Etcher is installed.
Exctract the content of downloaded file inside a directory at your choice. You will have a “.raw.xz” file containing ISO image. Edit file name changing extension from “.raw” to “.img”. Confirm when Windows popups of risks about changing file extension.
Flash SD Card
This part will be done in your Windows PC.
Open Balena Etcher. Note: sometimes Etcher has problems flashing SD cards without administrative permissions, for this reason I suggest to run it as administrator.
Click select image button and select the file just renamed.
Insert SD Card in your Windows PC. If not automatically recognised by Etcher, click “Select target” and select partition letter related to your inserted SD Card.
Click “Flash!” button and wait for flashing operation to be finished.
Now you can close Etcher and extract your SD Card from Windows PC.
First Boot on Raspberry PI and Post Installation Tunings
Insert SD card in your Raspberry PI, connect it to keyboard and HDMI (monitor). Power on the Raspberry PI.
The first screen shows system loading (will last about less than a minute).
Once prompted for login, insert default user credentials:
- user: root
- password: centos
Then you will go directly to desktop screen and your CentOS 7 installation is finished!
Once installed, a few common tunings can be useful.
By default, CentOS uses only a limited part of your disk. To use all available space in your SD Card, from terminal type the following command:
Update Your System
Make your OS up to date. From Terminal:
yum -y update yum -y upgrade
This can be done in a very simple manner with icon in bottom-rigt side of your desktop:
From this panel, select your WiFi network and insert your password.
Remember to flag System Connection option if you want this WiFi network up after each reboot. Otherwise, you will need to login from Desktop Environment and manually enable connection.
Once connected to a network (Wired or WiFi), remote SSH is enabled by default with default root user cedentials used to logon in Desktop environment. Find CentOS IP address from its terminal (with “ip addr” terminal command, since from CentOS 7 “ifconfig” terminal command is no more available) or from its networking settings.
Upgrade to CentOS 8
This part was made adapting CentOS upgrade guide from Tecmint to Raspberry PI.
WARNING: some moderators in CentOS forum refer that this isn’t an official upgrade procedure (and they don’t think that there will be ever one). So, consider following as test, even if OS was running in my Raspberry PI at the end of these steps.
Before starting, check your current OS version:
[root@localhost ~]# cat /etc/centos-release CentOS Linux release 7.9.2009 (AltArch)
Install EPEL repository. Add ARM epel repository (copy and paste following code entirely):
cat > /etc/yum.repos.d/epel.repo << EOF [epel] name=Epel rebuild for armhfp baseurl=https://armv7.dev.centos.org/repodir/epel-pass-1/ enabled=1 gpgcheck=0 EOF
yum install epel-release
Tecmint guide, now, requires installing yum-utils tools (with “yum install yum-utils” command). But I found these tools already installed.
We need to resolve some RPM packages:
yum install rpmconf rpmconf -a
At rpmconf -a first (and unique) question I answered “N” (keeping current versions).
Perform packages cleaning:
package-cleanup --leaves package-cleanup --orphans
Install the new dnf package manager, removing old yum package manager:
yum install dnf dnf -y remove yum yum-metadata-parser rm -Rf /etc/yum
And upgrade dnf packages:
Next command is where the real upgrade from CentOS 7 to CentOS 8 happens. I had to change references from original Tecmint command to point AARCH64 packages:
dnf install http://mirror.centos.org/centos/8/BaseOS/aarch64/os/Packages/centos-linux-repos-8-2.el8.noarch.rpm http://mirror.centos.org/centos/8/BaseOS/aarch64/os/Packages/centos-linux-release-8.3-1.2011.el8.noarch.rpm http://mirror.centos.org/centos/8/BaseOS/aarch64/os/Packages/centos-gpg-keys-8-2.el8.noarch.rpm
dnf -y upgrade https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
remove all the temporary files
dnf clean all
Remove the old kernel core for CentOS 7. We need kernel package:
dnf install kernel rpm -e rpm -q kernel
remove conflicting packages.
rpm -e --nodeps sysvinit-tools
launch the CentOS 8 system upgrade as shown.
dnf -y --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync
install a new kernel for CentOS 8:
dnf -y install kernel-core dnf -y update dnf -y upgrade
Now you can check the version of CentOS installed by running.
CentOS with KDE surprised me for being so responsive and fast on Raspberry PI. In past (many many many years ago…) I already tested KDE on low end PC, but I found it heavy and abandouned for lighter Desktop Environments. I have to say that today I reconsidered it.
From CentOS side, it is a strong and stable OS. It derives from Red Hat Enterprise Linux (RHEL), an OS focused on large enterprises and critical businesses. So it has an important backend at its basis.
We are sorry that this post was not useful for you!
Let us improve this post!
Tell us how we can improve this post?