Package not found when making image

Hello,
I’m running PYNQ v2.7 on Ubuntu 20.04
I follow the tutorial on hackster

But I occurred an error “Package not found” when I trying to make the image for my board, Eclypse-Z7.
I follow the tips on screen, re-run setup.sh many time, however this error can’t be solved.
I have no idea how to solve it. I’m been stock in the step for several weeks.

The error:

(base) cys@cys-GL552VW:~$ source /home/cys/petalinux/settings.sh
PetaLinux environment set to ‘/home/cys/petalinux’
WARNING: This is not a supported OS
INFO: Checking free disk space
INFO: Checking installed tools
^[[AINFO: Checking installed development libraries
INFO: Checking network and other services
(base) cys@cys-GL552VW:~$ source /tools/Xilinx/Vivado/2021.2/settings64.sh
(base) cys@cys-GL552VW:~$ source /tools/Xilinx/Vivado/2021.2/settings64.sh
(base) cys@cys-GL552VW:~$ cd PYNQ/sdbuild
(base) cys@cys-GL552VW:~/PYNQ/sdbuild$
(base) cys@cys-GL552VW:~/PYNQ/sdbuild$ make BOARDS=Eclypse-Z7
vivado -version | fgrep 2021.2
Vivado v2021.2 (64-bit)
vitis -version | fgrep 2021.2
****** Vitis v2021.2 (64-bit)
which petalinux-config
/home/cys/petalinux/tools/common/petalinux/bin/petalinux-config
which arm-linux-gnueabihf-gcc
/tools/Xilinx/Vitis/2021.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-gcc
which microblaze-xilinx-elf-gcc
/tools/Xilinx/Vitis/2021.2/gnu/microblaze/lin/bin/microblaze-xilinx-elf-gcc
bash /home/cys/PYNQ/sdbuild/scripts/check_env.sh
Checking system for required packages:
bc gperf bison flex texi2html texinfo help2man gawk libtool libtool-bin build-essential automake libglib2.0-dev device-tree-compiler qemu-user-static binfmt-support multistrap git lib32z1 libbz2-1.0 lib32stdc++6 libssl-dev kpartx zerofree u-boot-tools rpm2cpio libsdl1.2-dev rsync python3-pip gcc-multilib libidn11 curl libncurses6 lib32ncurses6
[sudo] cys 的密碼:
Error: Package not found - numpy
Error: Package not found - cffi
make: *** [Makefile:366:checkenv] 錯誤 1

Hi there,

Have you set up your host machine with the setup_host.sh script?

Also you will run into issues if you are using Vivado 2021.2. The v2.7 pynq image will require you to use 2020.2 version of the tools.

Thanks
Shawn

I change to vivado 2020.2 now.
After change vivado version, the original problem has been solved, but I meet another problem

/opt/qemu/bin/qemu-arm-static -version | fgrep 5.2.0
qemu-arm version 5.2.0
vivado -version | fgrep 2020.2
Vivado v2020.2 (64-bit)
vitis -version | fgrep 2020.2
****** Vitis v2020.2 (64-bit)
which petalinux-config
/home/cys/xilinx/petalinux/tools/common/petalinux/bin/petalinux-config
which arm-linux-gnueabihf-gcc
/tools/Xilinx/Vitis/2020.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-gcc
which microblaze-xilinx-elf-gcc
/home/cys/xilinx/petalinux/tools/xsct/gnu/microblaze/lin/bin/microblaze-xilinx-elf-gcc
which ct-ng
/opt/crosstool-ng/bin/ct-ng
bash /home/cys/PYNQ/PYNQ-image_v2.8/sdbuild/scripts/check_env.sh
Checking system for required packages:
bc gperf bison flex texi2html texinfo help2man gawk libtool libtool-bin build-essential automake libglib2.0-dev device-tree-compiler qemu-user-static binfmt-support multistrap git lib32z1 libbz2-1.0 lib32stdc++6 libssl-dev kpartx zerofree u-boot-tools rpm2cpio libsdl1.2-dev rsync python3-pip gcc-multilib libidn11 curl libncurses6 lib32ncurses6
/home/cys/PYNQ/PYNQ-image_v2.8/sdbuild/scripts/check_env.sh: 第 78 列: [: 太多參數
PYNQ_BOARDNAME=Eclypse-Z7 FPGA_MANAGER=1 petalinux-build -c device-tree -p /home/cys/PYNQ/PYNQ-image_v2.8/sdbuild/build/Eclypse-Z7/petalinux_project
INFO: Sourcing build tools
[INFO] Building device-tree
[INFO] Sourcing build environment
[INFO] Adding user layers
ERROR: Failed to add user layer: /home/cys/PYNQ/PYNQ-image_v2.8/sdbuild/boot/meta-pynq
ERROR: Failed to build device-tree
make: *** [Makefile:343:/home/cys/PYNQ/PYNQ-image_v2.8/sdbuild/build/Eclypse-Z7/petalinux_project/images/linux/system.dtb] 錯誤 255

I’ve found some articles on Xilinx (https://support.xilinx.com/).
Sadly, I can understand the way they use, since I’m a trully beginner about PYNQ even fpga products

Thanks

I’m seeing some instances of “image_v2.8” in your log there, I would make sure that you’re one the v2.7 or master branch as those are stable for v2.7 image building. Also make sure you generated the BSP with the same version of tools you are using to build the sd card image.

I highly recommend you use the PREBUILT and PYNQ_SDIST flags in your make call. You can download the board agnostic PYNQ v2.7 image here and the PYNQ 2.7 source distribution here.

then

make BOARDDIR=/path/to/board/folder PYNQ_SDIST=/path/to/dist PREBUILT=/path/to/image BOARDS=Eclypse-Z7

Thanks
Shawn

2 Likes

I download PYNQ v2.7 now and remove v2.8 clearly on my pc, it’s seems that I download v2.7 & 2.8 in the same time and cause some issue.

I follow your suggestion but I still meet some problem

  1. If using “BOARDDIR”

vivado -version | fgrep 2020.2
Vivado v2020.2 (64-bit)
vitis -version | fgrep 2020.2
****** Vitis v2020.2 (64-bit)
which petalinux-config
/home/cys/xilinx/petalinux/tools/common/petalinux/bin/petalinux-config
which arm-linux-gnueabihf-gcc
/tools/Xilinx/Vitis/2020.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-gcc
which microblaze-xilinx-elf-gcc
/tools/Xilinx/Vitis/2020.2/gnu/microblaze/lin/bin/microblaze-xilinx-elf-gcc
which ct-ng
/opt/crosstool-ng/bin/ct-ng
bash /home/cys/PYNQ/PYNQ-image_v2.7/sdbuild/scripts/check_env.sh
Checking system for required packages:
bc gperf bison flex texi2html texinfo help2man gawk libtool libtool-bin build-essential automake libglib2.0-dev device-tree-compiler qemu-user-static binfmt-support multistrap git lib32z1 libbz2-1.0 lib32stdc++6 libssl-dev kpartx zerofree u-boot-tools rpm2cpio libsdl1.2-dev rsync python3-pip gcc-multilib libidn11 curl libncurses6 lib32ncurses6
/home/cys/PYNQ/PYNQ-image_v2.7/sdbuild/scripts/check_env.sh: 第 78 列: [: 太多參數
make: *** 沒有規則可製作目標「/home/cys/PYNQ/PYNQ-image_v2.7/sdbuild/boot/image_.its」,由「/home/cys/PYNQ/PYNQ-image_v2.7/sdbuild/build/Eclypse-Z7/image.its」 需求。 停止。

  1. “make BOARDS” whether using PYNQ_SDIST & PREBUILT

/opt/qemu/bin/qemu-arm-static -version | fgrep 5.2.0
qemu-arm version 5.2.0
vivado -version | fgrep 2020.2
Vivado v2020.2 (64-bit)
vitis -version | fgrep 2020.2
****** Vitis v2020.2 (64-bit)
which petalinux-config
/home/cys/xilinx/petalinux/tools/common/petalinux/bin/petalinux-config
which arm-linux-gnueabihf-gcc
/tools/Xilinx/Vitis/2020.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-gcc
which microblaze-xilinx-elf-gcc
/tools/Xilinx/Vitis/2020.2/gnu/microblaze/lin/bin/microblaze-xilinx-elf-gcc
which ct-ng
/opt/crosstool-ng/bin/ct-ng
bash /home/cys/PYNQ/PYNQ-image_v2.7/sdbuild/scripts/check_env.sh
Checking system for required packages:
bc gperf bison flex texi2html texinfo help2man gawk libtool libtool-bin build-essential automake libglib2.0-dev device-tree-compiler qemu-user-static binfmt-support multistrap git lib32z1 libbz2-1.0 lib32stdc++6 libssl-dev kpartx zerofree u-boot-tools rpm2cpio libsdl1.2-dev rsync python3-pip gcc-multilib libidn11 curl libncurses6 lib32ncurses6
/home/cys/PYNQ/PYNQ-image_v2.7/sdbuild/scripts/check_env.sh: 第 78 列: [: 太多參數
PYNQ_BOARDNAME=Eclypse-Z7 FPGA_MANAGER=1 petalinux-build -c device-tree -p /home/cys/PYNQ/PYNQ-image_v2.7/sdbuild/build/Eclypse-Z7/petalinux_project
INFO: Sourcing build tools
[INFO] Building device-tree
[INFO] Sourcing build environment
[INFO] Adding user layers
ERROR: Failed to add user layer: /home/cys/PYNQ/PYNQ-image_v2.7/sdbuild/boot/meta-pynq
ERROR: Failed to build device-tree
make: *** [Makefile:343:/home/cys/PYNQ/PYNQ-image_v2.7/sdbuild/build/Eclypse-Z7/petalinux_project/images/linux/system.dtb] 錯誤 255

I have another question that the image you mention seems using on Ultrascale+ , should I keep use it or use PYNQ rootfs arm v2. 7 , because Eclypse-Z7 is using zynq 7020.

Thanks

Can you show your full make command? And were there any errors in the board bsp creation process? Looking at the Eclypse-Z7 repo it seems to be compatible with 2019.1 only.

My apologies you are correct you should be using the arm rootfs.

Thanks
Shawn

1 Like

This is the whole command I typing in

make BOARDDIR=/home/cys/PYNQ/PYNQ-image_v2.7/boards/Eclypse-Z7 PYNQ_SDIST=/home/cys/PYNQ/pynq-2.7.0.tar.gz PREBUILT=/home/cys/PYNQ/focal.arm.2.7.0_2021_11_17.tar.gz BOARDS=Eclypse-Z7

There is no errors when creating board bsp
but I remember that there is some c compliment error when running setup_host.sh in PYNQ.

[457/1129] Linking target qemu-arm
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/…/…/…/x86_64-linux-gnu/libglib-2.0.a(gutils.c.o): in function `g_get_user_database_entry’:
(.text+0x277): 警告: Using ‘getpwuid’ in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: (.text+0xe0): 警告: Using ‘getpwnam_r’ in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: (.text+0x11e): 警告: Using ‘getpwuid_r’ in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
setup_host.txt (344.0 KB)

I 'm using ubuntu 20.04 now and I can’t use 2019.1, and my friend has same question but using and 2019.1, so I’m not sure what the really problem is?

There should be a petalinux project log somewhere in sdbuild/build/Eclypse-Z7/petalinux_project/build which should have more info on the failure. I assume it’s likely to do with your bsp being at a 2019.1 version, and you might need to update it or find a 2020.2 version of the BSP.

Thanks
Shawn

This is the build log

[INFO] Building device-tree
[INFO] Sourcing build environment
SDK environment now set up; additionally you may now run devtool to perform development tasks.
Run devtool --help for further details.
INFO: Sourcing build tools

Shell environment set up for builds.

You can now run 'bitbake ’

Common targets are:
core-image-minimal
core-image-sato
meta-toolchain
meta-ide-support

You can also run generated qemu images with a command like ‘runqemu qemux86’.

Other commonly useful commands are:

  • ‘devtool’ and ‘recipetool’ handle common recipe tasks
  • ‘bitbake-layers’ handles common layer tasks
  • ‘oe-pkgdata-util’ handles common target package tasks
    [INFO] Adding user layers
    NOTE: Starting bitbake server…
    ERROR: Unable to start bitbake server (None)
    ERROR: Server log for this session (/home/cys/PYNQ/PYNQ-image_v2.7/sdbuild/build/Eclypse-Z7/petalinux_project/build/bitbake-cookerdaemon.log):
    — Starting bitbake server pid 8037 at 2022-04-25 11:57:06.701322 —
    ERROR: Layer meta-user is not compatible with the core layer which only supports these series: zeus (layer is compatible with thud)
    ERROR: Layer meta-user is not compatible with the core layer which only supports these series: zeus (layer is compatible with thud)
    ERROR: Layer meta-user is not compatible with the core layer which only supports these series: zeus (layer is compatible with thud)

ERROR: Unable to start bitbake server (None)
ERROR: Server log for this session (/home/cys/PYNQ/PYNQ-image_v2.7/sdbuild/build/Eclypse-Z7/petalinux_project/build/bitbake-cookerdaemon.log):
— Starting bitbake server pid 8037 at 2022-04-25 11:57:06.701322 —
ERROR: Layer meta-user is not compatible with the core layer which only supports these series: zeus (layer is compatible with thud)
ERROR: Layer meta-user is not compatible with the core layer which only supports these series: zeus (layer is compatible with thud)
ERROR: Layer meta-user is not compatible with the core layer which only supports these series: zeus (layer is compatible with thud)

ERROR: Failed to build device-tree

These are yocto errors, the way the yocto project names “zeus” and “thud” relate to petalinux releases can be found here. It does seem like a BSP incompatibility with the petalinux version.

You can find similar errors in forums posts like this and on this forum here. As I mentioned earlier, your best bet will probably be to upgrade it or find a 2020.2 version of the BSP. Or potentially build a v2.5 pynq image with 2019.1 tools, as per the original tutorial, just be weary that version is a bit old now so it’s not as well tested or supported these days.

Thanks
Shawn