文章目录
- 1.通过 Vivado 创建硬件平台,得到 hdf 硬件描述文件
- 2.设置 Petalinux 环境变量
- 3.创建 Petalinux 工程
- 4.配置Petalinux 工程
- 5.配置Linux内核
- 6.配置Linux根文件系统
- 7.配置设备树文件
- 8.编译 Petalinux 工程
- 9.制作BOOT.BIN启动文件
- 10.制作SD启动卡
1.通过 Vivado 创建硬件平台,得到 hdf 硬件描述文件
home目录下创建一个名为 petalinux 的目录,并在 petalinux 目录下创建 hdf 目录,将Vivado生成的SDK文件夹拷贝到hdf目录下。
2.设置 Petalinux 环境变量
初始化Petalinux 工作环境:source <petalinux安装路径>/settings.sh
绑定的快捷指令:sptl
3.创建 Petalinux 工程
在petalinux 目录下创建Petalinux工程:petalinux-create -t project --template zynq -n 工程名称
4.配置Petalinux 工程
- 将 hdf 硬件描述文件导入到 Petalinux 工程中:
cd <petalinux工程目录>
petalinux-config --get-hw-description ../hdf/xxxx.sdk/
注:此时如果终端界面太窄,会产生错误。
Failed to menu config project component
- 导入成功之后会自动弹出 petalinux 工程配置窗口:
如果后面修改了 Vivado 工程,重新生成 hdf 文件后, 可以重新执行“petalinux-config --get-hw-description hdf文件路径”命令以重新配置 Petalinux 工程。
键盘上按下此高亮字母对应的键可以快速选中对应的菜单。中括号里的“*”表示为已使能配置。
在“Auto Config Settings”中的“Advanced bootable images storage Settings”菜单中可配置启动引导镜像和内核镜像的存储媒介,默认为 sd 卡
- 按两次“ESC”退出窗口。
5.配置Linux内核
进入petalinux工程目录
petalinux-config -c kernel
Petalinux 默认使用的内核版本为 4.14.0,使用的内核 Xilinx 官方已经做好了基础配置,一般无需更改。
6.配置Linux根文件系统
进入petalinux工程目录
petalinux-config -c rootfs
默认配置一般够用,“PetaLinux RootFS Settings”可以用来设置 root 用户的密码,默认为“root”。
7.配置设备树文件
cd petalinux工程目录
vi project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi
手动配置
配置信息:
- compatible:用于与内核驱动匹配的名字
- label:名字
- gpios:对应的GPIO引脚
- 默认状态以及触发状态
8.编译 Petalinux 工程
进入petalinux工程目录:
petalinux-build
该命令将生成设备树 DTB 文件、fsbl 文件、U-Boot 文件,Linux 内核和根文件系统映像。 编译完成后,生成的映像(image.ub)将位于工程的 images 目录下。
Petalinux 会根据 hdf 文件和配置的petalinux工程自动配置 fsbl 和 uboot,一般无需手动配置。
9.制作BOOT.BIN启动文件
ZYNQ 的启动文件 BOOT.BIN 一般包含 fsbl 文件、bitstream 文件和 uboot 文件。
image.ub本质上是多个文件组合在一起,包括内核镜像、dtb文件、根文件系统。
生成 BOOT.BIN 文件:petalinux-package --boot --fsbl --fpga --u-boot --force
“–fsbl”用于指定 fsbl 镜像文件所在位置,后面接文件对应的路径信息,如果不指定文件位置,默认对应的是 images/linux/zynq_fsbl.elf;
“–fpga”用于指定bitstream 文 件 所 在 位 置 ,后面接该文件对应的路径信息,默认对应的是 images/linux/system.bit;
“–u-boot”用于指定 U-Boot 镜像所在位置,后面接该文件 所在路径信息,默认为 images/linux/u-boot.elf。
10.制作SD启动卡
使用 SD 卡引导 linux 系统启动,一般需要在 SD 卡上有 2 个分区。一个分区使用FAT32 文件系统,用于放置启动镜像文件(如 BOOT.BIN、linux 镜像等),另一分区使用 EXT4 文件系统,用于存放根文件系统。
(1)将读卡器插入到电脑并连接到Ubuntu系统,找到SD卡对应的设备节点,比如是/dev/sdb。
(2)先给SD卡分区
umount /dev/sdb*
sudo fdisk /dev/sdb
(3)输入“d”,删除以前的分区
(4)输入“n”创建一个新分区。通过选择“p”使其为主,使用默认分区号 1 和第一个扇区 2048。设置最后一个扇区,也就是设置第一个分区的大小,可设置为100MB,输入+100M
。
(5)设置分区类型,输入“t”,然后输入“c”,设置为“W95 FAT32 (LBA)”。
(6)输入“a”,设为引导分区,第一个分区创建完成。
(7)输入“n”,创建根文件系统分区,然后一路默认。
(8)输入“p”,检查分区表,如没问题,输入“w”写入到SD卡并退出。
(9)格式化分区,将第一个分区格式化成 FAT32 分区并命名为 boot,将第二个分区格式化成 ext4 分区并命名为 rootfs。
sudo mkfs.vfat -F 32 -n boot /dev/sdb1
sudo mkfs.ext4 -L rootfs /dev/sdb2
(10)分别点击两个图标即可自动将这两个分区挂载到 Ubuntu 系统。
(11)将 petalinux 工程目录 image/linux 目录下的 BOOT.BIN 和 image.ub 文件拷贝到名为 boot 的分区。