编译Pynq2.7镜像踩坑记录

硬件平台:zynq7010

虚拟机平台:Ubuntu 18.04

pynq源码版本:2.7

本人参考了下方的官方教程

PYNQ SD Card image — Python productivity for Zynq (Pynq)icon-default.png?t=N7T8https://pynq.readthedocs.io/en/v2.7.0/pynq_sd_card.html以及其他博主的教程

启明星Zynq7010制作PYNQ V2.4镜像过程记录_正点原子pynq-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_41873311/article/details/124284037ZCU102制作PYNQ v2.7镜像_zcu102 pynq v2.7-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/ssunrt/article/details/125218877?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171590817316800226598226%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=171590817316800226598226&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-125218877-null-null.142%5Ev100%5Epc_search_result_base8&utm_term=PYNQ%20V2.7&spm=1018.2226.3001.4187附上prebuilt2.7根文件的压缩包

链接:https://pan.baidu.com/s/1TIa6pm3efIRswXpDH5iAbQ 
提取码:NUAA

再附上SDIST包的官方下载连接

Release Austin Release · Xilinx/PYNQ · GitHub

踩坑问题1:在安装依赖环境时,没有加Sudo,导致无法正确获取已安装软件的版本

在执行如下指令安装qmu与crosstool-ng时,报错没有满足Sed>=4.0的条件,但实际已经安装了4.4的sed

<PYNQ repository>/sdbuild/scripts/setup_host.sh

加上sudo执行就顺利通过了

踩坑问题2:在已经加上PYNQ_SDIST路径,编译自己的开发板时,还会编译其他板子的bitstream

遇到的问题与下方这个帖子一模一样

PYNQ2.7 Custom Board Build Error - PYNQ_SDIST - Support - PYNQicon-default.png?t=N7T8https://discuss.pynq.io/t/pynq2-7-custom-board-build-error-pynq-sdist/5150本人编译报错如下

+ boards='Pynq-Z1
Pynq-Z2
ZCU104'
+ for bd_name in $boards
+ cd /home/snowball/PYNQ/sdbuild/build/PYNQ/sdist_untar/pynq-2.7.0/boards/Pynq-Z1
++ find . -maxdepth 2 -iname '*.bit' -printf '%h\n'
++ cut -f2 -d/
+ overlays='logictools
base'
+ for ol in $overlays
+ sudo cp -fL logictools/logictools.bit logictools/logictools.hwh /home/snowball/PYNQ/sdbuild/build/PYNQ/boards/Pynq-Z1/logictools
+ for ol in $overlays
+ sudo cp -fL base/base.bit base/base.hwh /home/snowball/PYNQ/sdbuild/build/PYNQ/boards/Pynq-Z1/base
+ for bd_name in $boards
+ cd /home/snowball/PYNQ/sdbuild/build/PYNQ/sdist_untar/pynq-2.7.0/boards/Pynq-Z2
++ find . -maxdepth 2 -iname '*.bit' -printf '%h\n'
++ cut -f2 -d/
+ overlays='logictools
base'
+ for ol in $overlays
+ sudo cp -fL logictools/logictools.bit logictools/logictools.hwh /home/snowball/PYNQ/sdbuild/build/PYNQ/boards/Pynq-Z2/logictools
+ for ol in $overlays
+ sudo cp -fL base/base.bit base/base.hwh /home/snowball/PYNQ/sdbuild/build/PYNQ/boards/Pynq-Z2/base
+ for bd_name in $boards
+ cd /home/snowball/PYNQ/sdbuild/build/PYNQ/sdist_untar/pynq-2.7.0/boards/ZCU104
++ find . -maxdepth 2 -iname '*.bit' -printf '%h\n'
++ cut -f2 -d/
+ overlays=base
+ for ol in $overlays
+ sudo cp -fL base/base.bit base/base.hwh /home/snowball/PYNQ/sdbuild/build/PYNQ/boards/ZCU104/base
+ rm -rf /home/snowball/PYNQ/sdbuild/build/PYNQ/sdist_untar
+ cd /home/snowball/PYNQ/sdbuild/build/PYNQ
+ ./build.sh
./build.sh

building bitstream logictools.bit for Pynq-Z2
make[1]: 进入目录“/home/snowball/PYNQ/sdbuild/build/PYNQ/boards/Pynq-Z2/logictools”
rm -rf logictools *.jou *.log NA .Xil
make[1]: 离开目录“/home/snowball/PYNQ/sdbuild/build/PYNQ/boards/Pynq-Z2/logictools”
make[1]: 进入目录“/home/snowball/PYNQ/sdbuild/build/PYNQ/boards/Pynq-Z2/logictools”
vivado -mode batch -source build_ip.tcl -notrace

