PYNQ移植实记 一、环境构建

ZYNQ 7015系列板卡 pynq框架移植

By Dnknow.恒

本次框架移植所有环境均在Ubuntu16.04.6版本下进行,所有操作从Ubuntu官方镜像源构建,已测试Ubuntu16.04版本均无问题,Ubuntu1804版本尚存在问题没有解决,疑似内核升级等引起的库环境问题,不推荐使用。

一、开发环境搭建:

1、基本库环境:

#修改shell环境
sudo dpkg-reconfigure dash
#选择no

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/

PYNQ移植实记 一、环境构建_第1张图片

2、Xilinx基本环境安装

注意:Xilinx环境路径并非绝对,但最好与开发包中设置路径一致,减少开发难度!

Patelinux 2018.2 安装至/opt/pkg/petalinux/2018.2

sudo -s
mkdir -p /opt/pkg/petalinux/2018.2
chown <your_user_name> /opt/pkg/
chown <your_user_name> /opt/pkg/petalinux
chown <your_user_name> /opt/pkg/petalinux/2018.2
chgrp <your_user_name> /opt/pkg/
chgrp <your_user_name> /opt/pkg/petalinux
chgrp <your_user_name> /opt/pkg/petalinux/2018.2
exit 

sudo chmod +x petalinux-v2018.2-final-installer.run
./petalinux-v2018.2-final-installer.run /opt/pkg/petalinux/2018.2

Vivado 2018.2 安装至/opt/Xilinx/Vivado/2018.2

#执行所属权修改
sudo ./xsetup
sudo chmod 777 -R /opt/Xilinx/
sudo chmod 777 -R ~/.Xilinx/

SDx2018(可选) (已知和移植无关)

PYNQ移植实记 一、环境构建_第2张图片

pynq_rootfs_arm_v2.3(离线文件系统镜像,与内核无关项,采用离线镜像,加速系统构建速度)

下载地址:https://www.xilinx.com/member/forms/download/xef.html?filename=pynq_rootfs_arm_v2.3.zip

百度云20190401重构建V2.3镜像
链接: https://pan.baidu.com/s/1OEVaqA6gTlg3Dz9EXnZNWg 提取码: 9207

V2.4对应开发环境版本号2018.3
V2.3对应开发环境版本号2018.2 ,这里以V2.3版本为例
V2.2/V2.1对应开发环境版本号2017.4

3、PYNQ组件下载(最低需安装Patelinux、Vivado)

下载开发包(为方便修改与后期代码维护,克隆完成之后新建分支)

git clone https://github.com/Xilinx/PYNQ.git
cd PYNQ
git checkout v2.3
git checkout -b <BOARDNAME>

检测依赖库环境(这里指开发包根目录)

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

添加环境变量路径

sudo gedit  ~/.bashrc		#编辑当前用户shell环境文件
##追加已下内容
source /opt/pkg/petalinux/2018.2/settings.sh
source /opt/Xilinx/Vivado/2018.2/settings64.sh
export PATH=/opt/qemu/bin:/opt/crosstool-ng/bin:$PATH

PYNQ移植实记 一、环境构建_第3张图片

4、免密码sudo (ubuntu由于默认不开放ROOT权限,需要设置免密码SUDO)

sudo gedit /etc/sudoers
##只要在**%sudo ALL=(ALL:ALL) ALL**下面添加一行,username为当前的用户用户名
username ALL=(ALL) NOPASSWD: ALL

至此,已知和框架移植相关环境已全部完成构建,所有操作均在Ubuntu1604版本下测试通过,Ubuntu1804版本存在不知缘由问题,不推荐使用。

已知问题:

在后续镜像从零构建阶段newlib-2.2.0 源码无法下载问题,(已向Github项目组反馈),已知该问题在后续移植中会导致Build error

问题原因:在检测依赖库环境阶段中安装的crosstool-ng脚本中存在字符错误问题,字符"{“与”}"不能正确检测与移除导致相关源码无法自动下载。

修改方法:

/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”

PYNQ SD镜像构建过程猜想:

阶段一:Ubuntu文件系统镜像同步bionic.arm.stage1.img
阶段二:构建除PYNQ和其他轻量级之外包的系统镜像bionic.arm.stage2.img
阶段三:构建和板级环境无关的PYNQ框架系统镜像bionic.arm.v2.3.img
阶段四:构建PYNQ板级支持镜像boardname.v2.3.img

你可能感兴趣的:(Pynq从零开始)