Xilinx PetaLinux创建linux工程,并使用debian系统

1. 准备SD卡
将一张SD卡分为两个分区,一个为 fat32 一个为 ext4
将 fat32 系统命名为 boot,将 ext4 系统命名为 rootfs
shell 运行 lsblk

boot 分区为sdc1,rootfs 分区为 sdc5。故 rootfs 在新建的 linux 中的位置为 /dev/mmcblk1p5
若 FPGA 板上没有自带的emmc或其他内存,则为 /dev/mmcblk0p5
2. 创建项目
xsa file 为 vivado 工程导出的文件
在vivado中 File -> Export ->Export Hardware... 即可导出
3. 修改配置
在执行完petalinux-config后弹出的guine内
3.1 修改mac地址
Subsystem AUTO Hardware Setting -> Ethernet Settings -> Ethernet MAC address
3.2 修改文件系统的存储方式
从在内存中修改为在EXT4文件系统内,默认的启动方式会把文件系统放到ram内,所以每一次的修改在重启后都会消失。选择ext4模式,将文件系统固化到 flash 内。
Image Pachaging Configuration -> Root filesystem type -> EXT4
3.3 修改文件系统所在的分区
u-boot 会根据该参数引导操作系统
Image Pachaging Configuration -> Device node of SD device
此处填入在开头创建SD卡时的rootfs的分区名
\dev\分区名
3.4 修改缓存镜像(可选)
在 xilinx 的 petalinux 下载界面最下面可以找到 cache 的下载。

若为32位的zynq则下载 sstate-cache
64位则下载 aarch64 sstate-cache
修改使用本地镜像,可以加快编译速度。否则可能由于网络原因导致编译失败等问题
取消选项
保存并退出
3.5 编译项目
编译完成后运行
进入linux kernel配置
3.6 配置Linux kernel
1. CMA内存
配置连续内存(CMA)大小,给DMA等设备使用
板上共有8G内存,由于要使用DMA32模式,故最大能使用4G内存给DMA。修改大小为1024MB
2. 启用DMA32
DMA只能分配到低4G的内存,高4G DMA无法访问
3. NVME硬盘支持
若不需要,可以不配
4. spi设备支持
5. 保存并退出
4. 修改设备树
链接设备树目录
修改 system-user.dtsy
此文件为用户定义设备树文件,在该文件内的修改不会因为工程的变动如xsa的更行而被删除
添加SD卡槽配置
由于ZU19EG的SD部分使用了电平转换模块,故需要添加以下选项,否则在linux启动时会报错,无法正确读取roofs
添加其他 linux 设备树
根据自身的项目需求与FPGA内的IP核配置,添加除xilinx IP以外的设备树内容
5. 构建系统
再次编译工程
打包linux文件
将生成的文件放到 boot 分区
在以下网址下载debian文件系统
https://rcn-ee.com/rootfs/eewiki/minfs/
将debian解压到 rootfs 分区即可
将SD卡插到卡发板,即可启动debian