ZYNQMP Ultrascale+ Petalinux 环境搭建

1.简介

	Zynq UltraScale+ MPSoc xcu19eg-ffvc1760-2-i
	Vivado 17.4 petalinux17.4 (建议使用最新的SDK IDE)  
	Ubuntu 16.04

2.环境搭建

1.1. 安装软件包

手动更新镜像源:
在这里插入图片描述
设置完成后,输入命令更新软件源:sudo apt-get update

安装软件包

sudo apt-get install -y tofrodos iproute2 gawk xvfb gcc-4.8 wget \
build-essential checkinstall libreadline-gplv2-dev \
libncursesw5-dev libssl-dev libsqlite3-dev tk-dev \
libgdbm-dev libc6-dev libbz2-dev git make net-tools libncurses5-dev \
tftpd zlib1g-dev libssl-dev flex bison libselinux1 gnupg diffstat \
chrpath socat xterm autoconf libtool tar unzip texinfo \
gcc-multilib libsdl1.2-dev libglib2.0-dev screen pax gzip \
language-pack-en libtool-bin cpio lib32z1 lsb-release zlib1g:i386 \
vim-common libgtk2.0-dev libstdc++6:i386 libc6:i386

1.2 chmod +x petalinux-v2018.2-final-installer.run

1.3 Install ftfpd

$ sudo apt-get install tftp
$ sudo apt-get install openbsd-inetd
$ sudo gedit /etc/inetd.conf

#在文件中增加以下内容:
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot

$ sudo mkdir /tftpboot
$ sudo chmod 777 /tftpboot #修改文件夹权限
$ /etc/init.d/openbsd-inetd restart
$ netstat -an | more | grep udp

1.4 修改/bin/sh

ubuntu默认的“/bin/sh”是dash,安装需要修改成bash。
$ ls -al /bin/sh #查看未修改之前的
/bin/sh
lrwxrwxrwx 1 root root 4 5月 29 16:40 /bin/sh -> dash
$ sudo dpkg-reconfigure dash #修改,弹出的对话框选择“否”
$ ls -al /bin/sh #查看修改后的/bin/sh
lrwxrwxrwx 1 root root 4 5月 30 15:14 /bin/sh -> bash

1.4 设置安装目录的权限

petalinux必须在普通用户权限下安装,因此安装目录的权限也需要修改:将
petalinux-v2017.4-final-installer.run安装包所在的目录(包括父目录)权限修改为775.
(我的安装目录:/opt/pkg/petalinux,则包括petalinux在内的两个目录都需要修改权限)
新建多级目录
$ mkdir -p /opt/pkg/petalinux
设置/opt目录及其以下之目录访问权限为775
$ sudo chmod -R 775 /opt
设置/opt目录及其以下之目录访所有者为user
chown –R user:user /opt

1.5 安装

$ ./petalinux-v2018.1-final-installer.run /opt/pkg/petalinux
Enter 阅读lic, Q退出,Y 同意 三次
如果安装过程出错,显示access 权限等错误信息,建议:
chown -R user:user /opt/xxx /opt/xxx/xxx(即使:系统显示安装目录所有者为普通用户,也可能会出现安装的权限问题)

1.6 验证

souce /opt/pkg/petalinux/settings.sh
$ echo $PETALINUX
/opt/pkg/petalinux #目录别较真
安装完成后,最好重新启动!

1.7 自启动设置

(1)方法:修改~/.bashrc文件:.bashrc 是终端的初始化配置脚本,每次打开新的终端的时候,都会执行这个脚本,把环境变量配置脚本加在里面,就能在打开的时候完成自动配置。
$ gedit ~/.bashrc
source /home/petalinux/settings.sh #在最后一行增加

3 FSBL

QPSI flash MT25QL512‘
两片并联 128MB
启动方式 QSPI 32 Bit
在这里插入图片描述Vivado QSPI flash配置
默认启动方式出错,Xilnx 的multi boot功能,寄存器读取0x2000,地址出错
关于zynq的mutil boot 功能,还未研究
解决办法:
在SDK中新建FSBL 工程修改 fsbl->scr->xfsbl_qspi.c
在这里插入图片描述
话不多说,如上图
修改完成后,保存工程,新建FSBL,生成fsbl.elf启动代码。

新建petalinux工程用上图修改的工程,不能用petalinux默认启动文件。(手动指定–fsbl的路径)

4 petalinux常用命令

创建工程:
petalinux-create --type project --template zynq/zynqMP/… --name XX
配置工程:
petalinux-config --get-hw-description …/linux_base.sdk
配置内核 / 根文件:
petalinux-config -c kernel
petalinux-config –c rootfs
编译整个工程:
petalinux-bulid

petalinux-build -x distclean

QSPI启动,添加jffs2根文件系统,并指定偏移地址:
petalinux-package --boot --fsbl --u-boot --kernel --add images/linux/rootfs.jffs2 --offset (partition offset given for jffs2)
例如QSPI启动,使用jffs2文件系统,偏移地址为:0x03040000
petalinux-package --boot --fsbl --u-boot --kernel --add images/linux/rootfs.jffs2 --offset 0x03040000

例如QSPI启动,使用jffs2文件系统,并添加PL逻辑代码:
petalinux-package –boot --fsbl --fpga --u-boot --kernel --add ./images/linux/rootfs.jffs2 --offset addr --force

说明:
fsbl fpga u-boot kernel 如不指定路径,默认都是工程目录下 ./image/linux/下的文件
–force选项为强制:默认覆盖以前生成的BOOT.BIN

SD卡启动:
petalinux-package --boot --fsbl --u-boot --force

先到这里吧!

[1] 参考广大网友博客加自己实践

Logo

更多推荐