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.mzph.cn/bicheng/10895.shtml

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

相关文章

【江科大STM32学习笔记】新建工程

1.建立工程文件夹,Keil中新建工程,选择型号 2.工程文件夹里建立Start、Library、User等文件夹,复制固件库里面的文件到工程文件夹 为添加工程文件准备,建文件夹是因为文件比较多需要分类管理,需要用到的文件一定要复…

Web UI自动化测试--PO模式

没有PO实现的测试用例的问题: 重用性低:登录功能重复可维护性差:数据和代码混合可读性差:元素定位方法杂乱(id、xpath、css混杂)可读性差:不易识别操作的含义(特别是css和xpath语法)可维护性差:如果某个元素的属性改了,你要更改多次PO(Page Object Model)页面对象模型…

完全背包问题(c++)

完全背包问题 当前有 N 种物品,第 i 种物品的体积是 ci​,价值是 wi​。 每种物品的数量都是无限的,可以选择任意数量放入背包。 现有容量为 V 的背包,请你放入若干物品,使总体积不超过 V,并且总价值尽可…

YOLOv8+CLIP实现图文特征匹配

本文通过结合YOLOv8s的高效物体检测能力与CLIP的先进图像-文本匹配技术,展示了深度学习在处理和分析复杂多模态数据中的潜力。这种技术的应用不仅限于学术研究,还能广泛应用于工业、商业和日常技术产品中,以实现更智能的人机交互和信息处理。…

新年首站 | 宝兰德教育行业信创新动力发展研讨会顺利召开

近日,宝兰德携手慧点数码、安超云共同举办了教育行业信创新动力发展研讨会。会议邀请了中国人民公安大学、中国戏曲学院、北京航空航天大学、北京理工大学、华北电力大学、中国矿业大学、北京服装学院、北京城市学院等数十所高校信息中心负责人、专家出席了本次会议…

LeetCode 题目 120:三角形最小路径和

作者介绍:10年大厂数据\经营分析经验,现任字节跳动数据部门负责人。 会一些的技术:数据分析、算法、SQL、大数据相关、python,欢迎探讨交流 欢迎加入社区:码上找工作 作者专栏每日更新: LeetCode解锁1000题…

WEB后端复习——javabean与会话cookie、session

JavaBean 是一种符合特定命名约定的 Java 类,它通常用于封装数据。 JavaBean 的主要特点是: 1. 无参构造器:JavaBean 必须有一个公共的(public)无参构造方法,以便于反射时能够创建对象实例。 2. 属性&…

Android的视图显示和管理机制:layout view window WindowManager Canvas Surface

在Android系统中,Layout view window WindowManager Canvas Surface SurfaceFlinger这些组件协同工作,以实现图形的绘制和显示。需要搞明白这些组件是什么时候创建的以及他们之间的结构关系。 从上到下的层级关系:用户在View上进行操作&…

考研踩坑经验分享

文章目录 写在前面自身情况简介自身学习路线优点坑点 学习路线建议1、2和3月份3、4和5月份6、7和8月份9、10月份11、12月份 一些私货建议结尾 写在前面 考研是一件非常有盼头的事,但绝对不是一件容易的事。 如果你不能做好来年三月份出成绩时,坦然接受…

Ubuntu 下使用 Scons 交叉编译嘉楠堪智 CanMV K230 大小核 Coremark 程序

在 Ubuntu 下使用 SCons 进行交叉编译嘉楠堪智 CanMV K230 大小核(不同的玄铁 C908 核心)的 C 程序,以 Coremark 程序为例,顺便测试一下大小核和编译器的性能。 2024年3月14日,嘉楠科技宣布推出了全球首款支持 RISC-V…

# 从浅入深 学习 SpringCloud 微服务架构(十七)--Spring Cloud config(1)

从浅入深 学习 SpringCloud 微服务架构(十七)–Spring Cloud config(1) 一、配置中心的 概述 1、配置中心概述 对于传统的单体应用而言,常使用配置文件来管理所有配置,比如 SpringBoot 的 application.y…

消费金融平台公司如何做大做强自营产品

本文来自于2019年的某次内部分享沟通会,部分敏感内容已做删减。

油泼辣子在食品类别可以申请成商标不!

前阵韩国人在美国申请“chili crunch”油泼辣子作为商标,还准备禁止华人餐馆使用投诉侵权并索赔,普推知产老杨在USPTO上面检索发现,这个人申请的主要是30类方便食品的调味品,商标分类是全球通用的。 商标名称不能申请本类所属的通…

C/C++常用的内置的宏定义

常用的C/C 内置宏 这是我在VS2015下运行的 cout << "file " << __FILE__ << endl;cout << "line " << __LINE__ << endl;cout << "date " << __DATE__ << endl;cout << "…

力扣HOT100 - 55. 跳跃游戏

解题思路&#xff1a; class Solution {public boolean canJump(int[] nums) {int n nums.length;int maxReach 0;// 正常来说每次至少跳一格&#xff0c;所以最多循环n次for (int i 0; i < n; i) {if (i > maxReach) return false;// 这种情况代表遇到了0&#xff0…

机器学习周报第三十八周 iTransformer

文章目录 week38 iTransformer摘要Abstract一、文献阅读1. 题目2. abstract3. 网络架构**转置Embedding&#xff1a;****LayerNorm&#xff08;层归一化&#xff09;****Feed-forward network&#xff08;前馈网络&#xff09;****Multivariate-Attention&#xff08;多变量注意…

大数据比赛-环境搭建(一)

1、安装VMware Workstation 链接&#xff1a;https://pan.baidu.com/s/1IvSFzpnQFl3svWyCGRtEmg 提取码&#xff1a;ukpo 内有安装包及破解方式&#xff0c;安装教程。 2、下载Ubuntu系统 阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com) 点击下载&#xff…

四川汇昌联信:拼多多运营属于什么行业?

拼多多运营属于什么行业?这个问题看似简单&#xff0c;实则涉及到了电商行业的深层次理解。拼多多运营&#xff0c;顾名思义&#xff0c;就是在拼多多这个电商平台上进行商品销售、推广、客户服务等一系列活动。那么&#xff0c;这个行业具体包含哪些内容呢?下面就从四个不同…

Verilog复习(四)| 组合逻辑

一位全加器结构描述&#xff1a; 数据流描述&#xff1a; 行为描述&#xff1a; 只要有事件发生&#xff08;列表中任何 信号有变化&#xff09;&#xff0c;就执行begin…end 的语句 。 always的事件控制方式 边沿触发 always (posedge clk) // clk从低电平->高&#x…

QT自适应界面 处理高DPI 缩放比界面乱问题

1.pro文件添加 必须添加要不找不到 QT版本需要 5。4 以上才支持 QT widgets 2.main界面提前处理 // 1. 全局缩放使能QApplication::setAttribute(Qt::AA_EnableHighDpiScaling, true);// 2. 适配非整数倍缩放QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::High…