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
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
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
/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.
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.
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.
[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)
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.