[uboot] (第四章)uboot流程——uboot编译流程

18.3 模型部署模式对比:微服务、无服务器边缘部署架构 机器学习模型部署架构对比选择 摘要:本文系统对比了三种主流模型部署架构的特点适用场景。微服务架构通过容器化和Kubernetes编排提供灵活控制,适合稳定高吞吐场景但运维复杂;无服务器架构以极致弹性和按需付费为优势,适合流量波动大的事件驱动任务,但存在冷启动延迟问题;边缘部署在终端设备或近端节点运行轻量化模型,实现超低延迟和数据本地化,但面临资源受限和分布式管理挑战。实际应用中常采用混合架构,如云边协同或微服务无服务器结合,以平衡性能、成本和运维复杂度。 阅读详情

以下例子都以project X项目tiny210(s5pv210平台,armv7架构)为例

[uboot] uboot流程系列
[project X] tiny210(s5pv210)上电启动流程(BL0-BL2)
[project X] tiny210(s5pv210)从存储设备加载代码到DDR
[uboot] (第一章)uboot流程——概述
[uboot] (第二章)uboot流程——uboot-spl编译流程
[uboot] (第三章)uboot流程——uboot-spl代码流程
[uboot] (第四章)uboot流程——uboot编译流程
[uboot] (番外篇)global_data介绍
[uboot] (番外篇)uboot relocation介绍

建议先看《[project X] tiny210(s5pv210)上电启动流程(BL0-BL2)》,根据例子了解一下上电之后的BL0\BL1\BL2阶段,以及各个阶段的运行位置,功能。
建议先看《[uboot] (第二章)uboot流程——uboot-spl编译流程》,其编译流程基本上是类似的。最大区别在于dtb的编译。

=================================================================================

一、uboot编译和生成文件

0、说明

现在的uboot已经做得和kernel很像,最主要的一点是,uboot也使用了dtb的方法,将设备树和代码分离开来(当然可以通过宏来控制)。
project-x/u-boot/configs/tiny210_defconfig

CONFIG_OF_CONTROL=y
// 用于表示是否使用了dtb的方式

CONFIG_OF_SEPARATE=y
// 是否将dtb和uboot分离表一

所以在uboot的编译中,和spl的最大区别是还要编译dtb。 (前面我们将的spl是没有使用dtb的,当然好像也可以使用dtb,只是我没有试过)。

1、编译方法

在project X项目中,所有镜像,包括uboot、kernel、rootfs都是放在build目录下进行编译的。具体去参考该项目build的Makefile的实现。
假设config已经配置完成,在build编译命令如下:

make uboot

Makefile中对应的命令如下:
project-x/build/Makefile

BUILD_DIR=$(shell pwd)
OUT_DIR=$(BUILD_DIR)/out
UBOOT_OUT_DIR=$(OUT_DIR)/u-boot
UBOOT_DIR=$(BUILD_DIR)/../u-boot
uboot:
        mkdir -p $(UBOOT_OUT_DIR)
        make -C $(UBOOT_DIR) CROSS_COMPILE=$(CROSS_COMPILE) KBUILD_OUTPUT=$(UBOOT_OUT_DIR) $(BOARD_NAME)_defconfig
        make -C $(UBOOT_DIR) CROSS_COMPILE=$(CROSS_COMPILE) KBUILD_OUTPUT=$(UBOOT_OUT_DIR)
## -C $(UBOOT_DIR) 指定了要在../uboot,也就是uboot的代码根目录下执行make
## CROSS_COMPILE=$(CROSS_COMPILE) 指定了交叉编译器
## KBUILD_OUTPUT=$(UBOOT_OUT_DIR) 指定了最终编译的输出目录是build/out/u-boot.

最终,相当于进入了uboot目录执行了make动作。

2、生成文件

最终编译完成之后,会在project-x/build/out/u-boot下生成如下文件:

arch   common   dts       include   net         tools       u-boot.cfg      u-boot.lds        u-boot.srec
board  disk     examples  lib       scripts  System.map  u-boot      u-boot.dtb      u-boot.map        u-boot.sym
cmd    drivers  fs        Makefile  source   test        u-boot.bin  u-boot-dtb.bin  u-boot-nodtb.bin

