【Xilinx】开发环境(五)- 基于Petalinux配置,单独编译uboot,Linux内核

此系列博客,仅对Xilinx平台PS端(ARM部分)开发做介绍,不对PL(FPGA)做过多介绍。

目录

一. 单独编译UBoot

2.1.拷贝源码

2.拷贝配置文件

3.编译

二. 单独编译内核源码

2.1 复制内核源码

2.2 复制配置文件( 根据芯片,32位复制到arch/arm/configs, 64位到arch/arm64/configs)

2.3 复制.its文件,用于生成image.ub, 可复制到linux源码顶层目录,和Makefile同级

2.4 Makefile 配置芯片架构以及编译工具链

2.5 使能配置

2.6 移植设备树文件

2.7 生成镜像


一. 单独编译UBoot

当Uboot源码使用默认配置,从网络下载时,需要进行步骤2.1,若使用本地源码,可跳过步骤2.1

2.1.拷贝源码

在工程目录:build/tmp/work/zynqmp_generic-xilinx-linux/u-boot-xlnx/v2020.01-xilinx-v2020.1+git999-r0/u-boot-xlnx-v2020.01-xilinx-v2020.1+git999/source目录下拷贝源码

2.拷贝配置文件

在工程目录:build/tmp/work/zynqmp_generic-xilinx-linux/u-boot-xlnx/v2020.01-xilinx-v2020.1+git999-r0/u-boot-xlnx-v2020.01-xilinx-v2020.1+git999

拷贝.config文件到源码的configs目录下备用

3.编译

make alinx_config_done_defconfig

make menuconfig

取消u-boot.itb镜像文件生成,否则报错

make -j12 编译,编译完成,可将生成的uboot.bin和uboot.elf拷贝到petalinux工程中,生成BOOT.bin启动文件

二. 单独编译内核源码

当Linux源码使用默认配置,从网络下载时,需要进行步骤2.1,若使用本地源码,可跳过步骤2.1

2.1 复制内核源码

2.2 复制配置文件( 根据芯片,32位复制到arch/arm/configs, 64位到arch/arm64/configs)

2.3 复制.its文件,用于生成image.ub, 可复制到linux源码顶层目录,和Makefile同级

2.4 Makefile 配置芯片架构以及编译工具链

/tools/Xilinx/Vitis/2022.1/gnu/aarch64/lin/aarch64-linux/bin/aarch64-linux-gnu-

2.5 使能配置

make xilinx_petalinux_defconfig

2.6 移植设备树文件

       将petalinux工程下相应文件设备树移植到linux源码中相应目录下

       复制include 文件夹,和pcw.dtsi,system-conf.dtsi,system-top.dts,zynqmp-clk-ccf.dtsi,zynqmp.dtsi到linux源码中的arch/arm64/boot/dts/Xilinx

       复制petalinux工程目录:project-spec/meta-user/recipes-bsp/device-tree/files下的设备树源文件linux源码中的arch/arm64/boot/dts/Xilinx      

       删除多余的.dts文件,最终移植好的文件内容如下:

       修改Makefile, 为如下内容

2.7 生成镜像

1.编译 make

2.生成imga.ub

aarch64-linux-gnu-objcopy -O binary -R .note -R .comment -S vmlinux linux.bin

gzip -9 linux.bin

mv -f linux.bin.gz linux.bin

mkimage -f fit-image.its image.ub

 

猜你喜欢

转载自blog.csdn.net/qq_37755518/article/details/129924920