使用源码独立编译ZYNQ Linux系统
0、说明之前通过使用petalinux构建ZYNQ Linux系统,依赖于对petalinux的理解,本节通过最原始的方法编译ZYNQ系统。及获取源码,然后对源码独立编译,打包后烧录。1、环境1.1硬件环境Xilinx ZCU104开发板1.2软件环境VM ubuntu 18.04windows 101.3资源下载准备内核源码通过petalinux完成配置内核后,在工程的build/downloa
0、说明
之前通过使用petalinux构建ZYNQ Linux系统,依赖于对petalinux的理解,本节通过最原始的方法编译ZYNQ系统。即获取源码,然后对源码独立编译,打包后烧录。
1、环境
1.1 硬件环境
- Xilinx ZCU104开发板
1.2 软件环境
- VM ubuntu 18.04
- windows 10
1.3 资源下载准备
https://china.xilinx.com/support/download.html
- 内核源码
通过petalinux完成配置内核后,在工程的build/downloads目录下有git2_github.com.Xilinx.linux-xlnx.git.tar.gz,且完成编译后,在./build/tmp/work-shared/zynqmp-generic/kernel-source目录下有解压后的内核源码,这里使用后者作为源码。通用编译后可以找到uboot 源码。
- 工具链
下载poky-glibc-x86_64-meta-toolchain-aarch64-toolchain-2.3.3.sh,并设置环境变量。也可以使用官方的工具链aarch64-linux-gnu-。
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842547/Install+Xilinx+Tools
2、编译uboot
源码位置:
zynqMP:build/tmp/work/zynqmp_generic-xilinx-linux/u-boot-xlnx/v2021.01-xilinx-v2021.1+gitAUTOINC+41fc08b3fe-r0/git
ZYNQ:build/tmp/work/zynq_generic-xilinx-linux-gnueabi/u-boot-xlnx/v2021.01-xilinx-v2021.1+gitAUTOINC+41fc08b3fe-r0/git
也可以从官网下载git2_github.com.Xilinx.u-boot-xlnx.git.tar.gz。
版本信息:
ZYNQMP:
yangf@ubuntu:~/src/xilinx/uboot$ git branch
master
* xlnx_rebase_v2021.01
yangf@ubuntu:~/src/xilinx/uboot$ git log
commit 41fc08b3fe2d78b00fa2ad4438a39e9164fde3bb (HEAD -> xlnx_rebase_v2021.01, origin/xlnx_rebase_v2021.01)
Author: Michal Simek <michal.simek@xilinx.com>
Date: Tue Jan 26 15:59:59 2021 +0100
arm64: versal: zynqmp: Add support for VPXA2785
ZYNQ:
yangf@ubuntu:~/src/yangf/xxzh_zynq_uboot$ git branch
master
* xlnx_rebase_v2021.01
yangf@ubuntu:~/src/yangf/xxzh_zynq_uboot$ git log
commit 41fc08b3fe2d78b00fa2ad4438a39e9164fde3bb (HEAD -> xlnx_rebase_v2021.01, tag: xlnx_rebase_v2021.01_2021.1)
Author: Michal Simek <michal.simek@xilinx.com>
Date: Tue Jan 26 15:59:59 2021 +0100
arm64: versal: zynqmp: Add support for VPXA2785
2.1 配置config
zynqMP:/home/yangf/src/xilinx/zcu104/xilinx-zcu104-2021.1/build/tmp/work/zynqmp_generic-xilinx-linux/u-boot-xlnx/v2021.01-xilinx-v2021.1+gitAUTOINC+41fc08b3fe-r0/build下存在.config,拷贝到工程目录configs/zynqmp_zcu104_defconfig
ZYNQ:~/src/xilinx/zcu104/xilinx-zcu104-2021.1/build/tmp/work/zynqmp_generic-xilinx-linux/u-boot-xlnx/v2021.01-xilinx-v2021.1+gitAUTOINC+41fc08b3fe-r0/build
make ARCH=arm64 CROSS_COMPILE=aarch64-poky-linux- zynqmp_zcu104_defconfig
2.2 编译
make CROSS_COMPILE=aarch64-poky-linux-
2.3 输出文件
uboot :./u-boot.elf
2.4 打包BOOT.BIN
目前通过petalinux工具打包出BOOT.BIN,后面找到通用方法再补充。
petalinux-package --boot --u-boot=/home/yangf/src/xilinx/uboot/u-boot.elf --format BIN
打包日志如下:
yangf@ubuntu:~/src/xilinx/zcu104/xilinx-zcu104-2021.1$ petalinux-package --boot --u-boot=/home/yangf/src/xilinx/uboot/u-boot.elf --format BIN --force
[INFO] Sourcing buildtools
INFO: Getting system flash information...
INFO: File in BOOT BIN: "/home/yangf/src/xilinx/zcu104/xilinx-zcu104-2021.1/images/linux/zynqmp_fsbl.elf"
INFO: File in BOOT BIN: "/home/yangf/src/xilinx/zcu104/xilinx-zcu104-2021.1/images/linux/pmufw.elf"
INFO: File in BOOT BIN: "/home/yangf/src/xilinx/zcu104/xilinx-zcu104-2021.1/project-spec/hw-description/project_1.bit"
INFO: File in BOOT BIN: "/home/yangf/src/xilinx/zcu104/xilinx-zcu104-2021.1/images/linux/bl31.elf"
INFO: File in BOOT BIN: "/home/yangf/src/xilinx/zcu104/xilinx-zcu104-2021.1/images/linux/system.dtb"
INFO: File in BOOT BIN: "/home/yangf/src/xilinx/uboot/u-boot.elf"
INFO: Generating zynqmp binary package BOOT.BIN...
****** Xilinx Bootgen v2021.1
**** Build date : May 28 2021-21:36:22
** Copyright 1986-2021 Xilinx, Inc. All Rights Reserved.
[INFO] : Bootimage generated successfully
INFO: Binary is ready.
3、编译内核
源码位置:
./build/tmp/work-shared/zynqmp-generic/kernel-source
也可以从官网下载:git2_github.com.Xilinx.linux-xlnx.git.tar.gz
版本信息:
yangf@ubuntu:~/src/xilinx/kernel$ git branch
xlnx_rebase_v4.14
xlnx_rebase_v4.19
xlnx_rebase_v4.9
* xlnx_rebase_v5.10
xlnx_rebase_v5.4
zynq/cleanup
zynq/clk
zynq/defconfig
zynq/dt
zynq/fixes
zynq/soc
zynqmp/dt
zynqmp/soc
zynqmp/soc-next
yangf@ubuntu:~/src/xilinx/kernel$
yangf@ubuntu:~/src/xilinx/kernel$ git log
commit 5d988a115dd3800e1d4e271a62a06538cfe5d4b8 (HEAD -> xlnx_rebase_v5.10)
Author: invalid_git config <unknown@unknown>
Date: Sun Jul 4 12:02:55 2021 +0000
Disable tree-loop-distribute-patterns CFLAG
3.1 配置config
使用kernel下的./arch/arm64/configs/xilinx_zynqmp_defconfig配置(内核自带)
make ARCH=arm64 CROSS_COMPILE=aarch64-poky-linux- xilinx_zynqmp_defconfig
3.2 编译
make ARCH=arm64 CROSS_COMPILE=aarch64-poky-linux- -j4
3.3 输出文件
内核:arch/arm64/boot/Image(ZYNQ ARM32使用zImage)
DTS:arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revA.dtb
3.4 打包内核
petalinux时将BOOT.BIN、image.ub、 boot.scr放置到了SD卡的第一个启动分区中。image.ub中包含内核。那么image.ub如何制作呢?打包方法见文章:mkimage与dumpimage使用
使用mkimage工具,通过its文件,打包。
mkimage -f o.its image.ub
更多推荐
所有评论(0)