petalinux 从0开始构建自己目标板的操作系统
平台:zynq zcu9eg
工具:vivado2019.1 petalinux2019.1
vivado生成HDF
在vivado中新建工程 ,在bd里面,构建自己的工程,zynq要按照自己的板子的硬件进行配置,生产HDF文件,供petalinux使用,这部比较简单,相信应该都会。
petalinux构建操作系统
1.新建工程
petalinux-create --type project --template <PLATFORM> --name <PROJECT_NAME>
eg:petalinux-create --type project --template zynqMP --name zcu9eg_linux
- PLATFORM可以是zynqMP(用于UltraScale+ MPSoC)、zynq(用于Zynq-7000)、microblaze(用于MicroBlaze CPUs)
- 该命令会从一个默认的模板创建一个新的PetaLinux工程文件夹
2.导入HDF
进入到工程的目录,输入指令:
petalinux-config --get-hw-description=<path-to-hdf/dsa-directory>
确保Subsystem AUTO Hardware Settings被选择,该菜单允许定制系统范围的硬件设置,进入该菜单:
Subsystem AUTO Hardware Settings
System Processor (psu_cortexa53_0) --->
Memory Settings --->
Serial Settings --->
Ethernet Settings --->
Flash Settings --->
SD/SDIO Settings --->
RTC Settings --->
[*]Advanced bootable images storage Settings --->
这一步中工具会分析硬件描述文件,得到所需要的硬件描述信息来更新设备树、PetaLinux U-Boot配置文件、内核配置文件,基于“Auto Config Settings”和“Subsystem AUTO Hardware Settings”设置。例如,当ps7_ethernet_0被选作Primary Ethernet时,并且对kernel config和U-Boot config开启了自动更新时,工具会自动使能其内核驱动并更新U-Boot配置头文件以使用选择的以太网控制器
这一步要根据自己的板子的硬件做相应的修改,例如我们的板子的设置如下;
SD卡要改成SD1(因为我们的板子是SD1为SD卡,SD0为EMMC)
在Yocto Setting中按‘S’选中Enable Debug Tweaks,就不用登录直接进入系统。
3.编译u-boot
终端输入:
petalinux-config -c u-boot
然后等待GUI出来,这里暂时不改动配置,直接save(save为u-boot.config,名字随便取但不要留空),然后继续等(新建的工程时间会长一点)。
4.编译kernel
终端输入:
petalinux-config -c kernel
然后等待GUI出来,这里暂时不改动配置,直接save(save为kernel.config,名字随便取但不要留空),然后继续等。
4.build
petalinux-build
5.生成镜像
petalinux-package --boot --format BIN --fsbl images/linux/zynqmp_fsbl.elf --u-boot images/linux/u-boot.elf --pmufw images/linux/pmufw.elf --fpga images/linux/*.bit --force