前篇在ZYNQ7030板卡上成功用tftp加载网络启动了Linux系统,本篇开始制作eMMC镜像,最终在ZYNQ板卡上Flash配合eMMC运行Linux系统。
上篇板卡Linux启动后,root登录。
一、eMMC分区格式化
1.eMMC分区
fdisk /dev/mmcblk0进入fdisk工具命令,p打印分区表。我的eMMC之前做过分区,所以有分区表,没做过的如下图:
新建第一个分区,类型为c,即FAT32(LBA)类型。
新建第二个分区,类型为83,即Linux类型。输入w退出。
2.格式化eMMC分区
mkfs.vfat -F 32 /dev/mmcblk0p1格式化eMMC第一个分区为FAT32格式,注意大小写。
mkfs.ext4 /dev/mmcblk0p2格式化eMMC第二个分区为EXT4格式。
二、Flash+eMMC启动镜像制作
petalinux-config重新配置,Image Packaging Configuration → Root filesystem type根文件系统类型配置成SD card,存储位置为/dev/mmcblk0p2,无需修改。编译,打包生成新的BOOT.BIN和image.ub。
sudo tar zxvpf rootfs.tar.gz -C /home/yi/server/nfs/debug把rootfs.tar.gz解压到nfs下的debug文件夹。
sudo cp -rf image.ub /home/yi/server/nfs将image.ub复制到NFS共享文件夹。
三、copy文件到eMMC
创建挂载文件夹,mount /dev/mmcblk0p1 mmcp1、mount /dev/mmcblk0p2 mmcp2挂载eMMC两个分区。
mount -t nfs -o nolock 192.168.43.71:/home/yi/server/nfs /mnt挂载ubuntu NFS共享文件夹到mnt,在mnt可以看到共享文件夹内容。
cp -rf image.ub /home/root/mmcp1拷贝image.ub到eMMC第一个分区。
cp -rf debug/* /home/root/mmcp2拷贝根文件系统到eMMC第二个分区。
四、解挂eMMC,启动Linux
umount /home/root/mmcp1、umount /home/root/mmcp2解挂eMMC。
将新生成的BOOT.BIN烧到QSPI Flash里。
板卡重新上电,加载Linux内核,成功启动进入Linux系统登录界面。默认用户名密码皆为root。
至此,ZYNQ板卡Flash+eMMC移植Linux系统完成,可以在系统上进行后续开发,也可以在此基础上通过NFS方便地进行网络升级了。下一篇再记录下如何进行ZYNQ的固件升级。