PYNQ image for different board

I am using the ZYNQ7000 custom board. I want to make my board pynq compatible. Please give me any easy guidance.

[Moving to Support]
Did you try follow the docs here?:


yes I followed this docs. Each time I am getting some error in make commands.
make command build images for all boards
So i did only for PynqZ1
I am using 2019.1 version and my host pc is ubuntu

In that docs, they said put the hdf file into the hardware project folder. In pynq repository they had the tcl file.
what changes I have to do to change it to my board in the PYNQ Z1 repo.
Thanks in advance

The easiest way to get PYNQ to a new board is to create a Petalinux BSP for the board then following the steps in this forum thread.

There is other documentation on creating the BSP but main flow is

  • Create a vivado project with the PS7 set up as required by the board
  • Export the HDF file from Vivado
  • Create a new Petalinux project with petalinux-create -t project --template zynq --name <<BOARD>>
  • Configure Petalinux to use the HDF file with petalinux-config --get-hw-description <<HDF>>
  • Package the BSP with petalinux-package --bsp

With the HDF and the board-agnostic image linked in the above forum post you can create a PYNQ image without needing to recreate the entire image-build flow


Now configured for “arm-linux-gnueabihf,microblazeel-xilinx-elf”
make[1]: Leaving directory ‘/home/mass/Music/Pynq/sdbuild/build/gcc-mb’

  • ct-ng build
    make[1]: Entering directory ‘/home/mass/Music/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 20200407.204611
    [INFO ] Building environment variables
    [ERROR] Missing: ‘arm-linux-gnueabihf-gcc’ or ‘arm-linux-gnueabihf-gcc’ or ‘gcc’ : either needed!
    [ERROR] >>
    [ERROR] >> Build failed in step ‘(top-level)’
    [ERROR] >>
    [ERROR] >> Error happened in: CT_Abort[scripts/functions@487]
    [ERROR] >> called from: main[scripts/]
    [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] >>
    [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] >>
    [ERROR] >>
    [ERROR] >> Make sure your report includes all the information pertinent to this issue.
    [ERROR] >> Read the bug reporting guidelines here:
    [ERROR] >>
    [ERROR] (elapsed: 0:02.43)
    [00:04] / /opt/crosstool-ng/bin/ct-ng:261: recipe for target ‘build’ failed
    make[1]: *** [build] Error 1
    make[1]: Leaving directory ‘/home/mass/Music/Pynq/sdbuild/build/gcc-mb’
  • unmount_delete
  • /home/mass/Music/Pynq/sdbuild/scripts/ /home/mass/Music/Pynq/sdbuild/build/gcc-mb/sysroot.arm /home/mass/Music/Pynq/sdbuild/build/gcc-mb/sysroot.arm.img
  • set -e
  • target=/home/mass/Music/Pynq/sdbuild/build/gcc-mb/sysroot.arm
  • image_file=/home/mass/Music/Pynq/sdbuild/build/gcc-mb/sysroot.arm.img
  • sudo umount /home/mass/Music/Pynq/sdbuild/build/gcc-mb/sysroot.arm/boot
  • sudo umount /home/mass/Music/Pynq/sdbuild/build/gcc-mb/sysroot.arm
  • sleep 5
  • sudo kpartx -d /home/mass/Music/Pynq/sdbuild/build/gcc-mb/sysroot.arm.img
    loop deleted : /dev/loop16
  • rm /home/mass/Music/Pynq/sdbuild/build/gcc-mb/sysroot.arm.img
    /home/mass/Music/Pynq/sdbuild/packages/gcc-mb/Makefile:17: recipe for target ‘/home/mass/Music/Pynq/sdbuild/build/gcc-mb/arm/microblazeel-xilinx-elf/bin/mb-gcc’ failed
    make: *** [/home/mass/Music/Pynq/sdbuild/build/gcc-mb/arm/microblazeel-xilinx-elf/bin/mb-gcc] Error 2
    I got this error
    how to solve this one

Thank you. I followed you steps

I created the image from precompiled image as you said. Now I am creating the image for ethernet comparability. I gave the make BOARDS=PYNQZ1 PREBUILD=bionic.arm.2.5.img nocheck_images.
NOW I got the above error gcc-mb failed

Looks like there was an error in my other post - try using PREBUILT= rather than PREBUILD= in the make commands


I completed the image creation for my board successfully. I directly connect my board to pc through ethernet. I can see the pynq folder is shared to my computer via ethernet. All Ethernet connection working properly. But I cannot access it through my browser. i gave and pynq:9090 both are failed.

pynq folder is just a symlink pointing to an internal location on the board - it is not a shared folder with your PC.

If you connect your board directly to PC, you need to configure your PC to have the same network ID as your board. Check