使用 Petalinux 定制 Linux 系统_petalinux-build_芝诺兔子
目录
一、Petalinux设计流程概述与所需命令汇总二、使用Petalinux定制Linux系统1.创建Vivado硬件平台2.设置Petalinux环境变量3.创建Petalinux工程4.配置Petalinux工程1.导入hdf文件2.设置源文件目录3.设置TFTP目录 5.配置u-boot6.配置Linux内核7.配置根文件系统8.配置设备树文件9.编译工程10.生成BOOT.BIN文件 三、在开发板上启动Linux系统1.SD启动卡制作2.开发板的设置3.启动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
相关文章
- FPGA 20个例程篇:19.OV7725摄像头实时采集送HDMI显示(二)_青青豌豆
- 【微服务】一文读懂网关概念+Nginx正反向代理+负载均衡+Spring Cloud Gateway(多栗子)_赵四司机_nginx负载均衡和微服务
- fpga实操训练(lcd测试)_嵌入式-老费
- 华为云服务-运维篇-负载均衡介绍与平台算法使用_华为 负载均衡_风一样的美狼子
- 【Linux基础】Linux环境变量(超详细)_linux 环境变量_谢老板不用蟹
- ZYNQ FPGA嵌入式开发 - 小梅哥(二)_悟OO道
- Cosmos 基础(一)_chinusyan
- 物联网ARM开发-4协议-单总线应用温湿度传感器_单总线 温湿度传感器_4IOT
- 出现 CUDA out of memory 的解决方法_码农研究僧_cuda out of memory
- 【踩坑日记】ESP32触发定时器中断后无限重启___Witheart___esp32 wdt
- arm-2d库详细介绍_蓁蓁啊
- 一、Amlogic A311D编译环境搭建_Joon2020_amlogic bootloader
- 【全志T113-S3_100ask】15-2 linux系统gpio模拟spi驱动屏幕??ILI9341_第四维度4_linux 模拟spi
- 基于ZigBee的智能家居系统设计_汽汽
- JAVA中创建线程池的五种方法及比较_hudawei996
- 机器学习??PCA(主成分分析)与人脸识别_pca人脸识别_@李忆如