一、环境安装
1、软硬件需求:Vivado 2019.1、ZCU106、Ubuntu 18.04.1、petalinux 2019.1
2、下载Ubuntu 18.04.1
Index of /releases/18.04.1https://old-releases.ubuntu.com/releases/18.04.1/
2、安装VMware 17Pro
建议大家直接给定150G的虚拟机空间,不然后续扩容应麻烦的。
3、添加服务:
①桌面右键打开终端,输入:sudo apt install apt-transport-https
②输入:sudo apt install ca-certificates
4、将Ubuntu的源更换为清华镜像源
①桌面右键打开终端,输入:sudo vi /etc/apt/sources.list
②按下键盘insert键,在源文件中每行前都加上“#”(已经有的不需要),在文件最后加上,
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ bionic-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ bionic-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
③按下esc,输入“:wq!”即可保存退出。
④输入:apt-get update
如果出现问题:Ubuntu 无法打开锁文件 /var/lib/dpkg/lock - open。则输入下面的代码解锁。
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
5、安装依赖
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 gawk
sudo apt-get install xterm
sudo apt-get install python
sudo apt-get install tftpd tftp openbsd-inetd
安装完毕后,输入:
su
chmod 600 /etc/inetd.conf
vim /etc/inetd.conf
#在文件中增加以下内容
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftproot
#保存并退出
接着输入:
mkdir /tftproot
chmod 777 /tftproot
/etc/init.d/openbsd-inetd restart
netstat -an | more | grep udp
#若看到有如下输出,即表示tftp安装成功
#udp 0 0 0.0.0.0:69 0.0.0.0:*
最后输入exit,退出
6、下载petalinux 2019.1、linux 4.19、u-boot 2019.1、sstate高速缓存,下面是下载链接
①petalinux 2019.1、sstate高速缓存
②、linux 4.19
下载完后,不要手贱,一定要传输到Ubuntu再解压,因为Ubuntu对大小写敏感,里面好多文件以大小写区分命名,Windows下会被覆盖!
③、u-boot 2019.1
7、安装ssh服务,安装winscp软件,将下载的东西移动到ubuntu的download/petalinux目录下
sudo apt-get install openssh-server
8、将make 4.1替换为make 3.81
Index of /gnu/makehttps://ftp.gnu.org/gnu/make/
解压后,依次输入命令:
make -v
./configure
make
sudo make install
reboot
重启ubuntu后,输入make -v查看版本。
二、创建petalinx 第一个应用
1、在 ~/Downloads目录下新建petalinux文件夹将之前下载的4个东西,全部复制进去
2、运行下述命令,尽量自己敲,复制时注意空格,如果是中文空格很可能出现“xxxx: missing operand after ‘xxxx /opt/pkg/petalinux/’”错误。<username>是你安装ubuntu时设置的用户名
sudo -s
mkdir ./pkg
cd /pkg
mkdir ./petalinux
chgrp <username> /opt/pkg/petalinux
chown <username> /opt/pkg/petalinux
exit
3、修改petalinux-v2019.1-final-installer.run 运行权限
chmod +x petalinux-v2019.1-final-installer.run
4、运行安装petalinux2019.1
./petalinux-v2019.1-final-installer.run /opt/pkg/petalinux/
5、输入q退出协议内容->输y同意协议内容...反复操作一直到最后安装成功
6、修改 bash,许多教程设置了开机自动加入环境变量。但是这样其他工具编译时可能会遇到问题,因此我还是建议,每次打开终端,都修改一下比较好。出现提示框,选择NO
sudo dpkg-reconfigure dash
source /opt/pkg/petalinux/settings.sh
7、如果遇到网络问题,输入ifconfig,如果显示只能链接127.0.0.1,则输入以下命令
sudo service network-manager stop
sudo rm /var/lib/NetworkManager/NetworkManager.state
sudo service network-manager start
8、终端输出以下内容,则代表petalinux 2019.1安装完毕
9、在 ~/Downloads目录下新建ZCU106文件夹,我是zcu106,所以采用zynqMP模板
输入命令:
mkdir -p ./zcu106/proj1v-1
cd ./zcu106/proj1v-1
mkdir ./hardware
在vivado 2019.1 中生成bit,然后导出hdf文件(2019.2版本之后位xsa文件),在 sdk路径中。将其移动到新建的hardware文件夹下。
输入下面的命令后即可创建以petalinux为名称的zynqMP项目。
sudo dpkg-reconfigure dash
source /opt/pkg/petalinux/settings.sh
petalinux-create -t project -n petalinux --template zynqMP
10、配置硬件工程
① 将“/home/yangzheng/Downloads/petalinux”路径中的 uboot 2019.1和linux 4.19复制到“/home/yangzheng/Downloads/zcu106/proj1v-1/petalinux”文件夹下。
②将PL侧信息导入配置命令
cd petalinux//进入文件夹
petalinux-config --get-hw-description ../hardware/
③打开配置界面后,配置linux
将下面这两个都设置为 “ext-local-src”
如果按照我上文路径设置的话,那么uboot和 linux的路径设置为:
/home/yangzheng/Downloads/zcu106/proj1v-1/petalinux/u-boot-xlnx-xilinx-v2019.1
/home/yangzheng/Downloads/zcu106/proj1v-1/petalinux/linux-xlnx-xlnx_rebase_v4.19_2019.1
Save后exit
④任然时这个界面,配置Yocto
按下N键,取消网络下载
配置pre-mirror(一定要加上file://),配置sstate feeds(我是zcu106,所以选择aarch64,zynq选择arm文件夹)
file:///home/yangzheng/Downloads/petalinux/sstate-rel-v2019.1/sstate-rel-v2019.1/downloads
/home/yangzheng/Downloads/petalinux/sstate-rel-v2019.1/sstate-rel-v2019.1/aarch64
⑤再次配置将PL侧信息导入,直接退出即可
petalinux-config --get-hw-description ../hardware/
⑥编译,不清楚我的gcc文件夹一直没有权限,所以需要加入
sudo chmod -R 777 linux-xlnx-xlnx_rebase_v4.19_2019.1/
sudo chmod -R 777 linux-xlnx-xlnx_rebase_v4.19_2019.1/scripts/
petalinux-build
出现以下结果则表示编译成功
注意:出现platform-auto.h and platform-top.h are not getting added in include/configs directory问题,重新配置hdf文件即可,因为这两个头文件是加入hdf文件自动生成的。直接:petalinux-config --get-hw-description ../hardware/
这样,我们在/home/yangzheng/Downloads/zcu106/proj1v-1/petalinux/images/linux
文件夹下可以看到image.ub文件,还缺少一个BOOT.bin文件
进入/images/linux文件夹输入打包命令:
petalinux-package --boot --u-boot --fpga --force
打包成功可以看到BOOT.bin
11、将打包后的BOOT.bin与image.ub移动到SD卡中(2019.2版本后还好像还有一个boot.scr文件)
12、上板子实验视频
linux在zcu106运行
----------------------------------------------------------23/11/23 更新--------------------------------------------------
petalinux-config的时候一定要加上这个设置,加上就能联网了。
此外,我们的Vivado工程什么都没有设置,就只有一个IP核