zynq7000 传统方式制作系统镜像

传统方式制作系统镜像,主要是以下几个步骤:

  1. 配置zynq芯片
  2. uboot
  3. kernel
  4. device-tree
  5. rootfs
  6. 打包制作BOOT.BIN和image.ub

环境配置

系统centos7

安装xilinxvivado、SDK软件

安装gcc make **g++**等基本编译环境

  1. 从xilinx的github上下载交叉编译工具gcc-arm-linux-gnueabi
  2. 配置交叉编译工具,建立compile.sh脚本
#!/bin/sh
current_path=$(pwd)
export ARCH=arm
export CROSS_COMPILE=$current_path/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-
export PATH=$current_path/gcc-arm-linux-gnueabi/bin:$PATH

配置zynq芯片

使用vivado软件

  1. 配置zynq芯片,如使用UART0 UART1 I2C接口等,以及进行PL端开发
  2. 编译生成bitstream
  3. 导出硬件设计
  4. launch SDK软件,制作FSBL

uboot制作

  1. 从xilinx的github上下载uboot源码
  2. 解压后进入到uboot源码目录中
  3. source compile.sh配置交叉编译环境
  4. 执行make menuconfig,出现配置界面
  5. load zynq默认配置 u-boot-xlnx-xilinx-v2018.3/configs/zynq_zc706_defconfig,并根据需求修改配置
  6. 保存为.config配置
  7. 编译
  8. 编译成功后得到uboot文件

kernel制作

  1. 从xilinx的github上下载linux源码
  2. 解压后进入到linux源码目录中
  3. source compile.sh配置交叉编译环境
  4. 执行make menuconfig 出现配置界面
  5. loadzynq默认配置 linux-xlnx-xilinx-v2018.3/arch/arm/configs/xilinx_zynq_defconfig 根据需求修改配置
  6. 保存为.config配置
  7. 编译 make -j8
  8. 编译成功后得到kernel系统镜像

device-tree制作

  1. 从xilinux的github上下载设备树生成器,并将其配置到SDK的开发环境中

DIY镜像 diy镜像系统_设备树

  1. SDK软件创建设备树工程
  2. 根据需求修改配置,OK后就在SDK工程目录下生成设备树文件夹,这个是根据vivado软件上面的配置生成的设备树,接下来用dtc工具编译成二进制

DIY镜像 diy镜像系统_运维_02

  1. 根据需求修改system-top.dts
  2. 利用linux内核源码目录中scripts/dtc/目录的dtc工具,执行下面命令生成设备树文件
../linux-xlnx-xilinx-v2018.3/scripts/dtc/dtc -I dts -O dtb -o devicetree.dtb system-top.dts

DIY镜像 diy镜像系统_运维_03

rootfs制作

rootfs制作的方式有很多,这里可以采用busybox制作

  1. 执行compile.sh脚本配置交叉编译环境
  2. 建立rootfs根文件系统目录
  3. make menuconfig 根据需求修改配置
    这里要修改Build Options–>Installtion Options 修改为之前常见的目录位置
  4. make -j8
  5. make install
  6. 安装完成后,在rootfs目录下看到安装的内容,然后利用cpio命令和gzip命令打包成rootfs.cpio.gz

打包

制作BOOT.BIN文件

由三部分组成fsbl、bitstream、uboot

DIY镜像 diy镜像系统_arm开发_04

制作image.ub文件

利用mkimage制作image.ub 需要kernel镜像 devicetree.dtb 以及打包的rootfs 。

  1. 配置its文件
  2. 执行下面命令生成image.ub
/home/share2/EMUShare2/kshi/xilinx/u-boot-xlnx-xilinx-v2018.3/tools/mkimage -f test.its test.ub

DIY镜像 diy镜像系统_DIY镜像_05

至此就得到BOOT.BIN和image.ub文件,可以拷贝到SD中启动板子进行测试