imx91的uboot编译

一、准备操作

下载半导体厂家的uboot源码
如这里我要下载的是imx91的恩智浦linux芯片bootloader

进入半导体厂家官网
下载源码,略

更新linux源,这里我是替换成清华源
vi /etc/apt/sources.list

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

保存并退出

更新源
sudo apt update
在这里插入图片描述

二、编译工作

先安装ncurses库,否则不能编译bootloader
sudo apt-get install libncurses5-dev
在这里插入图片描述
选Y
在这里插入图片描述
源没有问题,正常安装

修改源码makefile文件(如果不改makefile,在每次编译前就要指定一下架构和编译器),这里由于我的交叉编译器用的是aarch64-poky-linux,aarch64是arm架构(可以通过输入arch查看架构方式),大约在275行的位置添加语句如下
ARCH = arm
CROSS_COMPILE = aarch64-poky-linux-

然后我们需要在官方的配置文件中找一个配置文件来测试编译,最好是找该板子的evk配置也就是官方出的板子的配置文件,所有的配置文件存在与uboot/configs中,选择文件imx91p_11x11_evk_defconfig,然后我们执行make 函数生成.config文件,然后就可以执行make进行uboot的编译了
在这里插入图片描述

// 先清理工程
make distclean
//配置uboot
make imx91p_11x11_evk_defconfig
//编译uboot
make V=1 -j8

解释下配置uboot,uboot是用来引导linux启动的,但uboot除了引导linux以外还可以引导其他系统,而且uboot还支持其他的架构和外设,如USB、网络、SD卡等,这些都是可以配置的,需要什么功能就使能什么功能。所以在编译uboot之前,一定要根据自己的需求配置uboot。

这里解释下V=1 -j8的意思
V=1: 这个环境变量 V 代表 “verbose”(详细模式)。当设置为1时,它告诉make命令在执行时输出详细的编译命令。这意味着在编译过程中,你会看到每一个实际被执行的编译命令,包括编译器调用、链接操作等。这对于调试编译问题或者了解编译过程中的具体操作非常有帮助,因为它暴露了编译器和链接器的所有命令行参数。

-j8: 这个参数指定了make同时并发执行的作业(jobs)数量。在这里,8意味着make将会尝试同时运行8个编译任务。这对于多核处理器系统来说特别有用,因为它可以显著加快编译速度,通过并行化编译不同的源文件。选择的数字通常应接近或略低于系统可用的处理器核心数,以达到最佳的并行编译效率。

综上所述,命令 make V=1 -j8 指令U-Boot的Makefile以详细输出模式并行编译,同时运行8个作业来加速编译过程,同时提供详细的编译过程信息。这对于大型项目或者希望快速迭代开发的场景非常有用。

编译后,报错了
make imx91p_11x11_evk_defconfig
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
YACC scripts/kconfig/zconf.tab.c
/bin/sh: 1: bison: not found
make[1]: *** [scripts/Makefile.lib:222: scripts/kconfig/zconf.tab.c] Error 127
make: *** [Makefile:575: imx91p_11x11_evk_defconfig] Error 2
xuyy@ubuntu:~/linux/gateway/uboot-imx-lf-6.1.22-2.0.0/imx91-bootloader/uboot-imx-lf-6.1.22-2.0.0$

这里提示是bison程序找不到
bison not found: bison 是一个通用的解析器生成器,广泛用于编写语言解析器。在编译 Linux 内核或与之相关的项目(如 U-Boot)时,Kconfig 系统(用于配置内核或引导加载器的选项)可能会用到 bison 来处理配置脚本。错误信息表明,尽管在尝试运行 bison 以生成配置解析器的一部分 (scripts/kconfig/zconf.tab.c),但系统中并未安装 bison,或者它不在默认的 PATH 环境变量指定的路径中。

sudo apt-get install bison

安装后编译还报错
make imx91p_11x11_evk_defconfig
YACC scripts/kconfig/zconf.tab.c
LEX scripts/kconfig/zconf.lex.c
/bin/sh: 1: flex: not found
make[1]: *** [scripts/Makefile.lib:214: scripts/kconfig/zconf.lex.c] Error 127
make: *** [Makefile:575: imx91p_11x11_evk_defconfig] Error 2

这次的错误信息显示,在执行 make imx91p_11x11_evk_defconfig 命令的过程中,系统报告找不到 flex 程序。和之前的 bison 错误类似,flex 是一个词法分析器生成器,经常与 bison 配合使用,特别是在处理文本解析任务时,如这里在处理内核配置脚本时。

sudo apt-get install flex 继续安装

继续执行,成功!
在这里插入图片描述
接下来执行make V=1 -j8编译
在这里插入图片描述
报错了,看到错误是
cc1: error: bad value (‘armv8-a+crc’) for ‘-march=’ switch

