使用 Petalinux 定制 Linux 系统

一、Petalinux设计流程概述与所需命令汇总

  • 1.通过Vivado得到hdf硬件描述文件。
  • 2.运行Petalinux安装目录下的settings.sh,设置Petalinux环境变量。
  • 3.创建Petalinux工程。
petalinux-create -t project --template zynq --name LGD-ZYNQ
  • 4.将hdf文件导入到Petalinux工程当中并配置Petalinux工程。
petalinux-config --get-hw-description ../hdf/
  • 5.配置u-boot、kernel、rootfs。
petalinux-config -c u-boot
petalinux-config -c kernel
petalinux-config -c rootfs
  • 6.配置设备树文件。
  • 7.编译工程。
petalinux-build
  • 8.生成BOOT.BIN文件。
#硬件设计时中涉及PL部分
petalinux-package --boot --fsbl --fpga --u-boot --force
#硬件设计中只包含PS部分
petalinux-package --boot --fsbl --u-boot --force

二、使用Petalinux定制Linux系统

1.创建Vivado硬件平台

使用Vivado,根据开发板配置进行硬件设置,一般Linux开发需要以下外设支持:

  • 串口:用来打印系统信息
  • 网口:用来与电脑通信
  • SD卡接口:ZYNQ从SD卡加载Linux所需文件
  • Flash:u-boot的环境变量一般存储在Flash中

配置完成后得到hdf文件,拷贝到Ubuntu系统中。

2.设置Petalinux环境变量

在Ubuntu系统中需要先设置Petalinux工作环境,也就是对Petalinux工作环境进行初始化,在终端输入如下命令即可:

source /opt/pkg/petalinux/2018.3/settings.sh

其中/opt/pkg/petalinux/2018.3为Petalinux的安装目录,或者可以进入到Petalinux的安装目录下直接运行settings.sh来设置环境变量。执行结果如下图所示。
在这里插入图片描述

3.创建Petalinux工程

1.进入到用户目录下,使用如下命新建一个名为“petalinux”的文件夹用来放置Petalinux工程:

mkdir petalinux

2.进入到petalinux目录,使用如下命令创建一个Petalinux工程:

petalinux-create -t project --template zynq --name LGD-ZYNQ

template表示创建工程使用的模板,这里使用zynq模板;name参数标志创建的工程名。执行后如下图所示:
在这里插入图片描述
创建工程后,会自动在当前目录下生成一个名为“LGD-ZYNQ”的文件夹,此文件夹即为所创建的Petalinux工程的工程目录。

4.配置Petalinux工程

1.导入hdf文件

首次配置Petalinux工程是将hdf硬件描述文件文件导入到Petalinux工程中,Petalinux工具会解析hdf文件并弹出配置窗口。

1.首先在petalinux目录下新建一个名为“hdf”的文件夹,将Vivado生成的hdf文件拷贝在此文件夹。

2.进入到Petalinux工程目录下,及LGD-ZYNQ目录下,运行如下命令配置Petalinux工程:

petalinux-config --get-hw-description ../hdf/

hdf文件导入成功后会显示如下界面,一般情况使用默认配置即可,保存后退出配置界面完成配置过程。
在这里插入图片描述

2.设置源文件目录

Petalinux默认编译工程时从网络加载u-boot与Linux源文件,可以通过设置,将其设置为使用本地源文件。

1.将u-boot与Linux源文件拷贝到petalinux目录下,并将其目录重命名为u-boot与linux。使用如下命令进入Petalinux工程配置界面:

petalinux-config

2.进入:Linux Components Selection->u-boot,选择ext-local-src选项,如下图所示:
在这里插入图片描述
3.进入:Linux Components Selection->External u-boot local source settings->EXternal u-boot local source path,输入u-boot源码所在目录,如下图所示:
在这里插入图片描述
4.对于linux-kernel与External linux-kernel local source settings项进行相同的设置,将Linux源文件的地址输入。
在这里插入图片描述

3.设置TFTP目录

Petalinux编译工程完毕后会将编译得到的文件拷贝到TFTP服务目录下,而Petalinux默认的TFTP目录为/tftpboot,需要将其修改到正确目录。

