ZYNQ使用petalinux方式移植linux

一、安装petalinux

  • .安装虚拟机,在虚拟机里安装linux系统(ubuntu16.04.7 LTS)
    • 虚拟机里磁盘尽量留大点,建议60G。
    • 建议安装VMware Tools,Win11用户建议安装VMware17.5,不然启动虚拟机可能遇到蓝屏问题。
    • 开发工具:vivado2017.1(Windows11下) + petalinux 2017.1(Linux下)
  • 更新apt-get
    sudo apt-get update
    sudo apt-get upgrade
  • 1.安装petalinux的依赖环境 安装petalinux的必要依赖环境,直接复制粘贴下面的命令行到shell中,系统自动下载安装下面的工具:
    sudo apt-get install build-essential vim tofrodos \ 
    iproute2 gawk gcc git make net-tools zlib1g-dev \ 
    libssl-dev flex bison libselinux1 libncurses5-dev \ 
    tftpd lib32z1 lib32ncurses5 libbz2-1.0:i386 \ 
    lib32stdc++6 xvfb chrpath socat autoconf libtool
    sudo apt-get install tmux
  • 修改/bin/sh shell中输入:
    dpkg-reconfigure dash
    在出现的界面中选择‘否’
  • 下载petalinux 去官网下载petalinux-v2017.1-final-installer.run
  •  链接
    Downloads

  • 安装petalinux
    • 一个用户目录下(我的是:home/xyc/Desktop),用鼠标右键,新建一个文件夹petalinux
    • 在普通用户下(非root模式下),shell中输入命令:./petalinux-v2017.1-final-installer.run ./petalinux
    • 经过漫长的等待,安装到一半的时候,提醒查看许可,按回车查看,按q退出,退出后输入y,回车,如此重复三次,才开始正式安装(这个步骤要很小心,如果没有输入y,就回车,就要重新了)
    • 安装的时候提示,提示有几个库没装,不过没关系,等petalinux安装完之后,再补也不迟,静候一直到安装完毕
  • 5.补一些库的安装
    • 把下面命令粘贴到shell中回车即可:
      sudo apt-get install texinfo gcc-multilib libsdl1.2-dev libglib2.0-dev zlib1g:i386 libncurses5 libncurses5-dev libc6:i386 libstdc++6:i386 zlib1g:i386 libssl-dev tftpd tftp openbsd-inetd

经Vivado综合,实现后,在Vivado中导出硬件,输出PetaLinux所需要的硬件描述文件 输出的文件就在“/(工程文件夹)/(工程名).sdk”这个文件夹下,这个文件夹下system.hdf待用 

二、搭建petalinux工程

  • 1.定位目录
    • 先在shell中找一个准备存放工程的地方,我的是/home/xyc/Desktop/pro
  • 2.定位编译链 根据安装petalinux的路径:
    source /home/xyc/Desktop/pro/petalinux/settings.sh
  • 3.创建petalinux工程 将在PRO目录下面,创建一个工程:
    petalinux-create --type project --template zynq --name h1_petalinux_test
    h1_petalinux_test是工程名,该命令会自动在PRO文件夹里创建h1_petalinux_test文件夹
  • 4.引用刚才输出的硬件描述文件 把之前导出的硬件描述文件system.hdf拷贝到虚拟机中的h1_petalinux_test工程文件夹下,然后:
     petalinux-config --get-hw-description=/home/xyc/Desktop/pro/h1_petalinux_test
    会进入一个配置界面,在里面我们可以配置一些系统参数,主要的配置包括:启动方式,启动存储器分区表,启动文件名称等等,本文暂不对其修改(默认是从SD卡中启动),然后等待其配置(时间较长)
  • 5.获取文件夹权限 在上一步完成后,输入命令
    sudo chmod -R 777 /home/xyc
    获取文件夹权限(工程文件夹和petalinux的安装文件夹),否则编译的时候,会发生错误。目前为止,在shell中的命令既可以以超级用户su的身份运行也可以以普通用户的方式运行(建议全部都用普通用户的方式,免得切换),但是等下编译u-boot和kernel以及rootfs的时候,必须普通用户的身份运行命令行,否则会报错的
  • 6.编译u-boot 注意:到此处的时候,不能再用超级用户了,要切换到普通用户下,之后的所有操作都在普通用户下 普通用户的shell中输入
    source /home/xyc/Desktop/pro/petalinux/settings.sh
    petalinux-config -c u-boot
    然后等待GUI出来,这里暂时不改动啥,直接save(save为u-boot.config,名字随便取但不要留空),然后继续等(新建工程要等的时间还是比较长的,后来就会好的)
  • 6.编译kernel 
    petalinux-config -c kernel
    操作同上(save为kernel.config
  • 7.编译rootfs
    petalinux-config -c rootfs
    操作同上(save为默认即可)
  • 8.设备树配置 若要修改,直接在工程文件夹下,Ctr+F搜索.dts就可以找到相关文件,做出相应修改” 暂时默认吧,不修改,按照它自动生成的设备树
  • 9.编译工程 输入命令
    petalinux-build
    ,等待即可,最后生成的文件在 image/linux
  • 10.生成BOOT.BIN 把shell定位到image/linux目录下,执行命令
    petalinux-package --boot --format BIN --fsbl zynq_fsbl.elf --fpga system_wrapper.bit --u-boot
    在文件夹下就可以发现,多了一个BOOT.BIN

11.将BOOT.BIN,image.ub文件拷入SD卡  ,插卡,开机。

你可能感兴趣的:(linux,嵌入式硬件,fpga开发)