petalinux从flash启动然后引导emmc教程
0. 概述
- 以下只对petalinux从flash启动然后引导emmc相关操作做描述,其它操作不做赘述。
1. 硬件使能
PS侧需要使能SD0以及SD1,然后生成XSA文件。
2. 制作一个SD卡启动的系统
用步骤1中的XSA文件制作一个SD卡启动的系统。
这个就是常用的SD卡制作方法,在此不做赘述。
有一点区别,在rootfs中需要添加
- mkdosfs
- mkfs.ext4
两个命令。
方法见:
petalinux如何在rootfs中添加mkfs.ext4命令
https://blog.csdn.net/PlutoZuo/article/details/131939317
petalinux如何在rootfs中添加mkdosfs命令
https://blog.csdn.net/PlutoZuo/article/details/131939464
注:这两个命令后续用来格式化SD1(emmc)
3. 制作emmc启动的系统:
运行命令:
petalinux-config
3.1 对于配置Advanced bootable images storage settings:
petalinux-config
->Subsystem AUTO Hardware Setting
-> Advanced bootable images storage settings
中的
->boot image settings
->kernel image settings
。。。。。。
等等配置全部选择在qspi flash启动
3.2 对于配置SD/SDIO Settings:
petalinux-config
->Subsystem AUTO Hardware Setting
-> SD/SDIO Settings
中的
->Primary SD/SDIO
配置选择在ps7_sd_1
3.3 对于配置Image Packaging Configuration:
petalinux-config
->Image Packaging Configuration
中的
->Root filesystem type
配置选择EXT4
3.4 最终生成:
BOOT.BIN
boot.scr
image.ub
rootfs.tar.gz
文件。
4. 更改文件名
拷贝文件到Windows,
-
将boot.scr文件名改成boot.scr.BIN
-
将image.ub文件名改成image.ub.BIN
5. 用vitis烧写BIN文件
打开任意vitis工程
5.1 烧写BOOT.BIN
选择xilinx -> program flash
-
image file选择BOOT.BIN
-
offset不填(0)
点击program烧写即可
5.2 烧写boot.scr.BIN
选择xilinx -> program flash
-
image file选择boot.scr.BIN
-
offset填(0xFC0000)
点击program烧写即可
5.3烧写image.ub.BIN
选择xilinx -> program flash
-
image file选择image.ub.BIN
-
offset填(0x1000000)
点击program烧写即可
6. 拷贝文件到SD卡
将第3步骤生成的
rootfs.tar.gz
文件拷贝到SD卡的root分区下的任意目录内.
7. emmc 分区
从SD卡启动petalinux
用
fdisk /dev/mmcblk1
命令进行分区。分两个区,第一个大概128M,第二个为emmc剩余所有的空间。
用
mkdosfs -F 32 /dev/mmcblk1p1 #格式化为FAT32格式。
mkfs.ext4 /dev/mmcblk1p2 #格式化为EXT4格式
格式化分区。
7. 制作emmc rootfs
从SD卡启动petalinux
把第6步骤拷贝的rootfs.tar.gz文件拷贝到emmc的第二个分区(/media/mmcblk1p2),并执行:
tar -zxvpf rootfs.tar.gz
这样emmc的rootfs就做好了。
8. 从flash启动
拨码开关选择从flash启动,此时系统将从flash启动并引导flash中的image启动,然后引导emmc中的EXT4分区启动。