PYNQ: PYTHON PRODUCTIVITY

Pynq 2.6 build for zcu102 return errors

Hello

Iam using bionic Virtual machhine ubuntu 18.04.6 , vivado , vitis , petalinux 2020.1
cloning pynq , and using default master commit (1a7da28e (“Fix broken links for PYNQ-Z2 (#1218)”, 2021-07-19))

I get some error when running make BOARDS=ZCU102


mkdir -p /workspace/Proj/Pynq/sdbuild/build/gcc-mb
cp -r /workspace/Proj/Pynq/sdbuild/packages/gcc-mb//samples /workspace/Proj/Pynq/sdbuild/build/gcc-mb/samples
cp -r /workspace/Proj/Pynq/sdbuild/packages/gcc-mb//patches /workspace/Proj/Pynq/sdbuild/build/gcc-mb/patches
****cd /workspace/Proj/Pynq/sdbuild/build/gcc-mb && /workspace/Proj/Pynq/sdbuild/packages/gcc-mb//build.sh aarch64 ****
+ ARCH=aarch64
+ ROOT_IMAGE=
+++ dirname /workspace/Proj/Pynq/sdbuild/packages/gcc-mb//build.sh
++ cd /workspace/Proj/Pynq/sdbuild/packages/gcc-mb
++ pwd
+ SCRIPT_DIR=/workspace/Proj/Pynq/sdbuild/packages/gcc-mb
+ case ${ARCH} in
+ sample=aarch64-linux-gnu,microblazeel-xilinx-elf
++ find /workspace/Proj/Pynq/sdbuild/build/gcc-mb/native -name bin -maxdepth 2
find: warning: you have specified the -maxdepth option after a non-option argument -name, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.

find: ‘/workspace/Proj/Pynq/sdbuild/build/gcc-mb/native’: No such file or directory
+ for f in find $CT_COMPILE_ROOT/native -name bin -maxdepth 2:
+ export PATH=::/workspace/petalinux/2020.1/tools/xsct/petalinux/bin:/workspace/petalinux/2020.1/tools/common/petalinux/bin:/workspace/petalinux/2020.1/tools/xsct/gnu/microblaze/lin/bin:/workspace/petalinux/2020.1/tools/xsct/gnu/armr5/lin/gcc-arm-none-eabi/bin:/workspace/petalinux/2020.1/tools/xsct/gnu/aarch64/lin/aarch64-none/bin:/workspace/petalinux/2020.1/tools/xsct/gnu/aarch32/lin/gcc-arm-none-eabi/bin:/workspace/Xilinx/Vitis/2020.1/bin:/workspace/Xilinx/Vitis/2020.1/gnu/microblaze/lin/bin:/workspace/Xilinx/Vitis/2020.1/gnu/arm/lin/bin:/workspace/Xilinx/Vitis/2020.1/gnu/microblaze/linux_toolchain/lin64_le/bin:/workspace/Xilinx/Vitis/2020.1/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin:/workspace/Xilinx/Vitis/2020.1/gnu/aarch32/lin/gcc-arm-none-eabi/bin:/workspace/Xilinx/Vitis/2020.1/gnu/aarch64/lin/aarch64-linux/bin:/workspace/Xilinx/Vitis/2020.1/gnu/aarch64/lin/aarch64-none/bin:/workspace/Xilinx/Vitis/2020.1/gnu/armr5/lin/gcc-arm-none-eabi/bin:/workspace/Xilinx/Vitis/2020.1/tps/lnx64/cmake-3.3.2/bin:/workspace/Xilinx/Vitis/2020.1/cardano/bin:/workspace/Xilinx/Vivado/2020.1/bin:/workspace/Xilinx/DocNav:/opt/qemu/bin:/opt/crosstool-ng/bin:/opt/qemu/bin:/opt/crosstool-ng/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+ PATH=::/workspace/petalinux/2020.1/tools/xsct/petalinux/bin:/workspace/petalinux/2020.1/tools/common/petalinux/bin:/workspace/petalinux/2020.1/tools/xsct/gnu/microblaze/lin/bin:/workspace/petalinux/2020.1/tools/xsct/gnu/armr5/lin/gcc-arm-none-eabi/bin:/workspace/petalinux/2020.1/tools/xsct/gnu/aarch64/lin/aarch64-none/bin:/workspace/petalinux/2020.1/tools/xsct/gnu/aarch32/lin/gcc-arm-none-eabi/bin:/workspace/Xilinx/Vitis/2020.1/bin:/workspace/Xilinx/Vitis/2020.1/gnu/microblaze/lin/bin:/workspace/Xilinx/Vitis/2020.1/gnu/arm/lin/bin:/workspace/Xilinx/Vitis/2020.1/gnu/microblaze/linux_toolchain/lin64_le/bin:/workspace/Xilinx/Vitis/2020.1/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin:/workspace/Xilinx/Vitis/2020.1/gnu/aarch32/lin/gcc-arm-none-eabi/bin:/workspace/Xilinx/Vitis/2020.1/gnu/aarch64/lin/aarch64-linux/bin:/workspace/Xilinx/Vitis/2020.1/gnu/aarch64/lin/aarch64-none/bin:/workspace/Xilinx/Vitis/2020.1/gnu/armr5/lin/gcc-arm-none-eabi/bin:/workspace/Xilinx/Vitis/2020.1/tps/lnx64/cmake-3.3.2/bin:/workspace/Xilinx/Vitis/2020.1/cardano/bin:/workspace/Xilinx/Vivado/2020.1/bin:/workspace/Xilinx/DocNav:/opt/qemu/bin:/opt/crosstool-ng/bin:/opt/qemu/bin:/opt/crosstool-ng/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+ export -n LD_LIBRARY_PATH
+ ct-ng aarch64-linux-gnu,microblazeel-xilinx-elf
gmake[1]: Entering directory '/workspace/Proj/Pynq/sdbuild/build/gcc-mb’
**** CONF aarch64-linux-gnu,microblazeel-xilinx-elf****
#
# configuration written to .config
#


Initially reported by: Peter Ogden
****URL: ****


WARNING! This sample may enable experimental features.
**** Please be sure to review the configuration prior****
**** to building and using your toolchain!****
Now, you have been warned!


Now configured for "aarch64-linux-gnu,microblazeel-xilinx-elf"
gmake[1]: Leaving directory '/workspace/Proj/Pynq/sdbuild/build/gcc-mb’
+ ct-ng build
gmake[1]: Entering directory '/workspace/Proj/Pynq/sdbuild/build/gcc-mb’
[INFO ] Performing some trivial sanity checks
[WARN ] Number of open files 1024 may not be sufficient to build the toolchain; increasing to 2048
[INFO ] Build started 20211019.213013
[INFO ] Building environment variables
[INFO ] =================================================================
[INFO ] Retrieving needed toolchain components’ tarballs
[ERROR] isl: download failed
****[ERROR] ****
[ERROR] >>
[ERROR] >> Build failed in step ‘Retrieving needed toolchain components’ tarballs’
[ERROR] >> called in step '(top-level)'
[ERROR] >>
[ERROR] >> Error happened in: CT_Abort[scripts/functions@487]
[ERROR] >> called from: CT_DoFetch[scripts/functions@2103]
[ERROR] >> called from: CT_PackageRun[scripts/functions@2063]
[ERROR] >> called from: CT_Fetch[scripts/functions@2174]
[ERROR] >> called from: do_isl_get[scripts/build/companion_libs/121-isl.sh@16]
[ERROR] >> called from: do_companion_libs_get[scripts/build/companion_libs.sh@15]
[ERROR] >> called from: main[scripts/crosstool-NG.sh@648]
[ERROR] >>
[ERROR] >> For more info on this error, look at the file: 'build.log’
[ERROR] >> There is a list of known issues, some with workarounds, in:
[ERROR] >> Known issues
[ERROR] >>
[ERROR] >> NOTE: Your configuration includes features marked EXPERIMENTAL.
[ERROR] >> Before submitting a bug report, try to reproduce it without enabling
[ERROR] >> any experimental features. Otherwise, you’ll need to debug it
[ERROR] >> and present an explanation why it is a bug in crosstool-NG - or
[ERROR] >> preferably, a fix.
[ERROR] >>
[ERROR] >> NOTE: You configuration uses non-default patch sets. Please
[ERROR] >> select ‘bundled’ as the set of patches applied and attempt
[ERROR] >> to reproduce this issue. Issues reported with other patch
[ERROR] >> set selections (none, local, bundled+local) are going to be
[ERROR] >> closed without explanation.
[ERROR] >>
[ERROR] >> If you feel this is a bug in crosstool-NG, report it at:
[ERROR] >> Issues · crosstool-ng/crosstool-ng · GitHub
[ERROR] >>
[ERROR] >> Make sure your report includes all the information pertinent to this issue.
[ERROR] >> Read the bug reporting guidelines here:
[ERROR] >> http://crosstool-ng.github.io/support/
****[ERROR] ****
[ERROR] (elapsed: 4:48.64)
[04:49] / /opt/crosstool-ng/bin/ct-ng:261: recipe for target ‘build’ failed
gmake[1]: *** [build] Error 1
gmake[1]: Leaving directory '/workspace/Proj/Pynq/sdbuild/build/gcc-mb’
/workspace/Proj/Pynq/sdbuild/packages/gcc-mb/Makefile:17: recipe for target ‘/workspace/Proj/Pynq/sdbuild/build/gcc-mb/aarch64/microblazeel-xilinx-elf/bin/mb-gcc’ failed
make: *** [/workspace/Proj/Pynq/sdbuild/build/gcc-mb/aarch64/microblazeel-xilinx-elf/bin/mb-gcc] Error 2

Any idea ?

Thank you very much
Shal

1 Like

Any idea will be welcome … I didnt find how to resolve that yet …

Thanks
Shal

We are recommending to always build against the prebuilt root filesystem which already has gcc-mb built among other things. Between releases, we definitely see a few 3rd party package URLs change (in gcc-mb, its the isl package).

That rootfs can be downloaded at pynq.io/boards.

make PREBUILT=/path/to/aarch64_rootfs \
 BOARDDIR=/path/to/customboard_parent_folder 

Hello

seems the issues is the same even after building prebuilt root file system

I have noticed a NOTE on the returned log :

[ERROR] >> NOTE: Your configuration includes features marked EXPERIMENTAL.
[ERROR] >> Before submitting a bug report, try to reproduce it without enabling
[ERROR] >> any experimental features. Otherwise, you’ll need to debug it
[ERROR] >> and present an explanation why it is a bug in crosstool-NG - or
[ERROR] >> preferably, a fix.

seems that the EXPERIMENTAL flag is activated . where can we change it ?

Or maybe any other idea ?

Thank you

Can you send a link to the ZCU102 repository or .spec file you are building against?

the ZCU102 file is called on my side : ZCU102.spec

On the file I have the following:
ARCH_ZCU102 := aarch64
BSP_ZCU102 := xilinx-zcu102-v2020.1-final.bsp
STAGE4_PACKAGES_ZCU102 := pynq ethernet

I was able to build a ZCU102.img using the make PREBUILT=... BOARDDIR=... call I suggested and Makefile did not attempt to rebuild gcc-mb …

Please share more details of how you are building the image if the problem persists … a GitHub with steps is useful so we can better understand the calls being made.

Hello

Yes of course : here are my steps :

  1. I a created an ubuntu 18.04.06 VMs on windows 10 machine
  2. installed vivado 2020.1, vitis 2020.1 , petalinux 2020.1
  3. run the following

vagrant@ubuntu-bionic:~$ source /workspace/Xilinx/Vitis/2020.1/settings64.sh
vagrant@ubuntu-bionic:~$ source /workspace/petalinux/2020.1/settings.sh
PetaLinux environment set to '/workspace/petalinux/2020.1’
WARNING: This is not a supported OS
INFO: Checking free disk space
INFO: Checking installed tools
INFO: Checking installed development libraries
INFO: Checking network and other services
WARNING: No tftp server found - please refer to “UG1144 2020.1 PetaLinux Tools Documentation Reference Guide” for its impact and solution
vagrant@ubuntu-bionic:~$ petalinux-util --webtalk off
INFO: Turn off webtalk feature!

  1. git clone GitHub - Xilinx/PYNQ: Python Productivity for ZYNQ
  2. run the setup_host.sh that is on sdbuild/scripts directory

it created a tools directory under the sdbuild directory with the following files

vagrant@ubuntu-bionic:/workspace/Proj/Pynq/sdbuild/tools$ ls -al
total 75924
drwxrwxr-x 4 vagrant vagrant 112 Oct 28 09:04 .
drwxrwxr-x 8 vagrant vagrant 141 Oct 28 09:04 …
drwxrwxr-x 14 vagrant vagrant 4096 Oct 28 09:04 crosstool-ng-1.24.0
-rw-rw-r-- 1 vagrant vagrant 2058069 Apr 13 2019 crosstool-ng-1.24.0.tar.bz2
drwxr-xr-x 49 vagrant vagrant 8192 Oct 28 09:07 qemu-4.0.0
-rw-rw-r-- 1 vagrant vagrant 75668251 Apr 23 2019 qemu-4.0.0.tar.bz2

  1. then running the following:

make clean
make PREBUILT=/workspace/Downloads BOARDDIR=/workspace/Proj/Pynq/boards/ZCU102
make BOARDS=ZCU102

7 . after i think 30 min a get the error as on the log that I copied before
NB: I checked that I can create a zcu102 image from petalinux

Thanks

Thank you for sending details -One thing I noticed, PREBUILT should point to a .img file … something like:

PREBUILT=/path/to/bionic.aarch64.2.6.0_2020_10_19.img

Did you point to an image file?

Hello schelleg

Yes I point to the .img file

make PREBUILT=/workspace/Downloads/bionic.aarch64.2.6.0_2020_10_19.img BOARDDIR=/workspace/Proj/Pynq/boards/ZCU102

then I run

make BOARDS=ZCU102

Iam confused what can be the issue …

Maybe because Iam using ubuntu 18.04.06 and petalinux 2020.1 officially from the user guide it support until 18.04.04 ?

You shouldn’t have to run make twice … that first call completes silently because it cannot find a .spec file … i.e. it is looking for /workspace/Proj/Pynq/boards/ZCU102/*/*.spec

Could you try moving the ZCU102 folder out of the Pynq boards folder and placing it in /workspace/boards … then run:

make PREBUILT=/workspace/Downloads/bionic.aarch64.2.6.0_2020_10_19.img BOARDDIR=/workspace/boards

Hello @schelleg

First of all , you are the best :slight_smile:
Second it successfully create the image on the output directory the following image file ZCU102-2.6.0.img . I write it on sd card and plugged it on my zcu102 and seems that the pynq is up . I can open an explorer and run python the defaults scripts

But … :thinking: there is one point at the end of the log run after the creation of the image :

Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): Partition number (1,2, default 2):
Partition 2 has been deleted.
Command (m for help): Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): Partition number (2-4, default 2): First sector (206848-14680063, default 206848): Last sector, +sectors or +size{K,M,G,T,P} (206848-14680063, default 14680063):
Created a new partition 2 of type ‘Linux’ and of size 6.5 GiB.
Partition #2 contains a ext4 signature.
Command (m for help):
Disk /workspace/Proj/Pynq/sdbuild/output/ZCU102-2.6.0.img: 7 GiB, 7516192768 bytes, 14680064 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xe515f036
Device Boot Start End Sectors Size Id Type
/workspace/Proj/Pynq/sdbuild/output/ZCU102-2.6.0.img1 * 2048 206847 204800 100M c W95 FAT32 (LBA)
/workspace/Proj/Pynq/sdbuild/output/ZCU102-2.6.0.img2 206848 13854839 13647992 6.5G 83 Linux
Command (m for help): The partition table has been altered.
Syncing disks.
+ total_size=6927420
+ truncate -s 6927420K /workspace/Proj/Pynq/sdbuild/output/ZCU102-2.6.0.img
mkdir -p /workspace/Proj/Pynq/sdbuild/output/dist
mkdir -p /workspace/Proj/Pynq/sdbuild/output/dist/aarch64
cp -rf /workspace/Proj/Pynq/sdbuild/build/PYNQ/dist/.tar.gz /workspace/Proj/Pynq/sdbuild/output/dist/aarch64
cp: cannot stat '/workspace/Proj/Pynq/sdbuild/build/PYNQ/dist/.tar.gz’: No such file or directory

Makefile:339: recipe for target ‘/workspace/Proj/Pynq/sdbuild/output/dist/aarch64’ failed
make: *** [/workspace/Proj/Pynq/sdbuild/output/dist/aarch64] Error 1

is it a critical error to continue ?

that error can be ignored (and should be fixed on our end) … the pynq Python package isn’t getting (re)built so that final copy fails. This is done after the images are created…

OK thank you very much