这里应该是uboot代码的问题,我使用的是适配后的uboot源码,可能这个没搞好。等我换个uboot源码再编一下,今天先写到这里。如果你们的uboot代码没问题,到这里应该就编译通过了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/689200.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python实现动态时钟功能

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 一.前言 时钟,也被称为钟表,是一种用于测量、记录时间的仪器。时钟通常由时针、分针、秒针等计时仪器组成,是现代社会不可或缺的一种计时工具。它的发明和使用极大地改变了人类的生活方式和时间观念。 时钟的类型有很多,…

2024年电工杯数学建模A题思路 中国电机工程学会杯建模思路分析

文章目录 1 赛题思路2 比赛日期和时间3 竞赛信息4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间:2024…

46.乐理基础-音符的组合方式-延音线

以四分音符为一拍的时候想要某个音符的时长为1.25拍的时候,没法表示出来,使用普通的音符、加了附点、或复附点的音符就是没办法表示出1.25拍。 最后一种组合音符拍号的记号,延音线,如下图,以四分音符为一拍&#xff0…

ITIL4之打造高效IT运维的“金三角”

在这个数字化时代,每一秒的停顿都可能意味着巨大的经济损失,因此,高效且可靠的IT运维管理成为了企业稳健前行的基石。我们就以小白友好的方式,深入浅出地探讨ITIL4理论框架下的三个关键实践——容量和性能管理、可用性管理、以及度…

【35分钟掌握金融风控策略20】贷前风控策略详解-5

目录 反欺诈模型体系和模型在策略中的应用 申请反欺诈评分卡模型 欺诈传导模型 欺诈团伙识别模型 GPS评分卡模型 如何在贷中应用贷前模型 反欺诈模型体系和模型在策略中的应用 反欺诈横型体系主要包括识别个体欺诈和识别团伙欺诈的两类模型。在贷前,常用的识别…

选购洗地机有哪些技巧?2024洗地机全面解析,618洗地机综合对比

洗地机作为人们生活中智能清洁工具的代表,它自带清/污水箱,不用手洗滚刷,既可以吸尘也可以自动识别并清洗地板上的干湿垃圾和顽固污渍,它以多功能一体化的设计改善了家务清洁的效率和体验。那么如何在众多洗地机品牌中&#xff0c…

ICode国际青少年编程竞赛- Python-4级训练场-嵌套for循环练习2

ICode国际青少年编程竞赛- Python-4级训练场-嵌套for循环练习2 1、 for i in range(3):Dev.turnRight()for j in range(3):Dev.step(-3)Dev.turnRight()Dev.step(4-2*i)2、 for i in range(6):for j in range(2):Dev.step(2 2 * i)if i > 3: Dev.step(i - 2)Dev.turnRi…

计算机网络实验1:交换机基本配置管理

实验目的和要求 安装Packer Tracer,了解Packer Tracer的基本操作掌握交换机基本命令集实验项目内容 认识Packet Tracer软件 交换机的基本配置与管理 交换机的端口配置与管理 交换机的端口聚合配置 交换机划分Vlan配置 实验环境 硬件:PC机&#x…

Python:获取微信公众号的access_token

首先好好阅读一下微信开发文档 https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html 首先你得知道你微信公众号的AppID和AppSecret参数。其中AppSecret需要开启,然后说需要让你自己记住,因为它不会保存在公众号…

ubuntu系统在有无NVIDIA驱动下查看显卡型号

在ubuntu系统下,分别在有nvidia显卡驱动和无nvidia显卡驱动时,查看nvidia显卡型号。 1、有nvidia显卡驱动时的查看方式 nvidia-smi -L会显示如下信息: GPU 0: NVIDIA GEForce GTX 1660 SUPER (UUID: GPU-*****)2、无nvidia显卡驱动时的查看…

第十二届蓝桥杯省赛真题 Java A 组【原卷】

文章目录 发现宝藏【考生须知】试题 A: 相乘试题 B: 直线试题 C : \mathrm{C}: C: 货物摆放试题 D: 路径试题 E: 回路计数试题 F : \mathrm{F}: F: 最少砝码试题 G: 左孩子右兄弟试题 H : \mathrm{H}: H: 异或数列试题 I \mathbf{I} I 双向排序试题 J : \mathrm{J}: J: 分…

互动科技如何强化法治教育基地体验?

近年来,多媒体互动技术正日益融入我们生活的各个角落,法治教育领域亦不例外。步入法治教育基地,我们不难发现,众多创新的多媒体互动装置如雨后春笋般涌现,这些装置凭借前沿的科技手段,不仅极大地丰富了法制…