news 2026/8/21 5:24:39

U-Boot配置编译过程分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
U-Boot配置编译过程分析

关注公众号:STUDYWITHIOT
内容

主机系统:Ubuntu24.04(x86_64)
目标平台:I.MX6ULL(ARM)
U-Boot版本: v2025.04
交叉编译工具链:gcc-linaro-arm-linux-gnueabihf 7.5.0-2019.12-x86_64

一、交叉编译工具链和环境变量配置

在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译,这个编译过程就称为交叉编译。

要进行交叉编译,我们需要在主机平台(比如x86_64)上安装对应的交叉编译工具链,然后用这个交叉编译工具链编译我们的源代码,最终生成可在目标平台上(比如ARM)运行的代码。
一般我们把交叉工具链下载并解压到指定的位置,在需要的时候再临时加入环境变量,可以这样做:

export PATH=$PATH:工具链安装路径/gcc-linaro-arm-linux-gnueabihf/bin/

该设置只对当前终端有效,设置环境变量后就可以直接调用工具链里的程序,例如查看版本信息:

arm-linux-gnueabihf-gcc --version

二、U-Boot 的配置编译过程

U-Boot的配置编译过程一般有三步:

make distclean make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_evk_defconfig //使用多核并行编译 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j<n>

第一步执行清理命令,清除上次生成的编译环境,避免之前的环境干扰影响编译结果。

在U-Boot构建系统中的清理命令一般有三种,make clean、make mrproper 和 make distclean 都是用于清理构建产物的命令,但它们的清理范围不同。

  • make clean:删除生成的目标文件(.o)、依赖文件、镜像等,但保留配置文件(如 .config)和构建系统所需的其他文件。
  • make mrproper:删除所有生成的文件,包括配置文件,恢复到解压源代码后的状态。
  • make distclean:在 mrproper 的基础上,删除编辑器备份文件、补丁文件等。

使用建议:

  • 重新编译:如果你只是修改了代码,想重新编译,使用 make clean 即可。
  • 重新配置:如果你需要修改配置(比如通过 make menuconfig 修改了配置),并且想从头开始编译,使用 make mrproper 或 make distclean 来删除旧的配置文件,然后重新配置。
  • 打包发布:如果你需要生成一个干净的源代码包,或者要将源代码恢复到原始状态,使用 make distclean。

编译新解压的源码时可以省略清除这一步。

第二步配置命令,第一个参数ARCH=arm用来指定芯片的架构,第二个参数指定交叉编译工具,第三个参数xxx_defconfig用来指定这次编译对应的板卡默认配置文件。

defconfig 文件在 configs/目录下,为Kconfig系统的菜单项提供了一个默认值。

在这一步系统会编译host基础构建程序fixde和配置程序conf,生成.config文件。编译时根据.config文件的内容来决定哪些内容编译,哪些内容不编译的。

开发者可以运行 make menuconfig 进入图形化配置界面改变配置。此界面允许通过方向键导航菜单,通过/键搜索关键字,通过空格键切换选项状态。在这个界面中,所有选项都按逻辑分组排列,依赖关系会自动处理,帮助文本即时显示。

修改完成之后会生成新的.config文件,原来的 .config 文件将被重命名为 .config.old 进行备份。
make savedefconfig 命令生成新的配置defconfig文件,此文件会忽略在Kconfig中包含的默认配置,使defconfig文件更精简。

第三步编译命令,第一个参数指定要编译arm架构,第二个参数指定用什么交叉编译工具去编译。可以启动并行编译加快编译速度。

make -j<n>选项告诉make在编译过程中并行执行多个任务。通过指定并行任务的数量为<n>,设置的值一般取决于编译主机的CPU数量,以及内存大小。-j$(nproc)可以自动根据系统的处理器数量设置并行任务的数量。nproc命令直接输出逻辑处理器数量,适用于脚本中的灵活设置。


欢迎关注本人微信公众号,阅读完整内容!

如果您觉得有用,感谢老铁百忙之中去给小编公众号一个关注!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/17 15:01:38

“AI招聘 潮头之上”,2025NFuture 最佳雇主颁奖盛典上海站圆满落幕

12月12日&#xff0c;2025 NFuture最佳雇主颁奖盛典上海站圆满举办。本届盛典以“AI招聘 潮头之上”为主题&#xff0c;汇聚了来自全国的人力资源管理者、行业专家与企业代表&#xff0c;共同探讨在智能时代下&#xff0c;如何借力AI重塑招聘生态、构建面向未来的雇主品牌。01.…

作者头像 李华
网站建设 2026/8/21 21:37:56

Conda-forge构建SD3.5 FP8推理环境的正确姿势

Conda-forge构建SD3.5 FP8推理环境的正确姿势 在生成式AI从实验室走向工业级部署的关键阶段&#xff0c;模型性能与资源消耗之间的平衡问题日益凸显。尤其是像 Stable Diffusion 3.5 这样的多模态大模型&#xff0c;在追求极致图像质量的同时&#xff0c;其对显存、算力和系统稳…

作者头像 李华
网站建设 2026/8/21 6:52:21

靠谱做会议资料打印、会场布置的知名企业

靠谱做会议资料打印、会场布置的知名企业在商务活动中&#xff0c;会议资料打印和会场布置是确保会议顺利进行的重要环节&#xff0c;选择一家靠谱的企业来承担这些任务至关重要。广州沿陆商务文印有限公司便是这样一家值得信赖的知名企业。专业的会议资料打印服务会议资料的质…

作者头像 李华
网站建设 2026/8/21 4:01:19

PaddlePaddle在企业级AI应用中的优势分析:开发便捷性与模型丰富性

PaddlePaddle在企业级AI应用中的优势分析&#xff1a;开发便捷性与模型丰富性技术背景与行业挑战 在当前AI技术加速落地的浪潮中&#xff0c;越来越多的企业试图将深度学习能力嵌入到核心业务流程中——从智能客服、自动化质检&#xff0c;到金融票据识别和工业视觉检测。然而&…

作者头像 李华
网站建设 2026/8/21 6:31:54

面试官最爱挖的坑:用户 Token 到底该存哪?

面试官最爱挖的坑&#xff1a;用户 Token 到底该存哪&#xff1f; 面试官问&#xff1a;“用户 token 应该存在哪&#xff1f;” 很多人脱口而出&#xff1a;localStorage。 这个回答不能说错&#xff0c;但远称不上好答案。 一个好答案&#xff0c;至少要说清三件事&#xff1…

作者头像 李华
网站建设 2026/8/21 7:51:56

LobeChat支持的插件类型有哪些?实用插件推荐清单

LobeChat 支持的插件类型有哪些&#xff1f;实用插件推荐清单 在构建现代 AI 对话系统时&#xff0c;我们早已不再满足于“你问我答”式的简单交互。用户期待的是一个能读文件、查数据、执行任务、甚至开口说话的全能助手——而不仅仅是会聊天的模型。这正是 LobeChat 插件系统…

作者头像 李华