进入配置界面后,选择:Image Packaging Configuration->tftpboot directory,将其设置为正确的TFTP文件存储目录,如下图所示:
在这里插入图片描述

5.配置u-boot

输入如下命令进入u-boot配置界面:

petalinux-config -c u-boot

配置界面如下图所示:
在这里插入图片描述

使用默认配置即可。

6.配置Linux内核

输入如下命令进入Linux内核配置界面:

petalinux-config -c kernel

配置界面如下图所示:
在这里插入图片描述

使用默认配置即可。

7.配置根文件系统

输入如下命令进入根文件系统配置界面:

petalinux-config -c rootfs

配置界面如下图所示:
在这里插入图片描述

使用默认配置即可。

8.配置设备树文件

使用如下命令打开设备树文件:

vim project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi

由于在Vivado硬件设计时并未开启其他外设,所以设备树内无需添加任何内容。

9.编译工程

使用如下命令编译工程:

petalinux-build

执行结果如下图所示:
在这里插入图片描述

10.生成BOOT.BIN文件

对于zynq系列芯片,可引导格式为BOOT.BIN,需要生成相应BIN文件。使用如下命令生成BOOT.BIN文件:

petalinux-package --boot --fsbl --u-boot --force

执行结果如下图所示:
在这里插入图片描述

三、在开发板上启动Linux系统

1.SD启动卡制作

如果使用SD卡引导Linux系统启动,一般需要在SD卡上有两个分区。一个分区使用FAT32文件系统,用于放置启动镜像文件(如BOOT.BIN,Linux 镜像等),另一分区使用EXT4文件系统,用于存放根文件系统。

在配置Petalinux工程中,“Image Packaging Configuration”子菜单根文件系统的类型的配置使用的是默认的INITRAMFS,所以只需要一个使用FAT32文件系统的分区就可以了。当设置为“SD card”则需要另一个存放根文件系统的分区。

1.将SD卡通过读卡器连接到电脑,使用如下命令查看SD卡对应设备节点。

df -h

命令执行结果如下图所示:
在这里插入图片描述
2.SD卡容量为8G,名称为“H”,对应可以找到其设备节点名称为“/dev/sdb1”,输入如下命令先解除SD卡挂载:

umount /dev/sdb1

3.输入如下命令对SD卡进行分区:

sudo fdisk /dev/sdb

输入“p”执行结果如下:
在这里插入图片描述
4.可以看到,目前SD卡中有一个FAT32的分区,输入“d”将其删除,结果如下图:
在这里插入图片描述
5.若SD卡中存在多个分区,则将其全部删除,按照下图的步骤,创建一个100M大小的分区:
在这里插入图片描述
6.第一个分区创建完成后按照下图步骤创建第二个分区,输入“n”后一路回车,使用默认值即可。
在这里插入图片描述
7.输入“p”检查分区,设置正确则输入“w”保存并退出。
在这里插入图片描述
8.分区创建完毕后执行如下命令,格式化并将分区1命名为boot,分区2命名为rootfs。

sudo mkfs.vfat -F 32 -n boot /dev/sdb1
sudo mkfs.ext4 -L rootfs /dev/sdb2

9.单击系统桌面左边的两个USB U盘图标即可自动挂载SD卡,使用df命令可查看SD卡的两个分区所对应的挂载目录,如下图所示:
在这里插入图片描述
10.将Petalinux工程目录image/linux目录下的BOOT.BIN与image.ub文件拷贝到SD卡的第一分区,然后就可以卸载SD卡了。

2.开发板的设置

将开发板时域电脑串口进行连接,网络进行连接,将制作好的SD卡插在开发板上,将zynq启动模式设置到SD卡启动。

3.启动Linux系统

1.开启MobaXterm串口终端,具体设置过程查看Linux开发环境搭建
2.打开开发板电源,启动开发板,串口终端软件会打印出如下Linux启动信息: 在这里插入图片描述
3.停留在登陆处,输入用户名“root”,密码“root”,进入系统。
在这里插入图片描述
4.输入命令“udhcpc”,自动获取IP地址,输入命令“ifconfig”,查看网络信息,执行结果如下图,与操作Ubuntu系统相同。
在这里插入图片描述

四、相关下载链接

u-boot源码 xilinx-v2018.3
Linux源码 xilinx-v2018.3

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值