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

24 篇文章 1 订阅
14 篇文章 15 订阅

此系列博客,仅对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

 

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Petalinux是一种嵌入式Linux开发工具,用于为嵌入式平台构建和定制Linux操作系统。在Petalinux中,我们可以使用该工具链来编译uboot。 首先,我们需要确保已经安装了Petalinux开发环境,并设置好环境变量。接下来,我们通过以下步骤来单独编译uboot: 1. 创建一个新的Petalinux项目:在命令行中执行`petalinux-create -t project -s <UBOOT_SOURCE_PATH>`命令,其中`<UBOOT_SOURCE_PATH>`是uboot源代码的路径。这将会创建一个新的Petalinux项目。 2. 进入项目目录:执行`cd <PROJECT_DIRECTORY>`命令,其中`<PROJECT_DIRECTORY>`是刚创建的Petalinux项目所在的目录。 3. 配置项目:执行`petalinux-config`命令来进行项目的配置。在配置界面中,选择“uboot”选项,并进行相应配置,如选择正确的uboot版本、配置uboot选项等。完成配置后,保存并退出。 4. 编译uboot:执行`petalinux-build`命令来编译uboot。该命令会自动编译源代码,并生成uboot的二进制文件。 5. 导出编译结果:执行`petalinux-package --boot --force --u-boot`命令来导出编译生成的uboot二进制文件。导出后的文件将位于Petalinux项目目录的`images/linux`子目录下。 通过以上步骤,我们可以单独编译uboot,并在Petalinux项目中使用生成的uboot二进制文件。 ### 回答2: PetaLinux是针对嵌入式Linux系统的开发工具包,它可以帮助用户构建一个完整的Linux系统,包括uboot引导程序和内核镜像。但是,有时候我们可能只需要编译uboot而不需要重新构建整个系统。 要单独编译uboot,首先需要准备好编译环境。确保已经正确安装了PetaLinux工具包,并且已经设置好了环境变量。 接下来,进入到uboot源码的目录中。在这个目录下,通常会有一个Makefile文件,我们可以使用它来编译uboot。执行以下命令将uboot编译为二进制文件: make ARCH=arm CROSS_COMPILE=<交叉编译工具链前缀> 在命令中,ARCH表示目标架构是ARM,CROSS_COMPILE是交叉编译工具链的前缀。根据你的具体环境,你可能需要替换为合适的值。 执行编译命令后,uboot将开始编译编译完成后,生成的uboot二进制文件将位于uboot源码目录的输出文件夹中。 完成以上步骤后,你就成功地单独编译了uboot。这个uboot二进制文件可以用于更新或替换你的设备上的uboot引导程序。 总之,通过PetaLinux工具包以及适当的编译命令,可以实现单独编译uboot的需求。编译完成后,你将获得一个可用于设备的uboot二进制文件。 ### 回答3: 在PetaLinux中,编译U-Boot有两种方法:使用PetaLinux工具链交叉编译,或者在PetaLinux rootfs中直接编译。下面分别解释这两种方法。 1. 使用PetaLinux工具链交叉编译U-Boot: - 解压PetaLinux BSP文件,进入项目目录。 - 打开终端,输入以下命令设置交叉编译环境:`source petalinux-v20xx.x-x/settings.sh` - 进入到U-Boot源码目录:`cd u-boot-xxxxxx` - 配置U-Boot编译选项:`make <board_name>_config`。注意替换`<board_name>`为您的开发板型号。 - 编译U-Boot:`make CROSS_COMPILE=arm-linux-gnueabihf-` - 编译完成后,编译结果位于`u-boot.bin`。 2. 在PetaLinux rootfs中直接编译U-Boot: - 进入PetaLinux项目目录。 - 打开终端,输入以下命令降级到rootfs:`petalinux-build --sdk` - 进入到rootfs目录:`cd images/linux/rootfs/` - 下载U-Boot源码,解压并进入U-Boot源码目录。 - 配置U-Boot编译选项:`make <board_name>_config`。注意替换`<board_name>`为您的开发板型号。 - 编译U-Boot:`make CROSS_COMPILE=arm-linux-gnueabihf-` - 编译完成后,编译结果位于`u-boot.bin`。 以上两种方法中,您可以根据您的需求选择使用其中一种。同时注意替换命令中的`<board_name>`为您的开发板型号。完成编译后,您可以将生成的U-Boot镜像烧写到开发板上进行使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有意思科技

给与不给,我都会更新

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值