Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Note

Installing a CentOS or Fedora system for Zynq UltraScale+ is currently a proof-of-concept (POC). You should not assume this builds a Xilinx supported, production-ready system. Please do your due diligence before deploying CentOS or Fedora and regression test against your system requirements.

While this flow targets CentOS and Fedora because they are close relatives, this flow can be extended to support Ubuntu, Debian and openSUSE.

Requirements

  • Linux VM or bare-metal machine

    • Sudo privileges

    • Terminal emulator

    • Internet access

  • ZCU102 evaluation board

    • 8 GB (minimum)/16 GB (recommended) SD card

...

Code Block
$ git clone https://git.qemu.org/git/qemu.git
$ cd qemu
$ git checkout -b v4.1.1.xlnx v4.1.1 # or later stable tag
$ git submodule update --init --recursive
$ ./configure --target-list=aarch64-softmmu,microblazeel-softmmu --disable-kvm --disable-xen
$ make

Add Recommend adding the path for the newly built aarch64 Qemu to you your PATH variable in “.bashrc”, which should be $HOME/qemu/aarch64-softmmu. Otherwise you will need to

Prepare Workspace

Create a directory structure for your workspace.

...

Code Block
languagebash
$ cd $IMG_ROOT
$ wget http://mirrors.usc.edu/pub/linux/distributions/centos/8.0.1905/isos/aarch64/CentOS-8-aarch64-1905-dvd1.iso
$ wget http://mirrors.usc.edu/pub/linux/distributions/centos/8.0.1905/isos/aarch64/CHECKSUM
$ sha256sum -c CHECKSUM
CentOS-8-aarch64-1905-boot.iso: OK

Depending on the number of ISOs included in the CHECKSUM file, you may get failures for files you have not downloaded. This is OK.

Code Block
languagebash
$ . runqemu-iso CentOS-8-aarch64-1905-dvd1.iso

...

Code Block
# systemctl poweroff

First you will need to convert Convert the QCOW2 image to a raw disk image.

...

Code Block
languagebash
$ sudo cp ../rpmbuild/kernel/RPMS/aarch64/kernel-4.18.0-80.el8.xlnx.aarch64.rpm \
../rpmbuild/kernel/RPMS/aarch64/kernel-core-4.18.0-80.el8.xlnx.aarch64.rpm \
../rpmbuild/kernel/RPMS/aarch64/kernel-modules-4.18.0-80.el8.xlnx.aarch64.rpm \
../rpmbuild/kernel/RPMS/aarch64/kernel-headers-4.18.0-80.el8.xlnx.aarch64.rpm \
boot/

Unmount the boot directory and cleanup the mappings.

...

Code Block
$ sgdisk -m 1:2:3 CentOS-8-aarch64-1905-dvd1.raw
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot or after you
run partprobe(8) or kpartx(8)
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.

Also, mark Mark the 1st partition with the boot flag.

Code Block
languagebash
$ sfdisk -A CentOS-8-aarch64-1905-dvd1.raw 1
The bootable flag on partition 1 is enabled now.

The partition table has been altered.
Syncing disks.

Now lets Lets check to make sure the partition scheme converted correctly. You should see “Disklabel type: dos” and the Boot flag marked.

...