………………

………………

INFO: [HLS 200-112] Total CPU user time: 9.06 seconds. Total CPU system time: 1.48 seconds. Total elapsed time: 12.12 seconds; peak allocated memory: 140.066 MB.
INFO: [Common 17-206] Exiting vitis_hls at Fri May 17 15:30:34 2024...
child process exited abnormally
INFO: [Common 17-206] Exiting Vivado at Fri May 17 15:30:34 2024...
makefile:10: recipe for target 'hls_ip' failed
make[1]: *** [hls_ip] Error 1
make[1]: 离开目录“/home/snowball/PYNQ/sdbuild/build/PYNQ/boards/Pynq-Z2/logictools”
+ unmount_special
+ for fs in $fss
+ sudo umount -l /home/snowball/PYNQ/sdbuild/build/focal.zynq7010/proc
+ for fs in $fss
+ sudo umount -l /home/snowball/PYNQ/sdbuild/build/focal.zynq7010/run
+ for fs in $fss
+ sudo umount -l /home/snowball/PYNQ/sdbuild/build/focal.zynq7010/dev
+ sudo umount -l /home/snowball/PYNQ/sdbuild/build/focal.zynq7010/ccache
+ rmdir /home/snowball/PYNQ/sdbuild/build/focal.zynq7010/ccache
Makefile:: recipe for target '/home/snowball/PYNQ/sdbuild/build/zynq7010.tar.gz' failed

可以看到报错中,先执行了./build.sh,然后开始building bitstream logictools.bit for Pynq-Z2 

走查build.sh,发现是没有检测到板子路径下bit文件与hwh文件就会开始make bitstream

通过下列debug信息可知,PYNQ_SDIST已经成功解压到对应路径,也看到了各个板子下的bit文件,不知道为何无法被正确检测到,一直没有找到答案

+ boards='Pynq-Z1
Pynq-Z2
ZCU104'
+ for bd_name in $boards
+ cd /home/snowball/PYNQ/sdbuild/build/PYNQ/sdist_untar/pynq-2.7.0/boards/Pynq-Z1
++ find . -maxdepth 2 -iname '*.bit' -printf '%h\n'
++ cut -f2 -d/
+ overlays='logictools
base'
+ for ol in $overlays
+ sudo cp -fL logictools/logictools.bit logictools/logictools.hwh /home/snowball/PYNQ/sdbuild/build/PYNQ/boards/Pynq-Z1/logictools
+ for ol in $overlays
+ sudo cp -fL base/base.bit base/base.hwh /home/snowball/PYNQ/sdbuild/build/PYNQ/boards/Pynq-Z1/base
+ for bd_name in $boards
+ cd /home/snowball/PYNQ/sdbuild/build/PYNQ/sdist_untar/pynq-2.7.0/boards/Pynq-Z2
++ find . -maxdepth 2 -iname '*.bit' -printf '%h\n'
++ cut -f2 -d/
+ overlays='logictools
base'
+ for ol in $overlays
+ sudo cp -fL logictools/logictools.bit logictools/logictools.hwh /home/snowball/PYNQ/sdbuild/build/PYNQ/boards/Pynq-Z2/logictools
+ for ol in $overlays
+ sudo cp -fL base/base.bit base/base.hwh /home/snowball/PYNQ/sdbuild/build/PYNQ/boards/Pynq-Z2/base
+ for bd_name in $boards
+ cd /home/snowball/PYNQ/sdbuild/build/PYNQ/sdist_untar/pynq-2.7.0/boards/ZCU104
++ find . -maxdepth 2 -iname '*.bit' -printf '%h\n'
++ cut -f2 -d/
+ overlays=base
+ for ol in $overlays
+ sudo cp -fL base/base.bit base/base.hwh /home/snowball/PYNQ/sdbuild/build/PYNQ/boards/ZCU104/base
+ rm -rf /home/snowball/PYNQ/sdbuild/build/PYNQ/sdist_untar
+ cd /home/snowball/PYNQ/sdbuild/build/PYNQ

 于是干脆把这句make clean && make直接注释掉(注意:操作sdbuild/builid/pynq下的build.sh)

然后就能顺利编译出镜像了

to be continued

  • 27
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值