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