环境
vivado与petalinux的环境都要source下
source /opt/pkg/petalinux/settings.sh
source /opt/Xilinx/Vivado/2017.4/settings64.sh
创建工程
获取硬件信息
petalinux-create --type project --template zynq --name helloworld
- 进入
helloworld
目录,新建hardwareInfo
目录并把vivado生成的硬件相关文件拷贝到这个目录中(目录名可以随便取) petalinux-config --get-hw-description ./hardwareInfo
获取硬件信息, 实际是解析了那个目录中的hdf文件,会弹出配置信息
配置
使用petalinux-config
来进行项目配置,在运行完get-hw-description
也会自动进入配置
主要配置以下内容
– linux components selection 内核/uboot 来源,默认从git中取,网络不好的环境可指定路径
– Subsystem AUTO Hardware Settings
->Serial Settings
中设置默认打印串口
– Subsystem AUTO Hardware Settings
->Ethernet Settings
IP MAC配置
– 如果要从SPI FLASH启动,配置Subsystem AUTO Hardware Settings
->flsah settings
->advanced flash auto configuration
– 如果从SD卡启动,检查SD/SDIO Settings
中有没有SD选项,没有的话检查vivado的工程中是否配了SD卡
– Advanced bootable images storage Settings
中配置uboot kernel等文件存放的位置
其他
u-boot Configuration
里的选项可以看到当前uboot的一些参数,也看得到当前用的是哪个uboot配置文件,如果不使用petalinux,可以使用那个文件来配置ubootpetalinux-config -c kernel
进行内核配置,去打开关闭内核的一些功能与驱动,当前使用的Micrel的PHY,默认没有,需要勾一下petalinux-config -c rootfs
配置文件系统.petalinux-build
编译内核
通常配置
在kernel中需要打开对应PHY驱动, ALINX板子用的Mircrel的PHY,默认内核没打开
默认Rootfs中,没有libstdc++,qt会报libstdc++.so.6
找不到.要么在运行时去找到编译器路径拷贝到Lib目录,也可以在编译rootfs时集成进去.选项路径如下
打包镜像
编译完成后,会在images目录生成一堆文件.其中image.ub是针对sd卡的一个文件,其中包含了dtb uiamge rootfs
不过fsbl需要自已打包一下
petalinux-package --boot --fsbl ./images/linux/zynq_fsbl.elf --fpga ./images/linux/system.bit --u-boot --force
可以看到生成了boot.bin 然后将image.ub boot.bin拷贝到SD卡,启动,默认用户名及密码均为root. 收工