ZYNQ跑系统 系列(二) petalinux方式移植linux

本文详细介绍了如何使用Petalinux工具将Linux系统移植到ZYNQ FPGA平台。从安装Petalinux、搭建硬件环境到创建工程、配置硬件描述文件,再到编译u-boot、kernel和rootfs,一步步带领读者熟悉整个流程。通过Petalinux,可以体验到比传统移植方式更为便捷的开发过程。
摘要由CSDN通过智能技术生成

移植linux之petalinux

之前一篇博文中,提到了一种通用的传统移植方式,将linux移植到ZYNQ中的ARM芯片中。本文将针对xilinx的专用开发环境petalinux,进行入门和开发,本文petalinux的运行环境依然在虚拟机的linux系统里,即将体验petalinux相对于传统方式的便捷和强大之处

一、安装petalinux

  • -1.安装虚拟机,在虚拟机里安装linux系统(ubuntu16)

    • 虚拟机里磁盘尽量留大点,建议60G,我的是80G
    • sudo passwd命令,设置超级用户su时的密码
    • 建议安装VMware Tools
    • 开发工具:vivado2017.1(Windows下) + petalinux 2017.1(Linux下)
  • 0.更新apt-get(可选,加速用,同传统方式移植那篇文章的第二节)

  • 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

  • 2.修改/bin/sh
    shell中输入:dpkg-reconfigure dash,在出现的界面中选择‘否’

  • 3.下载petalinux
    去官网下载petalinux-v2017.1-final-installer.run(文件8个G,上传不了)

  • 4.安装petalinux

    • 在一个用户目录下(我的是:home/hlf/mnt),用鼠标右键,新建一个文件夹petalinux
    • 在普通用户下(非root模式下,即命令行是:hlf@hlf-virtual-machine:~/mnt$这样的),shell中输入命令:./petalinux-v2017.1-final-installer.run ./petalinux
    • 经过漫长的等待,安装到一半的时候,提醒查看许可,按回车查看,按q退出,退出后输入y,回车,如此重复三次,才开始正式安装(这个步骤要很小心,如果没有输入y,就回车,就要重新了)
    • 安装的时候提示,提示有几个库没装,不过没关系,等petalinux安装完之后,再补也不迟,静候一直到安装完毕
      这里写图片描述
  • 5.补一些库的安装

    • 懒人直接只看这一点即可(可以跳过下面两点),把下面命令粘贴到shell中回车即可:

      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

    • 先安装刚刚安装时,提示缺少的库:

      apt-get install texinfo gcc-multilib libsdl1.2-dev libglib2.0-dev zlib1g:i386

    • 安装一些之后需要的库,全都安装了避免麻烦:

      • 在运行petalinux-config -c kernel会出现错误,需安装:
        apt-get install libncurses5 libncurses5-dev
      • 编译时可能会出现错误arm-xilinx-linux-gnueabi-gcc: Command not found,需安装:
        apt-get install libc6:i386 libstdc++6:i386 zlib1g:i386
      • 提示缺少zlib和openssl,需安装:
        apt-get install libssl-dev
      • 出现警告(警告而已,强迫症可以处理一下),提示No tftp server found - please refer to “PetaLinux SDK Installation Guide” for its impact and solution,需安装:
        apt-get install tftpd tftp openbsd-inetd,安装完成后,编辑一下/etc/inetd.conf里的东西:
        直接shell中输入gedit /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命令,以确定成功(打印出udp 0 0 0.0.0.0:69 0.0.0.0:*
  • 6.验证是否安装成功
    source /home/hlf/mnt/petalinux/settings.sh
    成功定位不报错的话,基本是成功了的
    echo $PETALINUX
    命令行会打印出安装路径/home/hlf/mnt/petalinux

二、搭建硬件环境

  • 1.新建工程,选择对应的芯片型号,并新建一个 BD 原理图文件(命名为system),然后添加一个ZYNQ Processing system的IP核,并设置好与硬件相符合的PS和PL时钟以及DDR型号
    这个步骤同传统方式移植那篇文章

  • 2.为了使PetaLinux正常的运行,需要分配一些硬件外设资源

    1.TTC模块(必须) ,如果有多个,Linux内核将会使用第一个。
    2.外部32MB存储空间(必须)
    3.UART模块(必须),控制台打印信息用,若用IP核的话,需中断信号连到PS
    4.非易失存储器(可选),如:QSPI Flash,SD/MMC
    5.以太网接口(可选),若用IP核或外部PHY的话,需中断信号连到PS

    本文硬件上,将在ZYNQ Processing system里启用TTC、UART、SD以及之后可能用到的USB、Ethernet(网口0在bank1,bank1电压要选1.8V,否则报错)
    这里写图片描述
    这里写图片描述

    预留好上述模块就可以了,
    这里写图片描述
    然后右键单击 Block 文件,文件选择 Generate the Output Products,然后右键单击 Block 文件,选择 Create a HDL wrapper,根据 Block 文件内容产生一个 HDL 的顶层文件,并选择让 vivado 自动完成

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

三、搭建petalinux工程

  • 0.定位目录
    先在shell中找一个准备存放工程的地方,(我的是home/hlf/PRO),命令行cd home/hlf/PRO

  • 1.定位编译链
    根据安装petalinux的路径:
    source /home/hlf/mnt/petalinux/settings.sh

  • 2.创建petalinux工程
    将在PRO目录下面,创建一个工程:
    petalinux-create --type project --template zynq --name h1_petalinux_test
    h1_petalinux_test是工程名,该命令会自动在PRO文件夹里创建h1_petalinux_test文件夹

  • 3.引用刚才输出的硬件描述文件
    把之前导出的硬件描述文件system_wrapper.hdf拷贝到虚拟机中的h1_petalinux_test工程文件夹下,然后:
    petalinux-config --get-hw-description=/home/hlf/PRO/h1_petalinux_test
    会进入一个配置界面,在里面我们可以配置一些系统参数,主要的配置包括:启动方式,启动存储器分区表,启动文件名称等等,本文暂不对其修改(默认是从SD卡中启动),然后等待其配置(时间较长)

  • 4.获取文件夹权限
    在上一步完成后,输入命令sudo chmod -R 777 /home/hlf获取文件夹权限(工程文件夹和peta

  • 41
    点赞
  • 293
    收藏
    觉得还不错? 一键收藏
  • 33
    评论
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值