其中,arch、common、dts、include、board、drivers、fs等等目录是对应代码的编译目录,各个目录下都会生成相应的built.o,是由同目录下的目标文件连接而成。
重点说一下以下几个文件:

文件 说明
u-boot 初步链接后得到的uboot文件
u-boot-nodtb.bin 在u-boot的基础上,经过objcopy去除符号表信息之后的可执行程序
u-boot.dtb dtb文件
u-boot-dtb.bin 将u-boot-nodtb.bin和u-boot.dtb打包在一起的文件
u-boot.bin 在需要dtb的情况下,直接由u-boot-dtb.bin复制而来,也就是编译u-boot的最终目标
u-boot.lds uboot的连接脚本
System.map 连接之后的符号表文件
u-boot.cfg 由uboot配置生成的文件

二、uboot编译流程

1、编译整体流程

根据一、2生成的文件说明可知简单流程如下:
(1)各目录下built-in.o的生成

Created with Raphaël 2.1.0 源文件、代码文件 编译、汇编 目标文件 同目录目标文件连接 built-in目标文件

(2)由所有built-in.o以u-boot.lds为连接脚本通过连接来生成u-boot

Created with Raphaël 2.1.0 built-in目标文件
MinIO私有化部署实战:从Windows开发到Linux高可用集群 对象存储是现代应用架构的核心基础设施,其本质是通过S3兼容API提供可扩展、高可靠的数据持久化能力。MinIO作为轻量级、100% S3兼容的开源实现,凭借单二进制部署、原生纠删码和低运维门槛,成为私有云边缘场景的首选方案。它不仅支持Windows本地快速验证,更可无缝演进为Linux下多节点分布式集群,满足医疗、金融等强合规场景对数据主权、加密控制审计溯源的技术要求。本文聚焦真实生产落地路径,覆盖Windows服务化配置、四节点纠删码集群搭建、Nginx反向代理优化及Java后端永久链接实践,解决手搓 阅读详情

相关推荐

Azure Blob Storage企业级落地:安全、成本权限的实操指南

Azure Blob Storage是面向海量非结构化数据的云原生对象存储服务,其核心原理基于容器隔离、分层存储多维权限控制(RBAC+ACL+SAS+网络策略)。技术价值体现在高可用冗余(ZRS)、细粒度生命周期管理及端到端加密能力,支撑图像训练、IoT日志、医疗影像等典型场景。区别于通用网盘,它要求严格的资源规划、权限叠加设计成本可观测性——尤其需规避公开访问、跨Region egress和命名不规范等高频风险。本文聚焦生产环境真实配置,覆盖上传可控、权限可溯、成本可算三大关键实践。

weixin_30915951的博客 400

容器内存配置的取舍

本文用示例说明内存、暂停时间和成本之间的取舍;具体堆大小 GC 表现依赖 JDK、对象存活率和容器限制,必须实测。在云原生 Kubernetes 环境下,很多 Java 工程师在面对线上服务 OOM(Out Of Memory)或者响应延迟抖动时,最习惯的解决方式就是“找运维加内存”。把 Kubernetes Pod 的内存 Request/Limit 从 4G 直接改成 16G 甚至 32G。表面上看,OOM 报错暂时消失了,但随后带来了两个非常严峻的问题:首先是。

dicky_zhang3的博客 1583

本地部署大模型:硬件选型部署优化指南

大模型部署AI工程化落地的关键环节,涉及从硬件选型到性能优化的完整技术链。Transformer架构作为当前主流模型基础,其计算特性决定了GPU显存和内存的硬性需求。在本地部署场景中,数据安全性和网络稳定性成为核心考量,特别是金融、医疗等敏感行业。通过量化技术和推理框架优化(如vLLM),可以在保持模型精度的同时显著提升吞吐量。典型部署方案需结合容器化技术(Docker/Kubernetes)和监控体系,其中GPU利用率优化和批处理策略直接影响生产环境效率。本文基于实际案例,详解从单机到集群部署方法论,

