1. 文件准备
-
vivado及petalinux建议使用2018.3版本 【2018.3版本之前的一般仅支持旧版板卡】
-
下载对应板卡的BSP包,以ZCU102为例,链接地址为此BSP地址
-
下载板卡镜像文件,链接地址为此地址,注意版本匹配及板卡ARM核位宽,64位系统为aarch64,32位系统为arm。
-
PYNQ工程下载,注意要使用git clone下载,注意版本匹配,2018.3对应于2.4版本
git clone https://github.com/Xilinx/PYNQ.git cd PYNQ git checkout v2.4 git checkout -b ZCU102
2. 环境准备
sudo dpkg-reconfigure dash
# 此处注意一定要选择no,否则会导致之后petalinux安装失败
sudo apt-get install -y gcc git make net-tools libncurses5-dev tftpd zlib1g-dev libssl-dev \
flex bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip \
texinfo zlib1g-dev gcc-multilib build-essential libsdl1.2-dev libglib2.0-dev zlib1g:i386 \
screen pax gzip
sudo apt-get install tofrodos gawk xvfb zlib1g-dev:i386
sudo apt-get install tftpd-hpa
sudo chmod a+w /var/lib/tftpboot/
3. 编译
-
cd PYNQROOTPATH/PYNQ/sdbuild/scripts/
进入对应路径,执行如下:chmod +x setup_host.sh ./setup_host.sh
-
修改Makefile,删除
PYNQROOTPATH/PYNQ/sdbuild/
文件夹下Makefile的which sdx | fgrep ${KERNEL_VERSION}
-
修改bash环境变量
sudo gedit ~/.bashrc # 注意此三行需要根据具体情况设置 source <PETALINUXROOTPATH>/petalinux/2018.3/settings.sh source <VIVADOROOTPATH>/Vivado/2018.3/settings64.sh source <VIVADOROOTPATH>/SDK/2018.3/settings64.sh export PATH=/opt/qemu/bin:/opt/crosstool-ng/bin:$PATH
-
修改交叉编译工具
进入文件夹 /opt/crosstool-ng/lib/crosstool-ng-1.22.0/scripts/build/libc/ 打开文件newlib.sh 将"{http://mirrors.kernel.org/sourceware/newlib, ftp://sourceware.org/pub/newlib}" 改为 “ftp://sourceware.org/pub/newlib"或者"http://mirrors.kernel.org/sourceware/newlib”
-
cd PYNQROOTPATH/PYNQ/boards
打开对应路径,创建板卡对应路径,如ZCU102,将BSP文件放到改新建路径下。复制ZCU104文件夹下的spec文件,并修改为如下内容:ARCH_ZCU102 := aarch64 BSP_ZCU102 := xilinx-zcu102-v2018.3-final.bsp STAGE4_PACKAGES_ZCU102 := xrt pynq ethernet sensorconf boot_leds
-
cd PYNQROOTPATH/PYNQ/sdbuild
打开对应路径,执行如下:make boot_files BOARDS=ZCU102 make images BOARDS=ZCU102 PREBUILT= <文件准备3.中的文件路径>
注意!!! make boot_files BOARDS=ZCU102可能会报错,如果是qemu路径识别错误的问题,需要sudo执行make boot_files BOARDS=ZCU102,之后不在sudo模式下执行make boot_files BOARDS=ZCU102
烧写镜像
上述流程将在
镜像烧写流程参考如下链接PYNQROOTPATH/PYNQ/sdbuild/output
目录下产生boot和root文件,供SD烧写。
https://blog.youkuaiyun.com/Zheng_r_w/article/details/106733867