Make file in sdbuild failing

Hello,
I am trying to follow the readme in the sdbuild directory. I’ve followed the below steps, but when I run make I get an error.
Steps followed:

  • Ensure that sudo is configured for passwordless use and that proxy settings and other environment variables are forwarded correctly.
  • Run scripts/setup_host.sh
  • Install Petalinux (e.g. 2017.4)
  • Ensure that Petalinux is on the PATH
  • Run make BOARDDIR=<boards_directory> to recreate all board images
  • Wait for a couple of hours

Image attached showing console. My error message is below:

rob@rob-VirtualBox:~/PYNQ/sdbuild$ make
/opt/qemu/bin/qemu-aarch64-static -version | fgrep 2.8.0
qemu-aarch64 version 2.8.0
/opt/qemu/bin/qemu-arm-static -version | fgrep 2.8.0
qemu-arm version 2.8.0
which vivado | fgrep 2018.3
/opt/Xilinx/Vivado/2018.3/bin/vivado
which sdx | fgrep 2018.3
Makefile:309: recipe for target ‘checkenv’ failed
make: *** [checkenv] Error 1

I’ve looked in the make file and the check_Env.sh file and can’t figure out what this means.

Any ideas?

I pulled the master branch from the PYNQ repo, I’m using vivado 2018.3. The setup_host file ran fine.

Each of those which checks is testing to see if a particular tool is installed. In your first post the error is a missing SDx installation. This was required for earlier versions of the build flow but now we ship the precompiled objects as part of the repository. You can safely remove line 310 of the makefile to delete this check. We’ll update this is in the next version. Your second post is failing on vivado which means you haven’t sourced the settings.sh in that shell.

Peter

Thanks Peter! I’ll work on this route.

Quick questions - is the SDx a the SDK?

SDx - the way PYNQ allocates memory for the hardware is built on the SDx runtime. We now ship the precompiled library so it shouldn’t be necessary to install the tool.

Peter

Hi Peter, I receive a similar error when wanting attempting to rebuild Z1 image.
I run:
make BOARDS=Pynq-Z1
and get:

/opt/qemu/bin/qemu-arm-static -version | fgrep 4.0.0
qemu-arm version 4.0.0
vivado -version | fgrep 2019.1
Vivado v2019.1 (64-bit)
xsdk -version | fgrep 2019.1
****** SDK v2019.1 (64-bit)
which petalinux-config
/home/talon/Desktop/Petalinux/tools/common/petalinux/bin/petalinux-config
which arm-linux-gnueabihf-gcc
/opt/Xilinx/Vivado2019.1/SDK/2019.1/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-gcc
which microblaze-xilinx-elf-gcc
/opt/Xilinx/Vivado2019.1/SDK/2019.1/gnu/microblaze/lin/bin/microblaze-xilinx-elf-gcc
which ct-ng
/opt/crosstool-ng/bin/ct-ng
which python | fgrep /usr/bin/python
Makefile:342: recipe for target ‘checkenv’ failed
make: *** [checkenv] Error 1

I take it this means sourcing my python environment is failing? I use anaconda and have activated both a Python2 and Python3 environment and re-run the mentioned command, but it failed the same way both times. Any idea why?

Thank you.

I think yours is a little different though. Did you run setup_host.sh on a ubuntu 16 or 18? Check if your system has python:

which python

The check env is verifying that you have it installed at /usr/bin.

I’m using Ubuntu 18.04 and use Anaconda as my default Python.

When I run ‘which python’ I get the following:

Preformatted texthome/talon/anaconda3/bin/pythonPreformatted text

So I don’t have python installed at that directory and hence decided to comment out line 348:

Preformatted textwhich python | fgrep /usr/bin/pythonPreformatted text

of the makefile. Doing this, I managed to get it to run when executing the command “make BOARDS=Pynq-Z1” (I was testing to see if my setup was working).

It ran for a while but bombed-out after a few hours with the massive error (sorry in case I should have made a new thread for this - see attached image):

Any ideas about what to do now? I’m following this tutorial to try to get Pynq on my CoraZ7:

Sorry if this is badly worded.
Talon.

The error happens because you don’t have a valid license to build zcu104 designs. During our build, several bitstreams are built, including z1, z2, and zcu104 bitstreams if you have not done so. So for your case, please use

make PYNQ_SDIST=<sdist.tar.gz> BOARDS=Pynq-Z1

where sdist can be downloaded at https://github.com/Xilinx/PYNQ/releases/download/v2.5/pynq-2.5.tar.gz
(link is also valid on github release page https://github.com/Xilinx/PYNQ/releases).
This helps you skip the building of those bitstreams, therefore you don’t have to get the zcu104 license.

2 Likes

hello,
can you fixed this issue?

The Best solution is to use ZCU104 BSP from xilinx and put it into boards/zcu104 folder (See where .spec file is looking for zcu104.bsp)

in fact want to create PYNQ for ZCU111 a new image file .
another question , have you ever face with random mac address changing in PYNQ ?
i want to change this configuration or disable it . have you any idea about it?

Petalinux randomly generates mac by default.
If you want to have static mac:
This can be done in petalinux device-tree by adding meta-user folder etc… or modifying existing bsp.
You can set static mac via “petalinux-config” and ethernet options or modify ethernet device-tree node in system.dts

thanks

i have tried to modify system.dts but just see
aliases {
ethernet0=&gem3

and i found gem3 on zynqmp.dtsi
gem3: ethernet@ff0e0000 {
compatible = “cdns,zynqmp-gem”, “cdns,gem”;
status = “disabled”;
interrupt-parent = <&gic>;
interrupts = <0 63 4>, <0 63 4>;
reg = <0x0 0xff0e0000 0x0 0x1000>;
clock-names = “pclk”, “hclk”, “tx_clk”;
#address-cells = <1>;
#size-cells = <0>;
#stream-id-cells = <1>;
iommus = <&smmu 0x877>;
power-domains = <&pd_eth3>;
};

i dont know how can i change , and i tryed through petalinux-config -c kernel ,but i couldnt find ethernet option or configuration.

could you guide me thank you.

You will have to put some of our petalinux bsp patches into your bsp as well. For example: ZCU111-PYNQ/ZCU111/petalinux_bsp/meta-user/recipes-bsp/u-boot at master · Xilinx/ZCU111-PYNQ · GitHub