weixin_30729609的博客 428

OpenTelemetry 采集器部署:Sidecar DaemonSet 模式的取舍

Sidecar vs DaemonSet 不是优劣问题,是流量特征决定的。DaemonSet 适合资源敏感、Pod 密度高的集群(1000 Pod / 100 Node 场景下节省 900 个 Collector 容器)。Sidecar 适合需要强资源隔离、Pod 间流量差异大的场景。关键配置:memory_limiter 防 OOM、persistent queue 防数据丢失、batch 处理器优化网络效率。混合模式是最务实的——普通 Pod 用 DaemonSet,高流量 Pod 加 Sidecar。

2609_95049439的博客 2917

流水线延迟资源取舍

虽然声明式策略工具非常强大,但在处理某些特定业务逻辑(例如:校验上线配置中的数据库连接池的最大连接数是否超出了集群 CoreDNS 的解析吞吐上限)时,我们需要编写轻量级的高性能 Go 语言 Admission Webhook。import ("fmt""io""net/http"// ConfigValidationServer 实现 Kubernetes 准入校验 HTTP 服务。

qwe0iop0的博客 2963

YOLOKubernetes集成:大规模集群部署的最佳实践

在大规模视觉检测场景中,YOLO凭借高效推理能力,结合Kubernetes的弹性调度自动化运维,成为工业级部署的主流方案。通过TensorRT优化、HPA动态扩缩容、精准探针设计和GPU资源隔离,实现高并发下的稳定低延迟服务。模型热更新、多worker并发处理完整可观测性体系进一步保障生产可用性。

weixin_34413326的博客 667

Hunyuan模型费用省70%?真实部署成本分析案例

本文介绍了如何在星图GPU平台上自动化部署Tencent-Hunyuan/HY-MT1.5-1.8B翻译模型(二次开发构建by113小贝),显著降低企业级机器翻译成本。该镜像专为高并发、低延迟多语种翻译场景优化,可直接应用于跨境电商客服实时响应、多语言商品描述生成等典型业务,实现翻译质量可控、响应稳定、成本下降70%。

weixin_36078669的博客 105

AI印象派艺术工坊容器编排:Kubernetes集群部署案例

本文介绍了如何在星图GPU平台上自动化部署🎨 AI 印象派艺术工坊镜像,基于轻量级OpenCV图像处理算法,实现一键将普通照片转换为素描、油画、水彩等印象派风格图像,适用于社交媒体配图、创意内容快速生成等典型场景。

weixin_35696112的博客 350

Service Mesh 服务网格落地经验:第一版的边界取舍

示例场景:基于 Istio 建立 Agent 多节点链路时,直接对所有 Namespace 开启 Sidecar 注入,会改变资源网络行为。应先从目标工作负载灰度验证,观察延迟、资源和流式调用的错误情况。落地 Service Mesh 服务网格时,技术选型需遵循循序渐进原则。若在初始阶段试图同时上线 mTLS 双向认证、分布式追踪、全量 L7 流量治理及 Wasm 插件拦截,易导致 Envoy 代理产生较大的内存 CPU 资源开销,进而增加整体网络延迟

2609_95049439的博客 2982

别让vCLS拖累你的vSphere 7.0 U3集群!深入解读Monitor/Mwait功能虚拟化能效的取舍

本文深入解析vSphere 7.0 Update 3中vCLSMonitor/Mwait功能的交互影响,探讨如何优化虚拟化集群的能效性能平衡。通过分析Intel CPU的Monitor/Mwait指令集原理,提供生产环境配置指南和高级调优技巧,帮助管理员解决vCLS部署问题并实现最佳能效比。

weixin_30647065的博客 390

小模型如何改变AI成本格局:从503错误到端侧部署

当大模型API频繁出现容量不足和服务不可用,AI应用的工程化思路正在发生深刻变化。小模型通过知识蒸馏、量化、剪枝等关键技术,在保持可用能力的同时大幅降低推理成本,让端侧部署成为可能。例如qwen3.5小模型已能运行在微信小程序中,而ai agent架构也倾向于将简单任务交给轻量模型处理,复杂问题才调用大模型兜底。这种分层协作模式不仅降低了API调用费用,更让数据可以留在本地,延迟和稳定性也得到改善。Spring AI等框架的出现,进一步简化了模型集成切换流程。本文从成本重构的视角,解析小模型的原理、适用场

weixin_34198762的博客 388

实时手机检测-通用部署案例:Kubernetes集群中弹性扩缩容实践

本文介绍了如何在星图GPU平台自动化部署“实时手机检测-通用”镜像,实现高效的手机目标检测服务。该镜像基于DAMOYOLO-S框架,可快速识别图像中的手机位置,应用于智能安防、行为监控等场景,并通过Kubernetes弹性扩缩容机制自动应对流量变化,保障服务稳定资源高效利用。

weixin_35757191的博客 28

Wan2.2-T2V-5B模型部署指南:基于OpenSpec的容器化方案

本文介绍基于OpenSpec容器化方案部署Wan2.2-T2V-5B轻量级文本到视频模型的完整流程,涵盖模型特性、Docker化封装、FastAPI服务构建及Kubernetes生产架构设计,实现消费级GPU上的高效视频生成自动扩缩容。

weixin_42609225的博客 930

Aphorio容器监控面板:DockerWeb服务器Dashboard部署实战

容器部署已成为现代后端服务的主流形态,Docker Nginx 等 Web 服务器协同工作,但运维人员经常需要在命令行状态页之间频繁切换,缺乏统一的可视化视角。一个轻量级容器监控 Dashboard 能够整合容器运行状态、资源占用和 Web 服务器指标,通过 WebSocket 实时推送数据,显著提升故障排查效率。本文从通用监控面板的实现原理出发,探讨数据采集实时通信的技术选型,并针对 Aphorio 这一主打性能优势的开源项目进行部署验证功能拆解,帮助你快速搭建属于自己的容器 Web 服务器

weixin_33796177的博客 434

服务网格选型看运行成本

在选择 Service Mesh(服务网格)方案时,如果仅评估官方文档的功能特性清单,容易在后续落地阶段面临非预期的资源开销运维复杂度挑战。服务网格的资源代价要在自己的服务数量、协议类型、路由规则和节点规格下测量。全量注入 Sidecar 会增加进程、配置分发和转发路径;规模较大时,控制面推送和代理内存也需要单独观察。不要用其他集群延迟或资源百分比直接推导本集群的结论。

2609_95049439的博客 1654

Qdrant 向量数据库实战指南:从 RAG 检索到集群部署的完整路径

你在给客服机器人接 RAG(检索增强生成,即"先检索再回答")时,很快会遇到同一个坎:用户问"上个月买过跑鞋、价格在 500 以内的还有哪双?",这种问题既要懂语义("跑鞋"),又要卡条件(价格、品类)。关键词搜索接不住语义,纯向量搜索又卡不住条件。这时候你需要的就是一个能同时做向量相似度搜索和结构化过滤的向量数据库。 Qdrant(读作 quadrant)正是为此而生的:一个用 Rust 写的

gitblog_00931的博客 455

养多肉植物,让我理解了微服务单体应用的取舍

《绿植养护软件架构的测试哲学》摘要(149字): 软件测试工程师从多肉养护中获得架构选择启示。单体应用如单盆巨株,需整体回归测试;微服务似分株盆栽,支持独立验证。初创业务适合单体架构,侧重端到端测试;复杂系统宜用微服务,需强化契约测试和混沌工程。测试策略应随架构调整:单体预防耦合,微服务管控分布式复杂度。如同园丁选择花盆,测试方案需匹配架构特性,在秩序灵活间寻找平衡。最终结论:没有最优架构,只有最适配的测试方法。

2501_94480392的博客 338

模型也会“越用越聪明”:AI模型私有化部署平台DLTM的版本管理持续迭代体系

有了版本,还要能“比”。

NVR安防视频技术 250
上一篇: [project X] tiny210(s5pv210)从存储设备加载代码到DDR
下一篇: [uboot] (番外篇)global_data介绍
ooonebook
博客等级 码龄10年 1103粉丝 48原创
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值