Error then building PYNQ for microzed board

Hi I am trying to build Pynq for microzed board, and in my case it is absolutely not standard build. I started with GitHub - FredKellerman/Microzed-PYNQ, but there is no prebuilt image and it was so outdated that I tried to build my own. I am on Ubuntu 2022.4, looks like not supported, and using Vivado 2024.1 tools(not supported as well). I did struggled for couple of days and was able to get thru most of compilation, to the point, then rootfs is created with qemu.sh and stuck this time.
it cannot get clone PYNQ-Metadata from internet. I checked that I can access github and repo but pip is not happy.
I added ping github.com to qemu.sh script and see that it can get to github, output of the error on screen below.
I would welcome any help.

1 Like

Ok I made progress by adding
git config --global http.sslVerify false
but still some security errors then it installs dependencies.
to qemu.sh

1 Like

What really helped is to add --trusted-host to pip install
$ pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org pip

taken from here automationcurrypuff.home.blog/2019/07/18/how-to-ignore-ssl-errors-for-pip-installations/

1 Like

It looks like I am almost there, having issue on packaging wic image now.
(cd /home/alexian79/projects/pynq/PYNQ/sdbuild/build/microzed-7020/petalinux_project && petalinux-package --wic --images-dir “/home/alexian79/projects/pynq/PYNQ/sdbuild/build/jammy.microzed-7020” --bootfiles “image.ub BOOT.BIN boot.scr” -c /home/alexian79/projects/pynq/PYNQ/sdbuild/build/microzed-7020.tar.gz --outdir /home/alexian79/projects/pynq/PYNQ/sdbuild/output --wks /home/alexian79/projects/pynq/PYNQ/sdbuild/boot/image.wks --extra-bootfiles "/home/alexian79/projects/pynq/PYNQ/sdbuild/build/microzed-7020.extra_boot/:.") && mv /home/alexian79/projects/pynq/PYNQ/sdbuild/output/petalinux-sdimage.wic /home/alexian79/projects/pynq/PYNQ/sdbuild/output/microzed-7020-3.0.1.img
[NOTE] Argument: “–wic” has been deprecated. It is recommended to start using new python command line Argument.
[NOTE] Use: petalinux-package wic [OPTIONS]
{0:s} {0:s}/build
Namespace(force=False, debug=False, command=‘wic’, project=None, wks=‘/home/alexian79/projects/pynq/PYNQ/sdbuild/boot/image.wks’, outdir=‘/home/alexian79/projects/pynq/PYNQ/sdbuild/output’, images_dir=‘/home/alexian79/projects/pynq/PYNQ/sdbuild/build/jammy.microzed-7020’, rootfs_file=‘/home/alexian79/projects/pynq/PYNQ/sdbuild/build/microzed-7020.tar.gz’, bootfiles=‘image.ub BOOT.BIN boot.scr’, extra_bootfiles='/home/alexian79/projects/pynq/PYNQ/sdbuild/build/microzed-7020.extra_boot/
;.‘, size=None, wic_extra_args=’', func=<function PackageWic at 0x712b65d01870>)
[INFO] Sourcing build environment
[INFO] Extracting rootfs, This may take time!
[INFO] Creating wic image
[INFO] wic create /home/alexian79/projects/pynq/PYNQ/sdbuild/boot/image.wks --rootfs-dir /home/alexian79/projects/pynq/PYNQ/sdbuild/build/microzed-7020/petalinux_project/build/wic/rootfs --bootimg-dir /home/alexian79/projects/pynq/PYNQ/sdbuild/build/jammy.microzed-7020 --kernel-dir /home/alexian79/projects/pynq/PYNQ/sdbuild/build/jammy.microzed-7020 --outdir /home/alexian79/projects/pynq/PYNQ/sdbuild/build/microzed-7020/petalinux_project/build/wic/wic-tmp -n /home/alexian79/projects/pynq/PYNQ/sdbuild/build/microzed-7020/petalinux_project/build/tmp/work/cortexa9t2hf-neon-xilinx-linux-gnueabi/wic-tools/1.0-r0/recipe-sysroot-native
INFO: Creating image(s)…

WARNING: bootloader config not specified, using defaults

INFO: The new image(s) can be found here:
/home/alexian79/projects/pynq/PYNQ/sdbuild/build/microzed-7020/petalinux_project/build/wic/wic-tmp/image-202407072151-mmcblk0.direct

The following build artifacts were used to create the image(s):
ROOTFS_DIR: /home/alexian79/projects/pynq/PYNQ/sdbuild/build/microzed-7020/petalinux_project/build/wic/rootfs
BOOTIMG_DIR: /home/alexian79/projects/pynq/PYNQ/sdbuild/build/jammy.microzed-7020
KERNEL_DIR: /home/alexian79/projects/pynq/PYNQ/sdbuild/build/jammy.microzed-7020
NATIVE_SYSROOT: /home/alexian79/projects/pynq/PYNQ/sdbuild/build/microzed-7020/petalinux_project/build/tmp/work/cortexa9t2hf-neon-xilinx-linux-gnueabi/wic-tools/1.0-r0/recipe-sysroot-native

INFO: The image(s) were created using OE kickstart file:
/home/alexian79/projects/pynq/PYNQ/sdbuild/boot/image.wks
[ERROR] list index out of range
alexian79@petalinux:~/projects/pynq/PYNQ/sdbuild$

1 Like

Ok, it looks like an issue inside petalinux-package wic, for some reason they expect that temp wic partitions/images are named starting with “rootfs-” prefix, but it is not the case now, they start with “image-”. after that fix I was able to boot my image on mz7020, hope overlay loading will work!

2 Likes

@alexian79 - I’m curious how you root caused this bug … I’m looking at 2024.1 PYNQ right now and seeing the same issue… and what exactly did you fix to get wic to complete?

1 Like

Hi, a bit hard to remember exactly. It was crashing on file rename, image generation is actually finished and rename operation is failed. You can do it manually.
you can see on screenshot commented couple lines for debugger breakpoint. you can insert that and see what file it was looking for, I remember that prefix for the file have changed. I dont remember if this local on screenshot is fixed or not :(. Please try this and let me know. If you will stuck let me know and I will spend more time on remembering.

1 Like

Brilliant! Thank you for that pointer … I do see the file and bug in PLNX_20241_INSTALL/scripts/libs/package_wic.py

PYNQ Makefile will handle this correctly in future release by simply grabbing the image file directly

1 Like