Introduction

ARM processors are widely used on various devices, like smartphones, tablets and small computers/boards. The main advantages of the ARM processor are :

For more informations about the ARM architecture, feel free to read the following links :

Why CentOS on ARMv7hl boards

A lot of people are interested in running Linux on such kind of cheap/small boards , as home server appliance, domestic controller, small vpn endpoint, etc (the list isn't exhaustive). While it exists a lot of distributions already providing support for such boards, someone already using CentOS 7 x86_64 for his servers/workstations/laptops will be probably interested in managing even such small armv7hl boards with the same tools. That's why the CentOS AltArch SIG decided to try to port the existing code from CentOS 7 x86_64 to the armv7hl/armhfp platform.

: it's worth knowing that the distribution for armv7hl platform is called "CentOS Userland Linux" and not "CentOS Linux". The reason is that for some packages, the AltArch SIG can decide to include some other packages, replace some components, or not build some packages from the upstream distribution. The most and obvious case is the kernel, as kernel 3.10.0-* (as used in the main CentOS 7 x86_64 distro) doesn't support such armv7hl boards/arch. (see the [Supported Boards] section below)

Supported armhfp boards

We currently support the following board types :

Worth noting that we have so the following images :

We still have the -RaspberryPI- images, while now (since 7.5.1804) the -generic- images can be used natively on rpi boards, using so the upstream kernel (support is not complete, but very usable)

If your device is based on an Allwinner chipset, you should also check https://linux-sunxi.org/Linux_mainlining_effort so you know what to expect

How to install CentOS Userland armv7hl

How to unpack the image for your board

The first thing to do is to download the appropriate image for your board. You need at least a 4Gb SD card or more, depending on the package selection (so Minimal/GNOME/KDE): http://mirror.centos.org/altarch/7/isos/armhfp

Attention, be sure to verify your sd card path, as the next command, run with sudo rights, can destroy the target device if it has not been correctly identified! Most of the time, it will be /dev/mmcblk0, but be careful!

Once you have downloaded the corresponding image for your board model, transfer it to your SD card:

xzcat CentOS-Userland-7-armv7hl-$MODEL-$VARIANT-$RELEASE-sda.raw.xz | sudo dd of=$/path/to/sd/card status=progress bs=4M
sudo sync

TIP: : the 'status=progress' parameter for dd exists in the version supplied with CentOS 7.2.1511. If you're running another version or another distribution, verify first that it's supported. That parameter isn't mandatory, but written here for convenience, to track the transfer rate status to the SD card. The 'bs=4M' parameter is also used for a faster transfer rate to the SD card, as most SD cards have an erase block size of 4MB

uboot setup (not needed for the RaspberryPI boards)

After you have unpacked the generic image to your SD card, you just have to do one additional step.

Let's suppose you do this from your linux laptop and that your board is Bananapro :

yum install uboot-images-armv7 uboot-images-armv8
export boardmodel="Bananapro"
export sdcard="/dev/mmcblk0"
dd if=/usr/share/${boardmodel}/u-boot-sunxi-with-spl.bin of=${sdcard} bs=1024 seek=8 conv=fsync,notrunc

FYI Here is a list of boards that have a uboot file for armhfp (from uboot-images-2018.03):

A10-OLinuXino-Lime A10s-OLinuXino-M A13-OLinuXino A13-OLinuXinoM A20-Olimex-SOM-EVB A20-OLinuXino-Lime A20-OLinuXino-Lime2 A20-OLinuXino_MICRO am335x_boneblack am335x_evm am335x_evm_usbspl am57xx_evm Ampe_A76 arndale Auxtek-T003 Auxtek-T004 ba10_tv_box Bananapi Bananapi_M2_Ultra Bananapro chiliboard CHIP Chuwi_V7_CW0825 clearfog cl-som-am57x cm_fx6 Colombus colorfly_e708_q1 CSQ_CS908 Cubieboard Cubieboard2 Cubieboard4 Cubietruck Cubietruck_plus db-mv784mp-gp difrnce_dit4350 dserve_dsrv9703c evb-rk3229 fennec-rk3288 firefly-rk3288 highbank Hummingbird_A31 Hyundai_A7HD i12-tvbox icnova-a20-swac inet86dz iNet_86VS Itead_Ibox_A20 jesurun_q5 jetson-tk1 kc1 Lamobo_R1 Linksprite_pcDuino Linksprite_pcDuino3 Linksprite_pcDuino3_Nano liteboard marsboard Marsboard_A10 Mele_A1000 Mele_A1000G_quad Mele_I7 Mele_M3 Mele_M5 Mele_M9 Mini-X mk802 mk802_a10s mk802ii MK808C MSI_Primo73 MSI_Primo81 mx6cuboxi nanopi_m1 nanopi_m1_plus nanopi_neo novena odroid odroid-xu3 omap3_beagle omap3_pandora omap4_panda omap5_uevm Orangepi orangepi_2 orangepi_lite Orangepi_mini orangepi_one orangepi_pc orangepi_pc_plus orangepi_plus orangepi_plus2e orangepi_zero origen paz00 polaroid_mid2809pxe04 pov_protab2_ips9 q8_a13_tablet q8_a23_tablet_800x480 q8_a33_tablet_1024x600 q8_a33_tablet_800x480 qemu_arm r7-tv-dongle riotboard rock rock2 rpi_2 rpi_3_32b Sinlinx_SinA31s Sinovoip_BPI_M2 Sinovoip_BPI_M2_Plus Sinovoip_BPI_M3 smdkv310 stih410-b2260 sunxi_Gemei_G9 tbs_a711 tinker-rk3288 trimslice turris_omnia udoo udoo_neo usbarmory UTOO_P66 vexpress_ca15_tc2 vexpress_ca9x4 wandboard warp warp7 Wexler_TAB7200 Wits_Pro_A20_DKT Yones_Toptech_BS1078_V2 zynq_microzed zynq_zed zynq_zybo

Once the image is transferred, you can put the SD card in the dedicated slot for your arm device, and boot it up.

The default settings for the installed image are :

How to resize/expand the RootFS for the whole SD card

Depending on the SD card size you used, you probably want to expand the RootFS (/) to the maximum capacity of the underlying SD card. For your convenience, we've added the cloud-utils-growpart tool, packaged as rpm and also available through the Extras repository for armv7hl.

If you just want to use/expand the whole remaining capacity, just run (as root, or with sudo right) the following command :

/usr/bin/rootfs-expand

Interacting with the AltArch Arm32 group

Getting help

Contributing to the Arm32 group

FAQ

How can I update my kernel ?

Depending on which board image you're using, it can use the "generic" kernel or the raspberrypi variant. It's normally all configured automatically but even if you point to the correct repository, you'll have take care of the following (depending on the board variant):

raspberrypi 2 and 3

yum update will bring the updated kernel and nothing to be done, just reboot and you'll be using the new kernel

"generic" kernel

Before centos-userland-release-7-5.1804, in order to activate the new kernel and edit /boot/extlinux/extlinux.conf, you had to run /usr/bin/update-boot. This is no longer valid and it is done automatically by grubby.

How can I enable EPEL 7 on armhfp ?

The answer is easy in a sense that there is no official EPEL repository for armfhp. But because lot of users were asking for this, we decided to use the centos armhfp builders to (re)build Source packages from EPEL 7 (and try to track those automatically) when they're idle. Please note that it's just an automatic rebuild without any QA/test, and also resulting pkgs aren't signed either. To use that repository, proceed like this :

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

SpecialInterestGroup/AltArch/armhfp (last edited 2018-05-09 15:28:40 by FabianArrotin)