直击主题,微相科技给的资料里说的东西真的是一言难尽
环境:Ubuntu 16Vivado:2018.3Petalinux:2018.3
- Petalinux source
source /opt/pkg/petalinux/2018.3/settings.sh
- 创建Petalinux项目
petalinux-create --type project --template zynq --name 你项目的名字
- 进入Petalinux项目文件夹,将Vivado导出的.sdk文件夹放到里面
获取硬件描述文件,完成后会自动进入配置界面
petalinux-config --get-hw-description /你项目中Sdk文件夹路径
- 操作系统移植到SD卡中,因此需要配置如下配置项
Image Packaging Configuration → Root filesystem typeINITRAMFS:默认是这一项,导出来以后不需要给SD卡分区SD CARD:选择这一项需要给SD卡分两个区 分离设备树
7. Advanced bootable images storage Settings -> dtb image settings -> image storage media -> primary sd
- 配置设备树
petalinux-config -c device-tree 修改设备树可以在以下目录修改相应文件 1.petalinux_project/components/plnx_workspace/device-tree/device-tree/pl.dtsi
如果配置DMA,则添加以下设备树
axidma_chrdev: axidma_chrdev@0 {
compatible = "xlnx,axidma-chrdev";
dmas = <&axi_dma_0 0 &axi_dma_0 1>;
dma-names = "tx_channel", "rx_channel";
};
//并把device-id修改成不一样的
//如果用了HLS生成的IP核,可以把设备树中IP核的compatible改为generic-uio
- 配置KERNEL
petalinux-config -c kernel
- 修改CMA内存,改为30
Kernel Features -> Maximum count of the CMA areas
- 修改SIZE IN MEGA BYTES,改为25
Device Drivers -> Generic Driver Options -> Default contiguous memory area size -> Size in Mega Bytes
- 使能UIO
Device Drivers -> <*> Userspace I/O drivers ->Userspace I/O platform driver with generic IRQ handling
- 修改U-BOOT配置
petalinux-config -c u-boot #随后修改目录下文件: #project-spec/meta-plnx-generated/recipes-bsp/u-boot/configs/platform-auto.h #搜索"default_bootcmd",将对应段落"booti"修改为"bootm"
- 编译
petalinux-build
- 打包
petalinux-package --boot --fsbl ./images/linux/zynq_fsbl.elf --fpga --u-boot --force
- 将/images下的BOOT.BIN、image.ub、system.dtb移到SD卡中,插入开发板上电,如果用的SD卡方式,则要分FAT32和EXT4两个分区,然后rootfs放到EXT4分区里
错误总结:
17. login incorrect
将rootfs/etc/pam.d/login中pamsecuretty.so那一行注释掉



