1. Install Centos-7 into the Pine64, Rock64 and Rock64Pro

The Pine64 board should be able to run Aarch64/ARM64 images. The official Centos-7 supports these images at http://mirror.centos.org/altarch/7/isos/aarch64/. Unfortunately these release don’t run on my Pine64 just yet. However, the Armbian guys have been doing great work and we started a project (loosely based on work done by Uli Middelberg [UMidd]) that takes the Armbian UBoot and Kernel and inserts it into a Centos 7.4 distribution. We have ready to go images for you to download

Releases for Board Direct Download Link Download Size min. microSD
Pine64 Centos-7.4.1708 with kernel from Armbian-5.44.img.xz 496 MB 8GB
Pine64 Centos-7.4.1708 with kernel from Armbian-5.44 and Gnome Desktop.img.xz 1.64 GB 8GB
Pine64 Centos-7.5.1804 with kernel from Armbian-5.44 and Docker v1.13 and OpenShift v3.7.1.img.xz 803 MB 16GB
Rock64 Centos-7.4.1708 with kernel from Armbian-5.69.img.xz 570 MB 8GB
Rock64Pro Centos-7.4.1708 with kernel from Armbian-5.67.img.xz 577 MB 8GB

All Centos 7 have centos as the root pw, please change after installation!

Pine64

2. Flash the image

You will need a 8 GB microSD card or bigger. On OSX stick the microSD card into an adapter and into your macbook. It will automount. Open the Disk Utility and check the Device setting, which should be of form disk<n>s1, so something like ‘disk2s1’ for n=2. Now unmount the disk and run something like

sudo dd bs=1m if=centos74-armbian544-pine64.img of=/dev/rdisk2

Warning: in ‘rdisk2’ the ‘r’ means raw disk and writes orders of magnitude faster on OSX and 2 is the value found above for n. You can use control-t to monitor the progress.

3. Boot up your Pine64

Stick your microSD card in the board power it up. If you don’t have an HDMI monitor you can use the following command to see which new SSH server came online:

nmap -sV -p 22 -open 192.168.1.0/24

Make sure to adjust the network setting you are expecting on your network. This command will give you a list of IP address that run SSH servers and you should be able to find IP address for your Pine64 board. Now you can ssh in using ssh root@<ipaddress> and use the default password of ‘centos’. Don’t forget to run the /root/finish-centos-install.sh script which among other things will prompt you to change the root password.

The initial size of the microSD card is 8 GB. To use the full size of your microSD card [StackX] you need to use

sudo fdisk /dev/mmcblk0   (use option `-c=dos` if start sector is out of range)

and type ‘p’ to obtain the list of partitions.

/dev/mmcblk0p1 2048 15138815 7497728 83 Linux

To enlarge the partition first delete it using ‘d’ and then ‘1’. Then ’n’ for createing a new partition and ‘p’ for ‘primary’. Enter ‘2048’ from the start of the second partition above and accept the default for the end, and type ‘w’ to save the partition settings. Now reboot and finally

resize2fs /dev/mmcblk0p1

and once done reboot again. Now

df -h .

should reflect the full capacity of the card. Finally you should run

yum update

to bring Centos-7 distro fully up to date.

4. Optional configuration tips

4.1 NTP

For most application it is crucial the time of your machine is set correctly so it makes sense to run the ntp service so you no longer have to worry about that.

yum -y install ntp
systemctl enable ntpd
systemctl start ntpd

4.2 Switch out NetworkManager for the good old network service

If you’re going to use your Pine64 as a server platform then it makes sense to swap out the (too) dynamic NetworkManager for the good old network service. You’re going to have to be a bit careful if you don’t have a monitor hooked up like me that you don’t loose the network while doing this.

Bring up the network service

echo "NETWORKING=yes" > /etc/sysconfig/network

Edit the /etc/sysconfig/network-scripts/ifcfg-eth0 file and set NM_CONTROLLED=no

NAME=eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
NM_CONTROLLED=no

NetworkManager runs with a dhcp-help which you need to shutdown before you can startup the network service

killall -9 nm-dhcp-helper
systemctl enable network
systemctl start network
system disable NetworkManager
system stop NetworkManager

4.3 ifconfig

yum -y install net-tools

4.4 NFS

If you want to mount an external NFS share you need to run autofs

yum -y install autofs nfs-utils
systemctl enable autofs
systemctl start autofs

before you can reference your share in your auto.myshare file, for example

sdb2         -rw,soft,intr,rsize=8192,wsize=8192   192.168.1.11:/mnt/sdb2

referenced in the /etc/auto.master file as

/export /etc/auto.myshare

will mount as /export/mnt/sdb2. Make sure the /export directory mountpoint exists.

4.5 Docker and Kubernetes

Look for the distros on the release page that have Docker and OpenShift. In those distros we added the experimental iPaaS repo, that contains RPMs for Ansible, Docker and OpenShift. In those distros we add a /etc/yum.repos.d/Centos-Origin.repo file with the iPaaS Aarch64 repo.

[openshift]
name=CentOS-$releasever - OpenShift Origin
baseurl=https://cbs.centos.org/repos/paas$releasever-openshift-multiarch-candidate/$basearch/os/
enabled=1
gpgcheck=0

and enabled it using

yum-config-manager --enable Centos-Origin

so that now the openshift/7/aarch64 repo should be listed:

yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id                                                 repo name                                                        status
base/7/aarch64                                          CentOS-7 - Base                                                  7,571
extras/7/aarch64                                        CentOS-7 - Extras                                                  324
openshift/7/aarch64                                     CentOS-7 - OpenShift Origin                                         74
updates/7/aarch64                                       CentOS-7 - Updates                                                 520
repolist: 8,489

5. References

  1. [UMidd] Install CentOS 7 on your favourite ARMv8 ARM64 AArch64 board, Uli Middelberg, https://github.com/umiddelb/aarch64/wiki/Install-CentOS-7-on-your-favourite-ARMv8-ARM64-AArch64-board
  2. [StackX] Resize the root partition: http://raspberrypi.stackexchange.com/questions/499/how-can-i-resize-my-root-partition